Händlerscript: Unterschied zwischen den Versionen
Aus Horizon
WoF (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Dieses Script ergänzt die Anzeige eines Händlerevents um Informationen wie gut oder schlecht die einzelnen Handelsvorschläge sind. <syntaxhighlight lang="javas…“) |
FoXen (Diskussion | Beiträge) K (lesebarer gemacht, solange wir hier kein syntayhl haben) |
||
Zeile 1: | Zeile 1: | ||
Dieses Script ergänzt die Anzeige eines Händlerevents um Informationen wie gut oder schlecht die einzelnen Handelsvorschläge sind. | Dieses Script ergänzt die Anzeige eines Händlerevents um Informationen wie gut oder schlecht die einzelnen Handelsvorschläge sind. | ||
− | <syntaxhighlight lang="javascript"> | + | <syntaxhighlight lang="javascript"><pre> |
// ==UserScript== | // ==UserScript== | ||
// @name Haendlerrechner_0.60 | // @name Haendlerrechner_0.60 | ||
Zeile 105: | Zeile 105: | ||
} | } | ||
} | } | ||
− | </syntaxhighlight> | + | </pre></syntaxhighlight> |
− | + | ||
[[Kategorie:Script]] | [[Kategorie:Script]] | ||
[[Kategorie:GM-Script]] | [[Kategorie:GM-Script]] |
Version vom 28. März 2013, 03:44 Uhr
Dieses Script ergänzt die Anzeige eines Händlerevents um Informationen wie gut oder schlecht die einzelnen Handelsvorschläge sind.
<pre>
// ==UserScript==
// @name Haendlerrechner_0.60
// @namespace goetterheimat
// @include *game.horiversum.org/game/main/main.php?cmd=message&send=sent&subcmd=*&action=view*
// Version: 0.2b
// ==/UserScript==
//Settings:(nur hier was verändern)
function my_parseNumber(n) {
if (n.length==undefined) n = "" + n;
var val = 0;
var div = 1;
var komma = div;
for(var i=0;i<n.length;i++) {
var ch = n.charAt(i);
if (ch.match(/^\d$/)) {
val = val * 10 + (ch*1);
div = div * komma;
} else if (ch==','||ch=='.') {
komma = 10;
} else if (ch.toLowerCase()=='m') {
return Math.floor(val * 1000000 / div);
} else if (ch.toLowerCase()=='k') {
return Math.floor(val * 1000 / div);
}
}
return Math.floor(val/div);
}
function my_numberFormat(strObj){ // Formatierung hinzufügen, aber nur für Zahlen
var sign="";
if (strObj<0) sign="-";
var strZahl = my_parseNumber(strObj);
if(strZahl) {
var integer = Math.abs(strZahl).toString();
if (integer.length>3) { // ab Tausenderwerten
for (var i = integer.length - 3; i > 0; i -= 3) integer = integer.substring (0 , i) + "'" + integer.substring (i);
return sign+integer;
} else {
return strZahl;
}
} else {
return 0;
}
}
//Variablen
//Faktoren immer erz:mineral:teibstoff als ist basis ts
var erz = 4;
var mineral = 2;
var ts = 1;
// in welchen bereich das angebot noch den gleichteueren zugeordnet wird, Auschalten bei 0
// Bsp: toleranz = 0.05 -> von 1:1.95 bis 2.05 (inkuive) ist der preis gleich!
var toleranz = 2;
//Farben der ausgewerteten Angebote
var gut = "#00FF00";
var gleich = "#00FFFF";
var schlecht = "#CC3333";
//Script
var vergleichswerte = new Array(ts/erz,mineral/erz,erz/mineral,ts/mineral,erz/ts,mineral/ts);
var toleranzplus = new Array(toleranz,toleranz,toleranz,toleranz,toleranz,toleranz);
var toleranzminus = new Array(-toleranz,-toleranz,-toleranz,-toleranz,-toleranz,-toleranz);
var td = null;
// '//table[@class="MessageTable"]//td[@class="MessageTableCellLeft"]'
// /html/body/div[5]/div[2]/div[2]/form/table[2]/tbody/tr/td
var tab = document.evaluate('//form//td[@class="MessageTableCellLeft"]', document, null, XPathResult.ANY_TYPE, null );
tab.iterateNext();
td = tab.iterateNext();
if (td != null && td.innerHTML.match(/Fliegender H.ndler/) && td.childNodes.length >=17){
var i = 0;
td.childNodes[3].innerHTML += " ... Verhältnis: [ " + my_numberFormat(erz) + " : " + my_numberFormat(mineral) + " : " + my_numberFormat(ts) + " ] Toleranz: " + toleranz;
for (i = 0;i < 6; i += 1){
//alert(td.childNodes[(i*2+5)].innerHTML);
var a = td.childNodes[((i+1)*2+5)].childNodes[1];
var nummer = a.innerHTML.split("nur");
nummer[0] = nummer[0].replace(/\D+/ig,"");
var wert = nummer[1].replace(/\D+/ig,"");
var soll = vergleichswerte[i]*nummer[0];
var sollplus = (1+toleranzplus[i]/100)*soll;
var sollminus = (1+toleranzminus[i]/100)*soll;
a.innerHTML = a.innerHTML + " " + my_numberFormat(soll) + " (" + my_numberFormat(soll-wert) + ")";
if (wert < sollminus) {
a.setAttribute("style","color:"+ gut);
} else {
if (wert<sollplus) {
a.setAttribute("style","color:"+ gleich);
} else {
a.setAttribute("style","color:"+ schlecht);
}
}
}
}
</pre>