From 1a5ee2ea1e17b15f8a594334e061e3a5b0de570b Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Tue, 3 Jun 2014 21:53:41 +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 | 75 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 grepolis.user.js diff --git a/grepolis.user.js b/grepolis.user.js new file mode 100644 index 0000000..0ae8b6b --- /dev/null +++ b/grepolis.user.js @@ -0,0 +1,75 @@ +// ==UserScript== +// @name Grepolis Village Farmer +// @description Farms villages every 5minutes +// +// @author Jan Bader +// @downloadURL http://git.javil.eu/jan/sync/raw/master/grepolis.user.js +// +// @license GPLv3 - http://www.gnu.org/licenses/gpl-3.0.txt +// @copyright Copyright (C) 2014, by Jan Bader +// +// @match http://*.grepolis.com/game/* +// +// @version 1.0.13 +// @updateURL http://git.javil.eu/jan/sync/raw/master/grepolis.user.js +// ==/UserScript== + +(function() { + console.log("Initializing..."); + farm_ids = [1225, 1226, 1229, 1230]; + console.log("Setting timer to 5s"); + setTimeout(getWaresTick, 5000); + function getWaresTick() { + var d = new Date(); + var dformat = "[" + [d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds()].join(':') + "]"; + $('.town_name').text(dformat); + console.log("Timer fired"); + if(!buttonIsInitialized() || w(btn[0]) == null) { + console.log("Need to get btn again"); + if(GPWindowMgr.is_open(GPWindowMgr.TYPE_FARM_TOWN) < 1) { + console.log("Opening new Window"); + getWaresWindow = GPWindowMgr.Create( + GPWindowMgr.TYPE_FARM_TOWN, + '', + {'action': "claim_info"}, + 1225); + setTimeout(getWaresTick, 500); + return; + } + btn = $(".farm_claim_box .farm_claim_res0 + div + a"); + } + 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; + } + + return; + } + + getWares(btn[0]); + setTimeout(getWaresTick, 60 * 1000); + } + + function getWares(xGetWaresButton) { + console.log("getting wares"); + farm_ids.forEach(function(xFarmId) { + getWaresFromFarm(xGetWaresButton, xFarmId); + }); + } + + function getWaresFromFarm(xGetWaresButton, xFarmId) { + w(xGetWaresButton).call('claimLoad', xFarmId.toString(), 'normal', 300); + } + + function buttonIsInitialized() { + return typeof(btn) != "undefined" && btn != null && btn[0] != null; + } +})() \ No newline at end of file