var metadata=<>
// ==UserScript==
// @name SpyCalc
// @namespace http://userscripts.org/scripts/show/95712
// @include http://s*.ikariam.com/*
// @exclude http://support*.ikariam.*/*
// @author Karandaras (http://userscripts.org/users/265255)
// @require http://userscripts.org/scripts/source/94511.user.js
// @version 1.0i
// @updater:script http://userscripts.org/scripts/source/95712.user.js
// @updater:delay 86400000
// ==/UserScript==
</>.toString();
var href = document.location.href;
var lang = getLanguage(href);
var languages = {
de: {
"calc": "Berechnen",
"optimaldist": "Optimale Verteilung",
"lowrisk": "Niedriges Entdeckungsrisiko",
"highchance": "Hohe Erfolgschance",
"spy": "Agenten",
"decoy": "Lockvögel",
"risk": "Entdeckungsrisiko",
"chance": "Erfolgschance",
"drisk": "Lockvogel Entdeckungsrisiko",
"cost": "Kosten",
"dcost": "Lockvogel Kosten",
"use": "Auswählen"
}
};
// Update-Check
var update = new Updater(metadata,lang);
update.update();
var language = languages[lang];
if(language == null)
language = languages['de'];
var cityids = new Array();
var cities = document.getElementById('citySelect').getElementsByTagName('option');
for(var i=0; i<cities.length; i++)
if(cities[i].getAttribute("class") == "coords")
cityids.push(cities[i].value);
if(document.getElementById('totalAgents'))
window.addEventListener('load',addBox,true);
function addBox() {
var div = document.createElement('div');
div.setAttribute('class', 'contentBox01h');
div.innerHTML = "<h3 class=\"header\">"+language['optimaldist']+"</h3>"
+"<div class=\"content\">"
+" <div class=\"missionWrapper\">"
+" <div class=\"decoyMission contentBox06\">"
+" <h3 class=\"header\">"+language['highchance']+"</h3>"
+" <ul class=\"infoList\">"
+" <li>"
+" <label>"+language['spy']+"</label>"
+" <div id=spies1>0</div>"
+" </li>"
+" <li>"
+" <label>"+language['decoy']+"</label>"
+" <div id=decoys1>0</div>"
+" </li>"
+" <li>"
+" <label>"+language['risk']+"</label>"
+" <div id=risk1>0%</div>"
+" </li>"
+" <li>"
+" <label>"+language['chance']+"</label>"
+" <div id=chance1>0%</div>"
+" </li>"
+" <li>"
+" <label>"+language['drisk']+"</label>"
+" <div id=drisk1>0%</div>"
+" </li>"
+" <li>"
+" <label>"+language['cost']+"</label>"
+" <div id=cost1>"+document.getElementById('info_costs_text').innerHTML+"</div>"
+" </li>"
+" <li>"
+" <label>"+language['dcost']+"</label>"
+" <div id=dcost1>"+document.getElementById('info_decoycost_text').innerHTML+"</div>"
+" </li>"
+" </ul>"
+" <div class=centerButton style='margin-top:-15px; height:40px;'><input value="+language['use']+" id=use1 class=button type=submit></div>"
+" <div class=\"footer\"></div>"
+" </div>"
+" <div class=\"realMission contentBox06\">"
+" <h3 class=\"header\">"+language['lowrisk']+"</h3>"
+" <ul class=\"infoList\">"
+" <li>"
+" <label>"+language['spy']+"</label>"
+" <div id=spies0>0</div>"
+" </li>"
+" <li>"
+" <label>"+language['decoy']+"</label>"
+" <div id=decoys0>0</div>"
+" </li>"
+" <li>"
+" <label>"+language['risk']+"</label>"
+" <div id=risk0>0%</div>"
+" </li>"
+" <li>"
+" <label>"+language['chance']+"</label>"
+" <div id=chance0>0%</div>"
+" </li>"
+" <li>"
+" <label>"+language['drisk']+"</label>"
+" <div id=drisk0>0%</div>"
+" </li>"
+" <li>"
+" <label>"+language['cost']+"</label>"
+" <div id=cost0>"+document.getElementById('info_costs_text').innerHTML+"</div>"
+" </li>"
+" <li>"
+" <label>"+language['dcost']+"</label>"
+" <div id=dcost0>"+document.getElementById('info_decoycost_text').innerHTML+"</div>"
+" </li>"
+" </ul>"
+" <div class=centerButton style='margin-top:-15px; height:40px;'><input value="+language['use']+" id=use0 class=button type=submit></div>"
+" <div class=\"footer\"></div>"
+" </div>"
+" <br class=\"clearfloat\" />"
+" <div class=centerButton style='margin-top:-15px; height:35px;'>"
+" <input value="+language['calc']+" id=calc class=button type=submit>"
+" </div>"
+" </div>"
+"</div>"
+"<div class=\"footer\"></div>"
+"</div>";
document.getElementById('missionSummary').parentNode.parentNode.parentNode.parentNode.appendChild(div);
document.getElementById('calc').addEventListener('click',calc,true);
document.getElementById('use0').addEventListener('click',setSpys,true);
document.getElementById('use1').addEventListener('click',setSpys,true);
}
// Optimale Verteilung berechnen und ausgeben
function calc() {
var mspies = 0;
for(var i=0; i<cityids.length; i++) {
if(document.getElementById('spyCount_'+cityids[i])!=null) {
document.getElementById('agents'+cityids[i]).value = 0;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('agents'+cityids[i]).dispatchEvent(evt);
document.getElementById('decoys'+cityids[i]).value = 0;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('decoys'+cityids[i]).dispatchEvent(evt);
mspies += parseInt(document.getElementById('spyCount_'+cityids[i]).innerHTML);
}
}
var spies = [0,0];
var decoys = [0,0];
var risks = [100,100];
var chances = [0,0];
var drisks = [0,0];
var costs1 = ["",""];
var costs2 = ["",""];
for(var spy=1; spy<=mspies; spy++) {
var lastchance = 0;
var lastrisk = 100;
var cchance = 0;
var crisk = 100;
var drisk = 0;
var cost1 = "";
var cost2 = "";
var minrisk = parseFloat(document.getElementById('info_minimumrisk_text').innerHTML);
for(var decoy=0; decoy+spy<=mspies; decoy++) {
lastchance = cchance;
lastrisk = crisk;
[cchance, crisk, drisk, cost1, cost2, minrisk] = getVals(spy,decoy);
if(crisk == minrisk && (cchance <= lastchance || cchance == 100))
break;
if(cchance > chances[1] || (crisk < risks[1] && cchance >= chances[1])) {
spies[1]=spy;
decoys[1]=decoy;
risks[1]=crisk;
chances[1]=cchance;
drisks[1]=drisk;
costs1[1]=cost1;
costs2[1]=cost2;
}
if(crisk < risks[0] || (crisk <= risks[0] && cchance > chances[0])) {
spies[0]=spy;
decoys[0]=decoy;
risks[0]=crisk;
chances[0]=cchance;
drisks[0]=drisk;
costs1[0]=cost1;
costs2[0]=cost2;
}
}
}
document.getElementById('spies0').innerHTML = spies[0];
document.getElementById('spies1').innerHTML = spies[1];
document.getElementById('decoys0').innerHTML = decoys[0];
document.getElementById('decoys1').innerHTML = decoys[1];
document.getElementById('risk0').innerHTML = risks[0]+"%";
document.getElementById('risk1').innerHTML = risks[1]+"%";
document.getElementById('chance0').innerHTML = chances[0]+"%";
document.getElementById('chance1').innerHTML = chances[1]+"%";
document.getElementById('drisk0').innerHTML = drisks[0]+"%";
document.getElementById('drisk1').innerHTML = drisks[1]+"%";
document.getElementById('cost0').innerHTML = costs1[0];
document.getElementById('cost1').innerHTML = costs1[1];
document.getElementById('dcost0').innerHTML = costs2[0];
document.getElementById('dcost1').innerHTML = costs2[1];
document.getElementById('calc').blur();
}
//Hilfsfunktionen
function setSpys(event) {
var id = event.target.id.substr(event.target.id.length-1)
var spy = parseInt(document.getElementById('spies'+id).innerHTML);
var decoy = parseInt(document.getElementById('decoys'+id).innerHTML);
var spies = new Array();
var mspies = 0;
for(var i=0; i<cityids.length; i++) {
if(document.getElementById('spyCount_'+cityids[i])!=null) {
document.getElementById('agents'+cityids[i]).value = 0;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('agents'+cityids[i]).dispatchEvent(evt);
document.getElementById('decoys'+cityids[i]).value = 0;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('decoys'+cityids[i]).dispatchEvent(evt);
spies[i] = parseInt(document.getElementById('spyCount_'+cityids[i]).innerHTML);
mspies += spies[i];
}
else
spies[i] = 0;
}
if(mspies < spy+decoy)
return 0;
for(var i=0; i<spies.length; i++) {
if(spies[i] > 0 && spy>0) {
document.getElementById('agents'+cityids[i]).value = Math.min(spy,spies[i]);
var temp=Math.min(spy,spies[i]);
spies[i]-=temp;
spy-=temp;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('agents'+cityids[i]).dispatchEvent(evt);
}
if(spies[i] > 0 && decoy>0) {
document.getElementById('decoys'+cityids[i]).value = Math.min(decoy,spies[i]);
var temp=Math.min(decoy,spies[i]);
spies[i]-=temp;
decoy-=temp;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('decoys'+cityids[i]).dispatchEvent(evt);
}
}
event.target.blur();
}
function getVals(spy,decoy) {
var spies = new Array();
var mspies = 0;
for(var i=0; i<cityids.length; i++) {
if(document.getElementById('spyCount_'+cityids[i])!=null) {
document.getElementById('agents'+cityids[i]).value = 0;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('agents'+cityids[i]).dispatchEvent(evt);
document.getElementById('decoys'+cityids[i]).value = 0;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('decoys'+cityids[i]).dispatchEvent(evt);
spies[i] = parseInt(document.getElementById('spyCount_'+cityids[i]).innerHTML);
mspies += spies[i];
}
else
spies[i] = 0;
}
if(mspies < spy+decoy)
return 0;
for(var i=0; i<spies.length; i++) {
if(spies[i] > 0 && spy>0) {
document.getElementById('agents'+cityids[i]).value = Math.min(spy,spies[i]);
var temp=Math.min(spy,spies[i]);
spies[i]-=temp;
spy-=temp;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('agents'+cityids[i]).dispatchEvent(evt);
}
if(spies[i] > 0 && decoy>0) {
document.getElementById('decoys'+cityids[i]).value = Math.min(decoy,spies[i]);
var temp=Math.min(decoy,spies[i]);
spies[i]-=temp;
decoy-=temp;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('decoys'+cityids[i]).dispatchEvent(evt);
}
}
var c1 = parseFloat(document.getElementById('info_chance_text').innerHTML);
var c2 = parseFloat(document.getElementById('info_risk_text').innerHTML);
var c3 = parseFloat(document.getElementById('info_decoyrisk_text').innerHTML);
var c4 = document.getElementById('info_costs_text').innerHTML;
var c5 = document.getElementById('info_decoycost_text').innerHTML;
var c6 = parseFloat(document.getElementById('info_minimumrisk_text').innerHTML);
for(var i=0; i<cityids.length; i++) {
if(document.getElementById('spyCount_'+cityids[i])!=null) {
document.getElementById('agents'+cityids[i]).value = 0;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('agents'+cityids[i]).dispatchEvent(evt);
document.getElementById('decoys'+cityids[i]).value = 0;
var evt = document.createEvent("KeyEvents");
evt.initKeyEvent('keyup', true, true, window, false, false, false, false, 13, 0);
document.getElementById('decoys'+cityids[i]).dispatchEvent(evt);
}
}
return [c1,c2,c3,c4,c5,c6];
}
function getLanguage(href) {
var language = href.replace(/........\d+.(\w+).*/,"$1");
return language ;
}
Mozilla add on,User script,Grease Monkey Script, greasemonkey userscripts, updater userscripts mafia wars userscripts mafia wars autoplayer userscripts mafia wars wall userscripts scripts userscripts travian greasemonkey greasemonkey download greasemonkey facebook greasemonkey tutorial greasemonkey youtube greasemonkey travian greasemonkey chrome greasemonkey mafia wars greasemonkey mafia wars autoplayer
Saturday, February 5, 2011
SpionageRechner für Ikariam v0.4.2
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment