Zomis scripttestamente

DeletedUser

Guest
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 :)

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.

Rubin
 
Senast redigerad av en moderator:

DeletedUser

Guest
Man får gratulera dig till att ha lyckats lägga av med TW. Ha det så bra IRL!
 

Haroo

Active Member
Reaktionspoäng
0
Nu har jag ju helt fullt i snabbmenyn, får tacka för alla script å önska dig lycka till IRL!
 

Dounut

Member
Reaktionspoäng
0
Eeee , Det första handelsscriptet - När jag clickar på det så händer ingenting , Vad gör jag för fel :confused:
 

DeletedUser

Guest
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?
 

DeletedUser

Guest
*Lyfter på hatten* En riktigt fin scriptsamling som kommer att komma till nytta!

Lycka till med dina framtida projekt!
 

outlander

Active Member
Reaktionspoäng
1
Du vet redan hur jag känner utöver det hela Zomis, förhoppsningsvis beslutar du dig för att återkomma snart.
 

DeletedUser

Guest
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.
 

DeletedUser

Guest
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?
Troligen är inte scriptet anpassat för din webbläsare. Pröva Firefox.

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.
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.

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');
Jag föredrar en annan lösning. Har inte testat det men tror detta ska fungera:
Källkod:
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...?
 

DeletedUser

Guest
Kan ni klara er utan mig nu...?

Jag klarar mig. Du är en pärla, helt klart - men jag kan skripta även utan konkurrens. Dock har jag vare sig ork eller lust att skripta pga vissa händelser som gör att jag inte vill bidra till spelutvecklingen av TW.
 

DeletedUser

Guest
Skit coola script alla fungerar, dock inte det jag var verkligen sugen på att använda :( Marknadsskriptet nr 1, av någon anledning händer inget alls för mig... Lite segt :,(
använder ff så tror inte det beror på att scriptet e för långt lr så
 

DeletedUser

Guest
Aha, jag e kö så de kanske beror på de som Benzocaine sade ska prova de där andra scriptet.
 

Chrome71

Member
Reaktionspoäng
2
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.


Jag förstår att det buggar här men jag har en fråga.. för jag har samma fel på massrekryteringsscriptet :(


Alltså massrekryterings scriptet fungerar inte alls då man stoppar in det som kö eller på ett kö konto.
i V7 eller V10.
 
Senast ändrad:

DeletedUser

Guest
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 :)
 

DeletedUser

Guest
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 :)

Är det detta script du söker?

Testa om det är rätt.

Källkod:
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();
 

DeletedUser

Guest
själva skriptet har jag, det ville bara inte funka som det skulle för mig, men jag hittade ett fint skript på engelska forumet så det löste sig i alla fall :)
 
Topp