您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
enter something useful
当前为
// ==UserScript== // @name Kittens Game Data output // @namespace https://greasyfork.org/en/scripts/10234-kittens-game-data-output // @version 0.1.2 // @description enter something useful // @author Yuriy // @match http://bloodrizer.ru/games/kittens/ // @grant none // ==/UserScript== function initiate_script() { var data_out = document.createElement('div'); data_out.id = 'data_container'; data_out.style.width = '100%'; data_out.style.height = '150px'; data_out.style.bottom = '0px'; data_out.style.position = 'absolute'; data_out.innerHTML = '<div style="float: left; width: 340px;"><table id="food_table" table-layout: fixed;></table></div><div style="float: left; width: 340px;"> <table id="food_table_season" table-layout: fixed;></table></div>'; document.body.appendChild(data_out); document.getElementById('data_container').style.display = ''; document.getElementById('game').style.marginBottom = '200px'; document.getElementById('footerLinks').style.marginBottom = '150px'; document.body.style.backgroundPosition = 'center bottom 30px'; } if (!document.getElementById('data_container')) { initiate_script(); } function calculate_food_data(weather_ratio_val, seconds) { var total_value = ''; var total = 0; var subtotal = 0; total += gamePage.getEffect("catnip" + "PerTickBase")*5 total *= 1+weather_ratio_val; var resMapProduction = gamePage.village.getResProduction(); subtotal = resMapProduction['catnip']*5 || 0; subtotal *= 1+(gamePage.workshop.getEffect('catnip' + "Ratio")) total += subtotal; total *= 1+(gamePage.bld.getEffect('catnip' + "Ratio")) total *= (1 + gamePage.spaaaaaace.getEffect('catnip' + "Ratio")) total *= (1 + gamePage.religion.getEffect('catnip' + "Ratio")) var paragonRatio = gamePage.resPool.get("paragon").value * 0.01; paragonRatio = gamePage.bld.getHyperbolicEffect(paragonRatio, 2); total *= 1+paragonRatio if (gamePage.religion.getRU("solarRevolution").researched){ total *= 1+(gamePage.religion.getProductionBonus() / 100) } var resMapConsumption = gamePage.village.getResConsumption(); var resConsumption = resMapConsumption['catnip'] || 0; resConsumption = resConsumption * (1 + gamePage.bld.getEffect('catnip' + "DemandRatio", true)); resConsumption *= 5; total += resConsumption; total *= seconds; if(total>1000){ total = total / 1000; total = total.toFixed(1); total_value += total; total_value += ' k'; }else{ total = total.toFixed(2); total_value += total; } return total_value; } function generate_food_table(seconds, label) { var contents = ''; //Define the table colomn widths contents += '<col width="100">'; contents += '<col width="60">'; contents += '<col width="60">'; contents += '<col width="60">'; contents += '<col width="60">'; //The top of the table, describing what it is showing. Leave once cell blank at the start contents += '<tr>'; contents += '<td style="text-align:center">' contents += ' ' contents += '</td>'; contents += '<td style="text-align:center" colspan="4">' contents += label contents += '</td>'; contents += '</tr>'; //Second level of the top of the table, describing what it is showing. Leave once cell blank at the start contents += '<tr>'; contents += '<td style="text-align:center">' contents += ' ' contents += '</td>'; contents += '<td style="text-align:center">' contents += 'Winter' contents += '</td> <td style="text-align:center">' contents += 'Spring' contents += '</td> <td style="text-align:center">' contents += 'Summer' contents += '</td> <td style="text-align:center">' contents += 'Fall' contents += '</td>'; contents += '</tr>'; //Data for a good season contents += '<tr>'; contents += '<td style="text-align:center">' contents += 'Good season' contents += '</td>'; contents += '<td style="text-align:center">' contents += calculate_food_data(-0.60, seconds) contents += '</td> <td style="text-align:center">' contents += calculate_food_data(0.65, seconds) contents += '</td> <td style="text-align:center">' contents += calculate_food_data(0.15, seconds) contents += '</td> <td style="text-align:center">' contents += calculate_food_data(0.15, seconds) contents += '</td>'; contents += '</tr>'; //Data for an average season contents += '<tr>'; contents += '<td style="text-align:center">' contents += 'Normal season' contents += '</td>'; contents += '<td style="text-align:center">' contents += calculate_food_data(-0.75, seconds) contents += '</td> <td style="text-align:center">' contents += calculate_food_data(0.50, seconds) contents += '</td> <td style="text-align:center">' contents += calculate_food_data(0.0, seconds) contents += '</td> <td style="text-align:center">' contents += calculate_food_data(0.0, seconds) contents += '</td>'; contents += '</tr>'; //Data for a bad season contents += '<tr>'; contents += '<td style="text-align:center">' contents += 'Bad season' contents += '</td>'; contents += '<td style="text-align:center">' contents += calculate_food_data(-0.90, seconds) contents += '</td> <td style="text-align:center">' contents += calculate_food_data(0.35, seconds) contents += '</td> <td style="text-align:center">' contents += calculate_food_data(-0.15, seconds) contents += '</td> <td style="text-align:center">' contents += calculate_food_data(-0.15, seconds) contents += '</td>'; contents += '</tr>'; return contents } function output_data() { document.getElementById('food_table').innerHTML = generate_food_table(1, 'Food during seasons (/s)'); document.getElementById('food_table_season').innerHTML = generate_food_table(200, 'Food during seasons (/season)'); } setInterval(output_data, 200);