Händlerscript: Unterschied zwischen den Versionen

Aus Horizon
Wechseln zu: Navigation, Suche
(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…“)
 
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>