From bca213845ff33c0222f97a5b4f0f291e17e838b3 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Wed, 4 Jun 2014 15:15:39 +0200 Subject: [PATCH] =?UTF-8?q?/=20=E2=80=98grepolis.user.js=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- grepolis.user.js | 85 +++++++++++++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 37 deletions(-) diff --git a/grepolis.user.js b/grepolis.user.js index 188dff9..12f296b 100644 --- a/grepolis.user.js +++ b/grepolis.user.js @@ -10,7 +10,7 @@ // // @match http://*.grepolis.com/game/* // -// @version 1.0.29 +// @version 1.0.30 // @updateURL http://git.javil.eu/jan/userscripts/raw/master/grepolis.user.js // ==/UserScript== @@ -35,54 +35,65 @@ }; console.log("Initializing..."); + windows = {}; farm_ids = [1225, 1226, 1229, 1230, 1231]; - console.log("Setting timer to 5s"); + farm_ids.forEach(function(xFarmId) { + console.log("Setting timer to 5s for Farm " + xFarmId); + setTimeout(getWaresTick(xFarmId), 5000); + }); + setTimeout(getWaresTick, 5000); - function getWaresTick() { - var d = new Date(); - var dformat = "[" + [d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds()].join(':') + "]"; - $('.town_name').text(dformat); - console.log($.map($(".indicator .amount"),function(v){return $(v).text()}).join(", ")); - mood = 0; - if(!buttonIsInitialized() || w(btn[0]) == null) { - console.log("Need to get btn again"); - if(GPWindowMgr.is_open(GPWindowMgr.TYPE_FARM_TOWN) < 1) { + function getWaresTick(xFarmId) { + return function() { + var d = new Date(); + var dformat = "[" + [d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds()].join(':') + "]"; + $('.town_name').text(dformat); + console.log($.map($(".indicator .amount"),function(v){return $(v).text()}).join(", ")); + + var windowId = windows[xFarmId]; + if(windowId == undefined){ console.log("Opening new Window"); - getWaresWindow = GPWindowMgr.Create( + var wnd = GPWindowMgr.Create( GPWindowMgr.TYPE_FARM_TOWN, '', {'action': "claim_info"}, - 1225); - setTimeout(getWaresTick, 500); + xFarmId); + windows[xFarmId] = wnd.getID(); + setTimeout(getWaresTick(xFarmId), 500); return; } - btn = $(".farm_claim_box .farm_claim_res0 + div + a"); - mood = parseFloat($('#mood1').siblings().last().text()); - } - if(btn.hasClass("farm_claim_button_inactive")) { - var ts = $(".farm_next_claim_time").text(); - var minutes = ts.substring(2,4); - var seconds = minutes * 60 + ts.substring(5,7) * 1; - setTimeout(getWaresTick, seconds * 1000 + 1000); - $('.town_name').text(dformat + " +" + seconds + "s"); - console.log("btn is inactive, trying again in " + seconds + " seconds"); - if(getWaresWindow != null) { - getWaresWindow.close(); - getWaresWindow = null; + var wnd = GPWindowMgr.getWindowById(windowId); + if(windowId == undefined){ + console.log("Window not open any more"); + setTimeout(getWaresTick(xFarmId), 50); + return; } - return; - } + var wndElemend = wnd.getElement(); + var btn = $(wndElement).find(".farm_claim_box .farm_claim_res0 + div + a"); + var mood = parseFloat($(wndElement).find('#mood1').siblings().last().text()); - getWares(btn[0], mood); - setTimeout(getWaresTick, 60 * 1000); - } - - function getWares(xGetWaresButton, xMood) { - farm_ids.forEach(function(xFarmId) { - getWaresFromFarm(xGetWaresButton, xMood, xFarmId); - }); + if(btn.hasClass("farm_claim_button_inactive")) { + var ts = $(".farm_next_claim_time").text(); + + if(ts != "bereit") { + var minutes = ts.substring(2,4); + var seconds = minutes * 60 + ts.substring(5,7) * 1; + + + $('.town_name').text(dformat + " +" + seconds + "s"); + console.log("btn is inactive, trying again in " + seconds + " seconds"); + wnd.close(); + + setTimeout(getWaresTick(xFarmId), seconds * 1000 + 1000); + return; + } + } + + getWaresFromFarm(btn[0], mood, xFarmId); + setTimeout(getWaresTick(xFarmId), 60 * 1000); + } } function getWaresFromFarm(xGetWaresButton, xMood, xFarmId) {