DeletedUser
Guest
Marknadsskriptet e ju helt underbart! <3
Varför scriptet inte fungerar för Rubin kommer kanske förbli en gåta. Man skulle kunna ge honom ett script som spottar ut lite mer information för att debugga det hela men det är ingenting jag tar itu med.
Bye bye
Eeee , Det första handelsscriptet - När jag clickar på det så händer ingenting , Vad gör jag för fel
Stammar på kartan - Visar de olika stammarna som syns på kartan (ej minimapen), utan att ni behöver skriva in vilka stammar ni vill visa, och skapar olika fejkscript mot de byarna som tillhör de olika stammarna som syns på kartan
Får inte detta att funka eller gör kag fel? får bara upp Kontinent XX (X/XXX) issar påatt de e nått med stammarna? Men hur/var/funkar sedan fejkskripet?
doc.location.hostname+'/game.php?village='+villid+'&screen=market&info='+orders[j].slice(1)+'">'+ordername+'
t=session_ID istället för village=village_ID
window.location.replace(D.URL.substring(0,D.URL.indexOf('&'))+'&screen=market');
Troligen är inte scriptet anpassat för din webbläsare. Pröva Firefox.Får inte detta att funka eller gör kag fel? får bara upp Kontinent XX (X/XXX) issar påatt de e nått med stammarna? Men hur/var/funkar sedan fejkskripet?
Det är inget debug-program jag använder, utan jag gör justeringar i scriptet för att spotta ut mer information för att jag lättare ska kunna ta reda på vart det är fel.Kan du ge mig debug programet så löser jag förhoppningsvis felsökningen själv =)
Felet ligger på min dator, troligen inte rätt programvara på lr något som ställer till att, frågan är bara vad.
Jag föredrar en annan lösning. Har inte testat det men tror detta ska fungera:Marknadsskriptet har en bugg som gör att om man är KÖ öppnas inte byn hos spelaren man kontoövervakar. Istället öppnas en egen by.
[...]
Själv använder jag följande kod i mina skript för att åstadkomma detta:
Källkod:window.location.replace(D.URL.substring(0,D.URL.indexOf('&'))+'&screen=market');
javascript: maxstorage = 0.9; var doc = (window.frames.length>0) ? window.main.document : document; var info = new Array(); var orders = new Array(); Array.min = function( array ){ return Math.min.apply( Math, array ); }; Array.max = function( array ){ return Math.max.apply( Math, array ); }; function findVill(villid) { for (tmp=0;tmp<villas.length;tmp++) if (villas[tmp][0] == villid) return tmp; return null; } var ts = doc.getElementsByTagName('table'); tovill = doc.URL.match(/tovill=([^$&]+)/); if (doc.URL.match(/mode=combined/)) { if (tovill == null) tovill = ''; else tovill = '&'+tovill[0]; for (var x=0;x<ts.length;x++) if (ts[x].className == 'vis') if (ts[x].rows[0].cells[0].innerHTML == 'By') for (j=1; j < ts[x].rows.length; j++) info.push(ts[x].rows[j].cells[ts[x].rows[j].cells.length - 1].innerHTML.match(/\d+\/\d+/)[0].replace('/', '_')); window.open('{game}&screen=overview_villages&mode=prod&info='+info.join(',')+tovill, '_top'); end(); } else if (doc.URL.match(/mode=prod/)) { info = doc.URL.match(/info=([^$&]+)/); a = info[1].split(','); for (var x=0; x < ts.length; x++) if (ts[x].className == 'vis') if (ts[x].rows[0].cells.length > 3) if (ts[x].rows[0].cells[1].innerHTML == 'Poäng') { t = ts[x]; var nh = document.createElement('th'); t.rows[0].appendChild(nh); villas = new Array(); for (var j=t.rows[0].cells.length - 1; j > 2; j--) t.rows[0].cells[j].innerHTML = t.rows[0].cells[j-1].innerHTML; t.rows[0].cells[2].innerHTML = 'Handelsmän'; t.rows[0].deleteCell(8); t.rows[0].deleteCell(7); t.rows[0].cells[6].innerHTML = 'Orders'; tfarm=0;twood=0;tclay=0;tiron=0; for (j=1; j < ts[x].rows.length; j++) { td = t.rows[j].insertCell(2); ahref = t.rows[j].cells[0].getElement('a'); vill = ahref.href.replace(/screen=overview/, 'screen=market'); vid=ahref.href.match(/village=(\d+)/)[1]; ahref = ahref.getElement('span'); rexp = ahref.innerHTML.match(/(.+) \((\d{3})\|(\d{3})\) K\d+$/); vx=rexp[2];vy=rexp[3];villname=rexp[1]; t.rows[j].deleteCell(8); t.rows[j].deleteCell(7); t.rows[j].cells[6].innerHTML = ''; var c = t.rows[j].cells[3].innerHTML; c = c.replace(/<[^\>]*>/g,""); c = c.replace(/\./g,""); res = c.split(" "); wood = Number(res[0]); clay = Number(res[1]); iron = Number(res[2]); mmen = a[j-1].match(/\d+/)[0]; td.innerHTML = "<a href=\""+vill+"\">" + a[j-1].replace(/_/, '/') + "</a>"; storage = Number(t.rows[j].cells[4].innerHTML.match(/\d+/)); if (t.rows[j].cells[0].innerHTML.match(/mer i population/)) farmmax = 26400; else farmmax = 24000; farmfree = farmmax - Number(t.rows[j].cells[5].innerHTML.match(/\d+/)); tfarm = tfarm + farmfree; twood = twood + wood; tclay = tclay + clay; tiron = tiron + iron; a2 = new Array(vid, vx, vy, mmen, wood, clay, iron, storage, farmfree, villname); villas.push(a2); } for (j=0;j<ts[x].rows.length-1;j++) { r=j+1; farmp = villas[j][8] / tfarm; villas[j].push(Math.round(twood * farmp)); villas[j].push(Math.round(tclay * farmp)); villas[j].push(Math.round(tiron * farmp)); villas[j].push(farmp); villas[j].push(r); t.rows[r].cells[3].innerHTML += '<BR>' + Math.round(twood * farmp) + ' , ' + Math.round(tclay * farmp) + ', ' + Math.round(tiron * farmp); t.rows[r].cells[5].innerHTML += '<BR>' + Number(Math.round(farmp*100*100)/100)+'%'; } function farmsort(a,b) { if (Number(a[8]) > Number(b[8])) return -1; if (Number(b[8]) > Number(a[8])) return 1; return 0; } function distsort(a,b) { adist=Math.sqrt((pos[0]-a[1])*(pos[0]-a[1]) + (pos[1]-a[2])*(pos[1]-a[2])); bdist=Math.sqrt((pos[0]-b[1])*(pos[0]-b[1]) + (pos[1]-b[2])*(pos[1]-b[2])); if (adist < bdist) return -1; if (bdist < adist) return 1; return 0; } villas2 = villas.slice(); if (tovill != null) { tovill = findVill(tovill[1]); } else villas=villas.sort(farmsort); for (x=0;x<villas.length;x++) { if ((tovill != null) && (tovill != x)) continue; pos=villas[x].slice(1, 3); ssize = villas[x][7] * maxstorage; if (villas[x][10] > ssize) villas[x][10] = ssize; if (villas[x][11] > ssize) villas[x][11] = ssize; if (villas[x][12] > ssize) villas[x][12] = ssize; rres = new Array(villas[x][4] - villas[x][10], villas[x][5] - villas[x][11], villas[x][6] - villas[x][12]); if (tovill != null) rres = new Array(villas[x][4] - ssize, villas[x][5] - ssize, villas[x][6] - ssize); idxmax = rres.indexOf(Array.max(rres)); idxmin = rres.indexOf(Array.min(rres)); idxnorm = -1; if (idxmin == idxmax) { idxmin = 0; idxnorm = 1; idxmax=2; } else for (j=0;j<rres.length;j++) if ((j != idxmin) && (j != idxmax)) idxnorm = j; villas2.sort(distsort); for (j=1;j<villas2.length;j++) { idj=findVill(villas2[j][0]); send=new Array(0,0,0); amen=villas2[j][3]; sres = new Array(villas2[j][4] - villas2[j][10], villas2[j][5] - villas2[j][11], villas2[j][6] - villas2[j][12]); function doS(idx) { if ((rres[idx] < 0) && (sres[idx] >= 1000) && (amen > 0)) { send[idx]+=1000;sres[idx]-=1000;rres[idx]+=1000;amen-=1; villas[x][idx+4] += 1000; villas[idj][idx+4] -= 1000; villas[idj][3] -= 1; return true; } return false; } while (doS(idxmin)) if (rres[idxmin] > rres[idxnorm]) break; while (doS(idxnorm)) { doS(idxmin); if (rres[idxnorm] > rres[idxmax]) break; } while (doS(idxmax)) { doS(idxmin); doS(idxnorm); } /*alert('Send: ' + send + '\nrres: ' + rres + '\nsres: ' + sres + '\namen: ' + amen);*/ if ((send[0] == 0) && (send[1] == 0) && (send[2] == 0)) continue; orders.push(new Array(villas2[j][0], villas[x][1], villas[x][2], send[0], send[1], send[2], villas[x][9], villas2[j][14])); if ((rres[0] >= 0) && (rres[1] >= 0) && (rres[2] >= 0)) break; } } for (j=0;j<orders.length;j++) { t.insertRow(t.rows.length); td = t.rows[t.rows.length-1].insertCell(0); td2=t.rows[orders[j][7]].cells[6]; villid=orders[j][0]; ordername = 'Send to ' + orders[j][1] + '|' + orders[j][2] + ' ' + orders[j][6] + ': ' + orders[j].slice(3, 6).join(', '); uregexp = doc.URL.match(/t=[^&]+/); if (uregexp == null) td.innerHTML = '<A HREF="http://'+doc.location.hostname+'/game.php?village='+villid+'&screen=market&info='+orders[j].slice(1)+'">'+ordername+'</A>'; else td.innerHTML = '<A HREF="http://'+doc.location.hostname+'/game.php?'+uregexp[0]+'village='+villid+'&screen=market&info='+orders[j].slice(1)+'">'+ordername+'</A>'; td2.innerHTML += '<BR><A HREF="http://'+doc.location.hostname+'/game.php?village='+villid+'&screen=market&info='+orders[j].slice(1)+'">'+ordername+'</A>'; } end(); } } else if (doc.URL.match(/screen=market/)) { info = doc.URL.match(/info=([^$&]+)/); a = info[1].split(','); doc.forms[0].x.value=a[0]; doc.forms[0].y.value=a[1]; doc.forms[0].wood.value=a[2]; doc.forms[0].stone.value=a[3]; doc.forms[0].iron.value=a[4]; } else if (doc.URL.match(/screen=main/)) { tovill = doc.URL.match(/village=([^$&]+)/); window.open('{game}&screen=overview_villages&mode=combined&tovill='+tovill[1], '_top'); } end();
Kan ni klara er utan mig nu...?
Marknadsskriptet har en bugg som gör att om man är KÖ öppnas inte byn hos spelaren man kontoövervakar. Istället öppnas en egen by.
Jag orkar inte fixa, men det som orsakar buggen är:
Källkod:doc.location.hostname+'/game.php?village='+villid+'&screen=market&info='+orders[j].slice(1)+'">'+ordername+'
Om man är KÖ måste det vara:
Källkod:t=session_ID istället för village=village_ID
Själv använder jag följande kod i mina skript för att åstadkomma detta:
Källkod:window.location.replace(D.URL.substring(0,D.URL.indexOf('&'))+'&screen=market');
Ni som kan koda fattar vad jag menar och kan uppdatera skriptet så att det är KÖ-säkert.
Kan ni klara er utan mig nu...?
jag har problem med handelsskriptet, det vill inte ge mig de där länkarna som ska komma fram... jag antar att det bara är jag som är lite trög men skulle ändå uppskatta hjälp
javascript: maxstorage = 0.9; var doc = (window.frames.length>0) ? window.main.document : document; var info = new Array(); var orders = new Array(); Array.min = function( array ){ return Math.min.apply( Math, array ); }; Array.max = function( array ){ return Math.max.apply( Math, array ); }; function findVill(villid) { for (tmp=0;tmp<villas.length;tmp++) if (villas[tmp][0] == villid) return tmp; return null; } var ts = doc.getElementsByTagName('table'); tovill = doc.URL.match(/tovill=([^$&]+)/); if (doc.URL.match(/mode=combined/)) { if (tovill == null) tovill = ''; else tovill = '&'+tovill[0]; for (var x=0;x<ts.length;x++) if (ts[x].className == 'vis') if (ts[x].rows[0].cells[0].innerHTML == 'By') for (j=1; j < ts[x].rows.length; j++) info.push(ts[x].rows[j].cells[ts[x].rows[j].cells.length - 1].innerHTML.match(/\d+\/\d+/)[0].replace('/', '_')); window.open('{game}&screen=overview_villages&mode=prod&info='+info.join(',')+tovill, '_top'); end(); } else if (doc.URL.match(/mode=prod/)) { info = doc.URL.match(/info=([^$&]+)/); a = info[1].split(','); for (var x=0; x < ts.length; x++) if (ts[x].className == 'vis') if (ts[x].rows[0].cells.length > 3) if (ts[x].rows[0].cells[1].innerHTML == 'Poäng') { t = ts[x]; var nh = document.createElement('th'); t.rows[0].appendChild(nh); villas = new Array(); for (var j=t.rows[0].cells.length - 1; j > 2; j--) t.rows[0].cells[j].innerHTML = t.rows[0].cells[j-1].innerHTML; t.rows[0].cells[2].innerHTML = 'Handelsmän'; t.rows[0].deleteCell(8); t.rows[0].deleteCell(7); t.rows[0].cells[6].innerHTML = 'Orders'; tfarm=0;twood=0;tclay=0;tiron=0; for (j=1; j < ts[x].rows.length; j++) { td = t.rows[j].insertCell(2); ahref = t.rows[j].cells[0].getElement('a'); vill = ahref.href.replace(/screen=overview/, 'screen=market'); vid=ahref.href.match(/village=(\d+)/)[1]; ahref = ahref.getElement('span'); rexp = ahref.innerHTML.match(/(.+) \((\d{3})\|(\d{3})\) K\d+$/); vx=rexp[2];vy=rexp[3];villname=rexp[1]; t.rows[j].deleteCell(8); t.rows[j].deleteCell(7); t.rows[j].cells[6].innerHTML = ''; var c = t.rows[j].cells[3].innerHTML; c = c.replace(/<[^\>]*>/g,""); c = c.replace(/\./g,""); res = c.split(" "); wood = Number(res[0]); clay = Number(res[1]); iron = Number(res[2]); mmen = a[j-1].match(/\d+/)[0]; td.innerHTML = "<a href=\""+vill+"\">" + a[j-1].replace(/_/, '/') + "</a>"; storage = Number(t.rows[j].cells[4].innerHTML.match(/\d+/)); if (t.rows[j].cells[0].innerHTML.match(/mer i population/)) farmmax = 26400; else farmmax = 24000; farmfree = farmmax - Number(t.rows[j].cells[5].innerHTML.match(/\d+/)); tfarm = tfarm + farmfree; twood = twood + wood; tclay = tclay + clay; tiron = tiron + iron; a2 = new Array(vid, vx, vy, mmen, wood, clay, iron, storage, farmfree, villname); villas.push(a2); } for (j=0;j<ts[x].rows.length-1;j++) { r=j+1; farmp = villas[j][8] / tfarm; villas[j].push(Math.round(twood * farmp)); villas[j].push(Math.round(tclay * farmp)); villas[j].push(Math.round(tiron * farmp)); villas[j].push(farmp); villas[j].push(r); t.rows[r].cells[3].innerHTML += '<BR>' + Math.round(twood * farmp) + ' , ' + Math.round(tclay * farmp) + ', ' + Math.round(tiron * farmp); t.rows[r].cells[5].innerHTML += '<BR>' + Number(Math.round(farmp*100*100)/100)+'%'; } function farmsort(a,b) { if (Number(a[8]) > Number(b[8])) return -1; if (Number(b[8]) > Number(a[8])) return 1; return 0; } function distsort(a,b) { adist=Math.sqrt((pos[0]-a[1])*(pos[0]-a[1]) + (pos[1]-a[2])*(pos[1]-a[2])); bdist=Math.sqrt((pos[0]-b[1])*(pos[0]-b[1]) + (pos[1]-b[2])*(pos[1]-b[2])); if (adist < bdist) return -1; if (bdist < adist) return 1; return 0; } villas2 = villas.slice(); if (tovill != null) { tovill = findVill(tovill[1]); } else villas=villas.sort(farmsort); for (x=0;x<villas.length;x++) { if ((tovill != null) && (tovill != x)) continue; pos=villas[x].slice(1, 3); ssize = villas[x][7] * maxstorage; if (villas[x][10] > ssize) villas[x][10] = ssize; if (villas[x][11] > ssize) villas[x][11] = ssize; if (villas[x][12] > ssize) villas[x][12] = ssize; rres = new Array(villas[x][4] - villas[x][10], villas[x][5] - villas[x][11], villas[x][6] - villas[x][12]); if (tovill != null) rres = new Array(villas[x][4] - ssize, villas[x][5] - ssize, villas[x][6] - ssize); idxmax = rres.indexOf(Array.max(rres)); idxmin = rres.indexOf(Array.min(rres)); idxnorm = -1; if (idxmin == idxmax) { idxmin = 0; idxnorm = 1; idxmax=2; } else for (j=0;j<rres.length;j++) if ((j != idxmin) && (j != idxmax)) idxnorm = j; villas2.sort(distsort); for (j=1;j<villas2.length;j++) { idj=findVill(villas2[j][0]); send=new Array(0,0,0); amen=villas2[j][3]; sres = new Array(villas2[j][4] - villas2[j][10], villas2[j][5] - villas2[j][11], villas2[j][6] - villas2[j][12]); function doS(idx) { if ((rres[idx] < 0) && (sres[idx] >= 1000) && (amen > 0)) { send[idx]+=1000;sres[idx]-=1000;rres[idx]+=1000;amen-=1; villas[x][idx+4] += 1000; villas[idj][idx+4] -= 1000; villas[idj][3] -= 1; return true; } return false; } while (doS(idxmin)) if (rres[idxmin] > rres[idxnorm]) break; while (doS(idxnorm)) { doS(idxmin); if (rres[idxnorm] > rres[idxmax]) break; } while (doS(idxmax)) { doS(idxmin); doS(idxnorm); } /*alert('Send: ' + send + '\nrres: ' + rres + '\nsres: ' + sres + '\namen: ' + amen);*/ if ((send[0] == 0) && (send[1] == 0) && (send[2] == 0)) continue; orders.push(new Array(villas2[j][0], villas[x][1], villas[x][2], send[0], send[1], send[2], villas[x][9], villas2[j][14])); if ((rres[0] >= 0) && (rres[1] >= 0) && (rres[2] >= 0)) break; } } for (j=0;j<orders.length;j++) { t.insertRow(t.rows.length); td = t.rows[t.rows.length-1].insertCell(0); td2=t.rows[orders[j][7]].cells[6]; villid=orders[j][0]; ordername = 'Send to ' + orders[j][1] + '|' + orders[j][2] + ' ' + orders[j][6] + ': ' + orders[j].slice(3, 6).join(', '); td.innerHTML = '<A HREF="http://'+doc.location.hostname+'/game.php?village='+villid+'&screen=market&info='+orders[j].slice(1)+'">'+ordername+'</A>'; td2.innerHTML += '<BR><A HREF="http://'+doc.location.hostname+'/game.php?village='+villid+'&screen=market&info='+orders[j].slice(1)+'">'+ordername+'</A>'; } end(); } } else if (doc.URL.match(/screen=market/)) { info = doc.URL.match(/info=([^$&]+)/); a = info[1].split(','); doc.forms[0].x.value=a[0]; doc.forms[0].y.value=a[1]; doc.forms[0].wood.value=a[2]; doc.forms[0].stone.value=a[3]; doc.forms[0].iron.value=a[4]; } else if (doc.URL.match(/screen=main/)) { tovill = doc.URL.match(/village=([^$&]+)/); window.open('{game}&screen=overview_villages&mode=combined&tovill='+tovill[1], '_top'); } end();