Händlerscript

Aus Horizon
Version vom 28. März 2013, 03:52 Uhr von FoXen (Diskussion | Beiträge) (Kategorien geradegebogen)

Wechseln zu: Navigation, Suche

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>