Problem mit einem Ressourcen Java Script

SantaCruze

Erfahrenes Mitglied
Hallo :) Und zwar habe ich folgendes Problem. Das Java Script was ich einsetze, aktualisiert die Ressourcen in einem Browser MMOG. Nun habe ich 2 neue Ressourcen hinzugefügt, allerdings wenn ich in folgender Zeile

Code:
r(start,{$res2.fe},{$res2.lut},{$res2.h2o},{$res2.h2},{$res5.rc1},{$res6.rc2},{$res_prod.fe},{$res_prod.lut},{$res_prod.h2o},{$res_prod.h2},{$res_prod.rc1},{$res_prod.rc2},{$res_stor.fe},{$res_stor.lut},{$res_stor.h2o},{$res_stor.h2},{$res_stor.rc1},{$res_stor.rc2});</script>

die neuen Werte (rc1 / rc 2) hinzufüge, stoppt das Script komplett und zählt nichts mehr. Nehme ich die 2 Werte wieder raus läuft alles wie gewohnt.

Anbei das komplette Script :

Code:
<script src="res.js" type="text/javascript"></script>
<script language=javascript>
yet=new Date();
start=Math.floor(yet.getTime()/1000);
r(start,{$res2.fe},{$res2.lut},{$res2.h2o},{$res2.h2},{$res5.rc1},{$res6.rc2},{$res_prod.fe},{$res_prod.lut},{$res_prod.h2o},{$res_prod.h2},{$res_prod.rc1},{$res_prod.rc2},{$res_stor.fe},{$res_stor.lut},{$res_stor.h2o},{$res_stor.h2},{$res_stor.rc1},{$res_stor.rc2});</script>

Code:
function dot(nStr, inD, outD, sep)
{
	nStr += '';
	var dpos = nStr.indexOf(inD);
	var nStrEnd = '';
	if (dpos != -1) {
		nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
		nStr = nStr.substring(0, dpos);
	}
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(nStr)) {
		nStr = nStr.replace(rgx, '$1' + sep + '$2');
	}
	return nStr + nStrEnd;
}

function r(start, r1,r2,r3,r4,r5,r6,w1,w2,w3,w4,w5,w6,l1,l2,l3,l4,l5,l6){
 yet=new Date();
 secs = Math.floor(yet.getTime()/1000)-start;
 res=document.getElementById('res1');
 value=Math.floor(r1+w1*secs);
 if (value <= 0) {
	value=0;
 } else if (value > l1) {
 	value=l1;
 }
 value = dot(value,',',',',',','.');
 res.innerHTML=value;
 res=document.getElementById('res2');
 value=Math.floor(r2+w2*secs);
  if (value <= 0) {
	 value=0;
 } else if (value > l2) {
 	value=l2;
 }
 value = dot(value,',',',',',','.');
 res.innerHTML=value;
 res=document.getElementById('res3');
 value=Math.floor(r3+w3*secs);
 if (value <= 0) {
	 value=0;
 } else if (value > l3) {
 	value=l3;
 }
  value = dot(value,',',',',',','.');
 res.innerHTML=value;
 res=document.getElementById('res4');
 value=Math.floor(r4+w4*secs);
 if (value <= 0) {
	 value=0;
 } else if (value > l4) {
 	value=l4;
 }
   value = dot(value,',',',',',','.');
 res.innerHTML=value;
 res=document.getElementById('res5');
 value=Math.floor(r5+w5*secs);
 if (value <= 0) {
	 value=0;
 } else if (value > l5) {
 	value=l5;
 }
   value = dot(value,',',',',',','.');
 res.innerHTML=value;
 res=document.getElementById('res6');
 value=Math.floor(r6+w6*secs);
 if (value <= 0) {
	 value=0;
 } else if (value > l6) {
 	value=l6;
 }
 value = dot(value,',',',',',','.');
 res.innerHTML=value;
 string=start+","+r1+","+r2+","+r3+","+r4+","+r5+","+r6+","+w1+","+w2+","+w3+","+w4+","+w5+","+w6+","+l1+","+l2+","+l3+","+l4+","+l5+","+l6;
 window.setTimeout("r("+string+");",999);
}
 
Java Konsole? Wo find ich die denn ? Ehrlich gesagt programmiere ich selbst kein Java Script sondern habs nur in einem php script integriert. Wie finde ich denn diese konsole ?
 
Hi,

die JS-Konsole erreichst du im IE über einen Doppelklick auf das Icon links unten in der Statuszeile, sofern ein Scriptfehler gemeldet wird (siehe angehängte Grafik), im Firefox über "Extras -> Fehler-Konsole".
 

Anhänge

  • ie.jpg
    ie.jpg
    4,3 KB · Aufrufe: 12
Also was kommt ist folgendes:

Fehler: syntax error
Quelldatei: http://localhost/mankind///////konstruktion.php
Zeile: 49, Spalte: 57
Quelltext:
r(start,308442.773895,19742.9222221,175000,87305.3838886,,,3.44444444444,2.77777777778,4.90361111111,1.09166666667,0,0,550000,175000,175000,1175000,100000,100000);

Allerdings ist das ganze sehr verworren. Original läuft das script so :
r(start,{$res2.fe},{$res2.lut},{$res2.h2o},{$res2.h2}

allerdings habe ich im HTML die res= angaben auf 1-4, ändere ich nun die original Daten auf
res1.fe / res2.lut / res3.h2o / res4.h2 stoppt es , lass ich alles beim alten, und füge einfach

res2.rc1 / res2.rc2 hinzu, zeigt er mir ne sehr lange komma Zahl in der Ausgabe an und das Script stoppt dann auch den zählvorgang.
 
Versuche mal, die Ressourcen ein wenig zu Runden, ich nehme an, da dürften 3-4 Kommazahlen eh ausreichend sein.
Ich könnte mir vorstellen, dass JS Probleme mit diesen Nachkommastellen hat, ein Syntaxerror ist nicht erkennbar.
 
Nunja das Problem ist , das die Rundungen ja aus der DB kommen und so gewollt sind wegen präzision. Das hieße halt das komplette Ressourcen Managment umbauen. Gibts da keine einfachere Lösung für ?
 
Ich weiss nicht mal, ob es die Lösung ist...bloss soviel ist klar, so funktioniert das Ressourcen Managment überhaupt nicht.

Probiers doch einfach erstmal, indem du per Hand Werte mit weniger Kommastellen einfügst, um zu sehen, ob es überhaupt daran liegt.

Für den Umbau, sollte es daran liegen, brauchst du dann m.E. nur den Typ der Ressourcen-Spalten ändern.
 

Neue Beiträge

Zurück