BB kodene til alle byene på kartet

Status
Stengt for ytterligere svar.

DeletedUser

Guest
Dette skriptet plukker ut alle byene på kartet etter visse kriterier og legger dem i et format som passer inn i koordinatskript.

[spoil]javascript: var author = "Stotty2009 but most of the code is from: dalesmckay@gmail.com"; var minVer = "7.2"; var win = (window.frames.length > 0) ? window.main : window; var ver = win.game_data.version.match(/[\d|\.]+/g); function getMode() { mode = prompt("b for barb villages, p for player villages, or t for tribe villages", "p"); mode = mode.toLowerCase(); checkMode() } function checkMode() { if (mode == 'p') { playername = prompt("which player pl0x?", "Stotty2009") + ' ' } else if (mode == 't') { tribename = prompt("which tribe pl0x?", "Crazy Muthas") } else if (mode == 'b') { } else { getMode() } } getMode(); function trim(str) { return str.replace(/^\s+|\s+$/g, "") } if (!ver || (parseFloat(ver[1]) < minVer)) { alert("This script requires v" + minVer + " or higher.\nYou are running: v" + ver[1]) } else { if (win.game_data.screen == "map") { var coords = []; var col, row, coord, village, player, points; for (row = 0; row < TWMap.size[1]; row++) { for (col = 0; col < TWMap.size[0]; col++) { coord = TWMap.map.coordByPixel(TWMap.map.pos[0] + (TWMap.tileSize[0] * col), TWMap.map.pos[1] + (TWMap.tileSize[1] * row)); if (coord) { village = TWMap.villages[coord.join("")]; if (village) { player = null; if (parseInt(village.owner || "0", 10)) { player = TWMap.players[village.owner]; var ally = TWMap.allies[player.ally] } if (player) { if (mode == "p") { if (trim(player.name) == trim(playername)) { coords.push(coord.join("|")) } } else if (mode == "t") { if (ally) { if (trim(ally.name) == trim(tribename)) { coords.push(coord.join("|")) } } } } else { if (mode == "b") { coords.push(coord.join("|")) } } } } } } alert(coords.join(" ")) } else { alert("Run this script from the Map.\nRedirecting now..."); self.location = win.game_data.link_base_pure.replace(/screen\=/i, "screen=map") } } void (o);[/spoil]

Kriteriene du kan velge mellom er størrelsen på enten gråbyer eller spillerbyer. Du velger et intervall av poeng, og den tar ut koordinatene til alle byene som har en poengsum i det intervallet. Det er ikke mulig å velge fra en enkelt spiller, men dersom den spilleren du vil ha koordinater fra har byer på en viss poengsum kan man bare velge intervallet til å være akkurat den poengsummen. Det er også mulig å justere størrelsen på kartet slik, og bruke det til å plukke byer.

Usedvanlig praktisk hvis man vil plukke ut koordinater til farming, for eksempel.

Edit: Rustern94 oppdaget at dersom man har valgt intervallet for spillerbyer til [0, 0] så vil skriptet allikevel plukke med spillerbyer. Dersom man velger for eksempel intervallet [0,1] vil dette ikke skje.
 
Sist redigert av en moderator:

DeletedUser

Guest
Hvis jeg kun skal ha gråbyer, hva gjør jeg der det står spiller da? Skriver 0 på min og max?

Jeg prøvde det sånn det sto der, men fikk jo en massevis av spillerbyer også. Regner med at det er grunnen? :)
 

DeletedUser

Guest
Hvis jeg kun skal ha gråbyer, hva gjør jeg der det står spiller da? Skriver 0 på min og max?

Jeg prøvde det sånn det sto der, men fikk jo en massevis av spillerbyer også. Regner med at det er grunnen? :)

Korrekt. Slik det står nå tar den ingen gråbyer, da de maks kan ha poengsummen 0. Mens den tar alle spillerbyer fra 0 poeng til 12 000 poeng.
 

DeletedUser

Guest
Men... Såvidt jeg vet så kopierte jeg bare det scriptet og fikk med meg en del gråbyer også. Kan gjerne dobbeltsjekke det nå for å være sikker.

Hva er grunnen til det egentlig?
 

DeletedUser

Guest
Joda. Scriptet tar også med gråbyer. På de byen jeg sjekket var det fra 0-500 poeng ca av gråbyer, gadd ikke bla mer, og alt av spillerbyer.
 

Kvænangen

Velkjent medlem
Reaksjonspoeng
135
Fikk inn endel barbarer da jeg skulle ha spiller byer fra 0-300 poeng. Hvorfor har jeg ingen forklaring på.
 

DeletedUser

Guest
Jeg prøvde meg litt rundt og tror nok at man MÅ ha en viss poengsum på spillere også selvom man ikke vil ha dem med. Vet ikke om man kan ha 0-1, men jeg tok hvertfall 0-20 på spillere og 400-12000 på barbarer elns og fikk kun opp barbarer da. Kan ha noe med det å gjøre :)
 

DeletedUser

Guest
Det ser ut til at du har rett, Rustern. Tusen takk. Jeg skal redigere den informasjonen inn i første innlegget :) Det funker visst også hvis du velger for eksempe 1-1 på poengsum for spillerbyer.
 

DeletedUser

Guest
Det går vel uansett bare man har minst 1 poeng forskjell elns :)

Bare sånn som egentlig er uvesentlig... Hadde det også gått hvis jeg hadde fjernet "var village_size = { min: 0, max: 12000 };" ? Det var det neste jeg hadde tenkt å prøve, men kom ikke så langt. Da fjerner man jo hele spiller funksjonen liksom :)
 

Ruby0444

Velkjent medlem
Reaksjonspoeng
193
Har en versjon som funker internasjonalt. Vet ikke om det er noe forskjell på disse to?

javascript: var config={ "radius":0.0, "barb":{ "min":0, "max":1200 }, "player":{ "min":0, "max":5 } }; var n='fnFindFarms'; var s='http://crosstrigger.com/tw/v7/farm_finder.js'; function fnExecute(){a.fnFindFarms(config);} var a=(window.frames.length>0)?window.main:window;var z=0;function c(m){a.$('body').append('<span>'+m+'</span><br/>');}function e(){if(a.$('#'+n).length<=0){c('Embedding Script...');var script=a.document.createElement('script');script.id=n;script.type='text/javascript';script.src=s+'?'+Math.round(Math.random()*1000000);a.$('head').get(0).appendChild(script);setTimeout(e,1000);return false;}if(a.$('#'+n).length<=0){c('Finalizing Script...');setTimeout(e,1000);return false;}try{c('Executing Script'+(z>0?' (retry '+z+')':'')+'...');fnExecute();}catch(errorObj){z++;if(z<3){setTimeout(e,1000);}else{c('Script Failed!');}return false;}return true;}e();void(0);
 

sjefen

Litt aktiv?
Reaksjonspoeng
8
Bare sånn som egentlig er uvesentlig... Hadde det også gått hvis jeg hadde fjernet "var village_size = { min: 0, max: 12000 };" ? Det var det neste jeg hadde tenkt å prøve, men kom ikke så langt. Da fjerner man jo hele spiller funksjonen liksom

Orker ikke å prøve, men tipper at du vil få feilmelding (ingenting skjer) pga. at du da mangler en variabel som brukes i .js
 

DeletedUser

Guest
Har en versjon som funker internasjonalt. Vet ikke om det er noe forskjell på disse to?

Så vidt jeg kan se er det et skript med nesten samme kriterier, bortsett fra at du her kan definere en radius. Det vil si at den nok plukker opp samtlige byer innenfor en viss avstand fra byen du er i. Det virker som samme funksjon som denne.

Jeg får den ikke helt til å virke. Kan du linke til en tråd på .net e.l. hvor den brukes?
 

Ruby0444

Velkjent medlem
Reaksjonspoeng
193
Scriptet har jeg desverre fått tilsendt på skype til bruk på speed, og sliter med å finne denne beskrevet. Kan gjerne ta printscreen mens jeg bruker den på en utenlandsk server :)
 

DeletedUser

Guest
Tror det er den samme som denne som står nevnt på .co.uk? Usikker på om det står noe nyttig i tråden, though.

Fant den også nevnt på .net, men der ble vedkommende bare vist til dette scriptet av dalesmckay, som tydeligvis har laget både den dere snakker om her, og denne nye som han viser til. Fant ikke noe originaltråd elns om scriptet på .net, men dere kan alltids bare spørre ham :)

Jeg fant den også på polsk forum, men regner med at det er mindre interessant siden det står på...polsk.
 

DeletedUser

Guest
I et av svarene på .co.uk tråden, nærmere bestemt dette, står det en god forklaring;

stuff the user can change:
radius=R; (where R is the maximum distance of villages that the script will list)
barb_size={min:MIN,max:MAX}; (where MIN is the minimum amount of points for a playerless village to have, to be listed, and MAX is the maximum amount of points for a playerless village to have, to be listed.)
var village_size={min:MIN,max:MAX}; (where MIN is the minimum amount of points for a player-controlled village to have, to be listed, and MAX is the maximum amount of points for a player-controlled village to have, to be listed.)

the result of the search is a popup listing coordinates of villages on the map, that match the criteria set above.
example:
618|587 618|580 616|585 616|583 617|591

With radius set to 0 (searches all villages on the map)
and maximum village size set to 10000 (almost all player villages are ignored),
all barbs on the map will be found.

Så med andre ord, mer eller mindre samme funksjon som det opprinnelige skriptet i denne tråden.
 
Status
Stengt for ytterligere svar.
Topp