NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name naskille // @namespace https://ru.waysofhistory.com/ // @version 0.1 // @description try to take over the world! // @author rteert // @match https://*.waysofhistory.com/gen/html/* // @grant unsafeWindow // @license MIT // ==/UserScript== (function() { 'use strict'; var $ = unsafeWindow.jQuery; if (!$) { return; } if (!unsafeWindow.tabEconomicsMoney) { // Некорректная страница, либо несовместимая версия console.info('govno'); return; } console.info(unsafeWindow); var targ=document.getElementsByClassName('tab-wrp economics-stock-wrp')[0]; installButtonHook(); function addButtons() { var saveTacticsContainer = $('.js-saveTactic').parent(); if (saveTacticsContainer.length > 0) { if (saveTacticsContainer.find('.tactics-addon-export-btn').length === 0) { saveTacticsContainer.prepend($('<button class="button1 tactics-addon-import-btn"/>').text("По нубски сделанный метод сдачи отчета - пуск").on('click', naskille)); } } } function installButtonHook() { var original_afterShow = tabTacticsEdit.prototype.afterShow; tabTacticsEdit.prototype.afterShow = function () { original_afterShow.apply(this, arguments); addButtons(); }; if (global.console) { global.console.log('Export Tactics addon installed'); } } function naskille(){ var acc={ 'army':{'list':[]}, 'armytraining':{'list':[]}, 'assistant':wofh.account.assistant, 'assistfor':[], 'country':{'id':wofh.account.country.id,'name':wofh.account.country.name}, 'id':wofh.account.id, 'name':wofh.account.name, 'money':wofh.account.money, 'pop':wofh.account.pop, 'race':wofh.account.race, 'sex':wofh.account.sex, 'specialists':{'list':wofh.account.specialists.list}, 'townslist':wofh.account.townslist, 'vote':wofh.account.vote, 'allstreams':[], 'allbarters':[], 'time':0 }; function setListArm(from, to) { let alo=Object.keys(from.list) for(let elem of alo){ to.list.push(({'id':from.list[elem].id, 'count':from.list[elem].count})) } } setListArm(wofh.account.army, acc.army) setListArm(wofh.account.armytraining, acc.armytraining) if(wofh.account.assistfor!=null){ let lb=Object.keys(wofh.account.assistfor); for(let elem of lb){ acc.assistfor.push({'id':wofh.account.assistfor[elem].id,'name':wofh.account.assistfor[elem].name}); } } var towns=[]; var townslo=Object.keys(wofh.towns); for(let idt of townslo){ let town={ 'army':{ 'free':{'list':[]}, 'intown':{'list':[]}, 'own':{'list':[]}, 'sum':{'list':[]}, 'training':{'list':[]} }, 'bonus':{'real':wofh.towns[idt].bonus.real}, 'budget':{}, 'budgetSum':wofh.towns[idt].budgetSum, 'buildings':[], 'climate':wofh.towns[idt].climate, 'country':wofh.towns[idt].country, 'id':wofh.towns[idt].id, 'name':wofh.towns[idt].name, 'deposit':{'climate':wofh.towns[idt].deposit.climate,'id':wofh.towns[idt].deposit.id,'res':wofh.towns[idt].deposit.res}, 'pop':wofh.towns[idt].pop, 'pos':wofh.towns[idt].pos, 'race':wofh.towns[idt].race, 'slots':{'list':[]}, 'specialists':{'list':wofh.towns[idt].specialists.list}, 'stock':{'max':wofh.towns[idt].stock.max,'list':[],'foodpriority':wofh.towns[idt].stock.foodpriority}, 'taxes':wofh.towns[idt].taxes, 'terrain':wofh.towns[idt].terrain, 'traders':wofh.towns[idt].traders, 'work':wofh.towns[idt].work, 'streams':[], 'barters':[], 'time':wofh.towns[idt].time }; acc.time=wofh.towns[idt].time; setListArm(wofh.towns[idt].army.free, town.army.free); setListArm(wofh.towns[idt].army.intown, town.army.intown); setListArm(wofh.towns[idt].army.own, town.army.own); setListArm(wofh.towns[idt].army.sum, town.army.sum); setListArm(wofh.towns[idt].army.training, town.army.training); for(let elem of Object.keys(wofh.towns[idt].budget)){ town.budget[elem]={}; for(let elem2 of Object.keys(wofh.towns[idt].budget[elem])){ if(elem2){ town.budget[elem][elem2]=wofh.towns[idt].budget[elem][elem2]; } } } for(let elem of Object.keys(wofh.towns[idt].buildings)){ town.buildings.push(wofh.towns[idt].buildings[elem]); } for(let elem of Object.keys(wofh.towns[idt].slots.list)){ town.slots.list.push({ 'id':wofh.towns[idt].slots.list[elem].id, 'level':wofh.towns[idt].slots.list[elem].level, 'pos':wofh.towns[idt].slots.list[elem].pos, 'active':wofh.towns[idt].slots.list[elem].active, 'needPay':wofh.towns[idt].slots.list[elem].needPay }); } for(let elem of Object.keys(wofh.towns[idt].stock.list)){ town.stock.list[elem]={}; for(let elem2 of Object.keys(wofh.towns[idt].stock.list[elem])){ if(elem2!='town' && elem2!='account' && elem2!='lib' && elem2!='country'){ town.stock.list[elem][elem2]=wofh.towns[idt].stock.list[elem][elem2]; // town.stock.list.push({(elem.toString()):{elem2:wofh.towns[idt].stock.list[elem][elem2]}}); } } } // for (let i = 0; i < 200; i++) { // if(wofh.towns[idt].bonus.real[i]!=null){ // town.bonus.real.push({(""+i):wofh.towns[idt].bonus.real[i]}) // } // } towns.push(town); } for(let i=0;i<1000000;i++){ if(wofh.streams.list[i]!=null){ for(let el of towns){ if(el.id==wofh.streams.list[i].town1 || el.id==wofh.streams.list[i].town2){ let obj={}; for(let ellems of Object.keys(wofh.streams.list[i])){ if(ellems!='town' && ellems!='account' && ellems!='lib' && ellems!='country' && ellems!='countries'&& ellems!='towns' && ellems!='accounts'){ obj[ellems]=wofh.streams.list[i][ellems]; } } el['streams'].push(obj); acc.allstreams.push(obj); } } } } for(let i=0;i<1000000;i++){ if(wofh.barterOffers.list[i]!=null){ for(let el of towns){ if(el.id==wofh.barterOffers.list[i].town){ let obj={}; for(let ellems of Object.keys(wofh.barterOffers.list[i])){ if( ellems!='account' && ellems!='lib' && ellems!='country' && ellems!='countries'&& ellems!='towns' && ellems!='accounts'){ obj[ellems]=wofh.barterOffers.list[i][ellems]; } } el['barters'].push(obj); acc.allbarters.push(obj); } } } } var repAll=[acc, towns]; copy(JSON.stringify(repAll)); } // Your code here... })();