Skriptsamling

xouz

Member
Här kommer jag posta skript en samling på en del populära skript och försöka hålla dem uppdaterade till senaste version.

Observera att det finns många fler skript än de som ligger här, ni kan hitta dem med sökfunktionen.

Saknar ni något skript ni anser borde vara här tveka inte att skicka ett PM till mig med skriptet i en code-tagg. Berätta kort vad skriptet gör eller är tänkt att göra, samt upphovsmannen (om detta är känt) så lägger jag in det här.

code tagg:
Källkod:
Börja med [code]
Avsluta med [/code]

Hur ni lägger till skript

1. Allt ni behöver göra är att gå in på Inställningar > Redigera Snabbmenyn.
2. Klickar ni på Lägg till ny länk.
3. Klistrar ni in skriptet där i Mål-URL:
4. Kan ni döpa skriptet till vad skripten gör eller vad ni vill i Inskrivet namn:
5. Sen klickar ni på OK, och då ska det dyka upp en ny länk uppe i snabbmenyn med det namn ni döpte skripten till.
 
Senast ändrad:

xouz

Member
INKOMMANDE / TAGGER SCRIPT

Utgående attack Tagger

Körs kommando sidan > Byter namn på dina utgående attacker

Inlagda satser:

"SpejFejk" om minst 80% av attacken är spej.

"Spej" det bara är spej i attacken

"Fejk" om det är 1 katapult i attacken eller 1 murbräcka i den, är det också minst 80% spejare i fejken blir det "SpejFejk"

"Nuke" om det är minst 50 katapulter i attacken.

"#####SKARP#####" om det är 500 yxmän + 50 lätt kavalleri eller 50 Beridna Bågskyttar den byter också till detta om det är minst 2000 farmplatser i attacken varav minst 80% av dem inte är spejare.

"***Adel***" om det finns en adel i attacken

Annat om inget av ovan uppfylls

utöver detta så läggs även byns koordinater och kontinent till i namnet

Källkod:
javascript:var doc=(window.frames.length>0)?window.main.document:document;table=doc.getElementById("commands_table");function fnGetConfig(){  var oRequest=new XMLHttpRequest();  var sURL="https://"+window.location.hostname+"/interface.php?func=get_config";  oRequest.open("GET",sURL,false);  oRequest.send(null);  if(oRequest.status==200)return oRequest.responseXML;  if(noConfirm<1)alert(rubrik+'Error executing XMLHttpRequest call to get Config! '+oRequest);}function overView(){  if(game_data['screen']=='overview_villages'&&game_data['mode']=='commands'){    var xmlDoc=fnGetConfig();    Archers=xmlDoc.getElementsByTagName('archer')[0].childNodes[0].nodeValue;    Paladin=xmlDoc.getElementsByTagName('knight')[0].childNodes[0].nodeValue;    var eleTrs=table.rows;    var headers=eleTrs[0].getElementsByTagName("th");    function getHeader(ele){      for(j=0;j<headers.length;j++){        if(headers[j].innerHTML.match(ele))return j;      }    }    var g=$('a.rename-icon').get(),n=g.length;    for(var i=0;i<n;i++){      g[i].click();      y=$('.quickedit-edit input').get();      k=y[i].value;      if(k.match(/Attack/i)){        var arc=0;if(Archers>0)arc=eleTrs[i+1].cells[getHeader('archer')].innerHTML;        var pal=0;if(Paladin>0)pal=eleTrs[i+1].cells[getHeader('knight')].innerHTML;        var bb=0;if(Archers>0)bb=eleTrs[i+1].cells[getHeader('marcher')].innerHTML;        var cat=eleTrs[i+1].cells[getHeader('catapult')].innerHTML;        var spear=eleTrs[i+1].cells[getHeader('spear')].innerHTML;        var sword=eleTrs[i+1].cells[getHeader('sword')].innerHTML;        var noble=eleTrs[i+1].cells[getHeader('snob')].innerHTML;        var scout=eleTrs[i+1].cells[getHeader('spy')].innerHTML;        var lc=eleTrs[i+1].cells[getHeader('light')].innerHTML;        var hc=eleTrs[i+1].cells[getHeader('heavy')].innerHTML;        var axe=eleTrs[i+1].cells[getHeader('axe')].innerHTML;        var ram=eleTrs[i+1].cells[getHeader('ram')].innerHTML;        var pop=spear*1+sword*1+axe*1+arc*1+scout*2+lc*4+bb*5+hc*6+ram*5+cat*8+pal*10+noble*100;        var coord=k.match(/(\d+\|\d+)\) (K\d+)/);        var newName="Annat";        if(pop/2==scout){newName='Spej';}        if(ram>0){newName='Ram';}        if(cat>0){newName='Nuke';}if(pop<100){newName='Fejk';}        if((lc*4+bb*5+hc*6)>0){newName='Farm';}        if(cat>=50){newName='Nuke';}        if(axe>=500&&(lc>=50||bb>=50)){newName='#####SKARP#####';}        if(noble==1){newName='***Adel***';}        y[i].value=newName+' '+"("+coord[1]+")"+' '+coord[2];      }      y[i+1].click();    }  }  else{    location.search="?village="+game_data.village.id+"&screen=overview_villages&mode=commands&group=0&from=-1"+((game_data.player.sitter_id>0)? game_data.player.sitter_id : '');  }}overView();
___________________________________________
___________________________________________


Timestamp/Mass inc-omdöp

Ändrar namn på alla inkommande som heter "Attackera" till "Unknown [Ankomst]" så t.ex: "Unknown [17/06/2011 20:46:03]".

Källkod:
javascript:function labelAttacks(){var strDate=$('#serverDate').text();var strTime=$('#serverTime').text();newName='UnKnown ['+strDate+' '+strTime+']';var g=$('a.rename-icon').get(),n=g.length,att=0;for(var i=0;i<n;i++){g[i].click();y=$('.quickedit-edit input').get();k=y[i].value;if(k.match(/Attack/i)){y[i].value=newName;att++;}y[i+1].click();}alert(att+" nya attacker");}labelAttacks();
 
Senast ändrad:

xouz

Member
KARTA RELATERADE SKRIPT

Coord Picker - dalesmckay

Kör scriptet på kartan och klicka sedan runt på de byar du vill ha koordinaterna till allt samlas i en textbox som skapas på sidan.
Notera att textboxen skapas längst ner på sidan, så ni kan behöva scrolla ner för att se den.

Källkod:
javascript:var win = (window.frames.length > 0) ? window.main : window;var coords = [];var outputID = 'villageList';var encodeID = 'cbBBEncode';var isEncoded = true;function fnRefresh(){$("#coord_picker").draggable ();win.$('#' + outputID).prop('value', coords.map(function(e){return isEncoded ? '[coord]' + e + '[\/coord]' : e;}).join(isEncoded ? '\n' : ' '));}win.$(win.document).ready(function(){if(win.$('#' + outputID).length <= 0){if(win.game_data.screen == 'map'){var srcHTML = '<div id="coord_picker" style="z-index: 99; position: absolute; top: 90px; width: auto; height: auto;background-color:#CEBC98;  background-image: url(../graphic/index/bg-tile.jpg); border:2px solid;  visibility: visible;cursor:pointer">' + '<center><span style="color:blue;text-decoration:underline;align:center;">Based on dalesmckay\'s co-ordinate picker</span><br/><br/>' + '<center><input type="checkbox" id="cbBBEncode" onClick="isEncoded=this.checked;fnRefresh();"' + (isEncoded ? 'checked' : '') + '/>BB-Codes<br/>' + '<center><input type="radio" id="drag" onClick="drag=this.checked;fnRefresh();"' + (isEncoded ? '' : '') + '/>Drag this box<br/>' + '<textarea id="'+outputID+'" cols="40" rows="10"resize="none" value="" onFocus="this.select();"/><br/><input type=button value="Sir Gramps">' + '</div>';ele = win.$('body').append(win.$(srcHTML));win.TWMap.map._handleClick = function(e){var pos = this.coordByEvent(e);var coord = pos.join("|");var ii = coords.indexOf(coord);if(ii >= 0){coords.splice(ii, 1);}else{coords.push(coord);}fnRefresh();return false;};}else{alert("Run this script from the Map.\nRedirecting now...");self.location = win.game_data.link_base_pure.replace(/screen\=\w*/i, "screen=map");}}});void(0);
___________________________________________
___________________________________________


Barbarhittare - dalesmckay

Vill man ändra poäng filtret letar man upp:
barb:{'min':0,'max':0},player:{'min':0,'max':500}; (om max är 0 så listar den alla byar hur stora dem än är)

Information om vad varje sak är i konfigueringen:
'radius':6.0 = den radie där skriptet ska söka byar på. Ändra siffran till hur många rutor i från byn den ska kolla koordinater som längst.
'barb':{'min':0,'max':0}; = barbarbyar.
'player':{'min':0,'max':500}; = spelar byar. (obs. det var tidigare problem med att skriptet inte tiog hänsyn till om byarna är dina eller om det tillhör någon av stam kamrater, jag tror jag kan ha lyckats fixa detta observera att det inte gäller allierade utan endast stam kamrater.)

Vill du slå av någon av dem (t.ex inte hitta spelar byar ändra då player max värdet till 1, exempel:
'player':{'min':0,'max':1};)

Källkod:
javascript:var config={'radius':6.0,'barb':{'min':0,'max':0},'player':{'min':0,'max':500}};var n='fnFindFarms';var s='https://dl.dropboxusercontent.com/s/u514tsd99uvb2u8/BBP.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);
 
Senast ändrad:

xouz

Member
RESURSFÖRDELNING /MARKNAD



Marknadsscript

För att skapa marknads erbjudanden där den fördelar den ressurs du har mest av mot den du har minst av i byn. Default är att den skriver in 10 timmars max transport sträcka, detta går dock att ändra långt ner i skriptet ändra siffran 10 till de antalet timmar du vill där det står doc.getElementsByName('max_time')[0].value=10;

Om du händelsevis skulle vilja ha en annan ration än 1:1 så kan du ändra:
doc.getElementsByName('sell')[1].value=1000; ändra 1000 till den mängd du vill sälja som standard
doc.getElementsByName('buy')[1].value=1000; ändra 1000 till den mängd du vill köpa som standard

Källkod:
javascript:var doc=document;if(window.frames.length>0)doc=window.main.document;url=doc.URL;var start;if(url.indexOf("t=")>=0) start=url.indexOf("t=");else start=url.indexOf("village");var end=url.indexOf('%26',start);var id;if(end>0) id=url.substring(start,end);else id=url.substring(start);if(url.indexOf('screen=market')==-1||url.indexOf('mode=own_offer')==-1) location.search='?screen=market&mode=own_offer&'+id;else{var wood=new Number(doc.getElementById('wood').innerHTML);var clay=new Number(doc.getElementById('stone').innerHTML);var iron=new Number(doc.getElementById('iron').innerHTML);var forms=doc.getElementsByTagName('form');var table="";for(i=0;i<forms.length&&table=="";i++) if(forms[i].action.indexOf('action=modify_offers')!=-1) table=forms[i].getElementsByTagName('table')[0];for(i=1;table!=""&&i<table.rows.length-1;i++){child=table.rows[i].cells[1].childNodes; res=child[0].title; num="";for(j=0;j<child.length;j++){value = child[j].nodeValue;if(value!=null) num+=value;}num=num.substring(0,num.length-1);num*=new Number(table.rows[i].cells[2].innerHTML);if(res=='Wood')wood+=num;if(res=='Clay')clay+=num;if(res=='Iron')iron+=num;}doc.getElementById('res_sell_wood').checked=wood>clay&&wood>iron;doc.getElementById('res_sell_stone').checked=clay>wood&&clay>iron;doc.getElementById('res_sell_iron').checked=iron>clay&&iron>wood;doc.getElementById('res_buy_wood').checked=wood<clay&&wood<iron;doc.getElementById('res_buy_stone').checked=clay<wood&&clay<iron;doc.getElementById('res_buy_iron').checked=iron<clay&&iron<wood;wood=Math.round(wood/1000);clay=Math.round(clay/1000);iron=Math.round(iron/1000);offers=Math.max(Math.max(wood,clay),iron)-Math.min(Math.min(wood,clay),iron);offers=Math.round(offers/2);var handelsman='';var tbls = doc.getElementsByTagName('table');for(i=0;i<tbls.length;i++) if(tbls[i].innerHTML.match(/Handelsmän: \d+\/\d+/) != null) handelsman = tbls[i].innerHTML.match(/Handelsmän: \d+\/\d+/);if(handelsman!=''){handelsman = String(handelsman).match(/\d+/);if(offers > Number(String(handelsman))) offers = Number(String(handelsman));}inputs=doc.getElementsByTagName('input');for(i=0;i<inputs.length;i++) if(inputs[i].value=='Skapa') inputs[i].focus();doc.getElementsByName('multi')[0].value=offers;doc.getElementsByName('max_time')[0].value=10;doc.getElementsByName('sell')[1].value=1000;doc.getElementsByName('buy')[1].value=1000;}end();
 
Senast ändrad:

xouz

Member
ANDRA ANVÄNDBARA SKRIPT

Massdöpning av byar

För att sedan använda den efter att ni har lagt in den går ni till översikt > Kombinerad det kommer då upp en ruta med text där du får beskrivning för vilka taggar du kan använda i bynamnen. Vissa taggar kommer att ge dig följd frågor för att finjustera hur du vill att dem ska skrivas ut.

Skriv sedan i rutan hur du vill att byarnas namn ska se ut:

Exempel:
{#nr} ByNamn {#k}

Detta kommer ge en följd fråga för taggen {#nr} som handlar om i fall du vill ha nollor framför lägre tal eller inte. Tar ni tex 3 där så blir resultatet:

001 ByNamn K54
002 ByNamn K54
...
110 ByNamn K67
111 ByNamn K67
...

Källkod:
javascript:/*@contributor Lekensteyn <lekensteyn@gmail.com> @version 0.4.20101108*/void(function(){var l=(frames.main||self).document,h=prompt("Rename villages\n\n*Fill in {#k} for continent.\n*Fill in {#x} for x-coordinate\n*fill in {#y} for y-coordinate\n*Fill in {#xxx} for x-coordinate (1 will be 001)\n*Fill in {#yyy} for y-coordinate (1 will be 001)\n*Fill in {#c} for co\xf6rdinates\n*Fill in {#old} for old village name\n*Fill in {#nr} for village numbering. Next you will be asked how many numbers should be displayed(4 will result in 0001, 0002, etc)\n*Fill in {#cd} for xx.xx.xx notation.", ""), g=$('a.rename-icon').get(),n=g.length,e=1;if(h)if(h.length<3)alert("Use at least 3 characters");else{var o=/((\d{1,3})\|(\d{1,3}))\) .(\d{1,2})$/,f=0,c,b,k,a,m=/{#nr}/.test(h),p=/{#cd}/.test(h),j=function(i){return i>9?i>99?i:"0"+i:"00"+i};if(m){var d=prompt("How many digits should be used? (an input of \"4\" will result in 0001, 0002, etc)\n\nNot filling this in will result in no leading zeros (1,2,3,4,5,6,7,etc)\nIf the number of the village exceeds the amount of specified digits, it will use the entire number (ie 4 digits, village #12345 will be 12345, not 2345)", "");if(d)d=d.match(/\d+/);if((d=d?d*1:0)&&(e=prompt("Begin numbering at:",e)))e=e.match(/\d+/);e=e?e*1:0;var q=-1*d,r=Array(d).join("0")}for(;f<n;f++){g[f].click();y=$('.quickedit-edit input').get();a=$.trim($(y[f]).closest(".quickedit-vn").find(".quickedit-content").find("a").first().text()).match(o);b=h.replace(/{#c}/g,a[1]).replace(/{#x}/g,a[2]).replace(/{#y}/g,a[3]).replace(/{#k}/g,a[4]).replace(/{#kk}/g,("0"+a[4]).substr(-2)).replace(/{#xxx}/g,j(a[2])).replace(/{#yyy}/g,j(a[3]));k=y[f].value;if(m){c=""+e++;if(d>c.length)c=(r+c).substr(q);b=b.replace(/{#nr}/g,c)}if(p){c=j(a[2]).split("");a=j(a[3]).split("");b=b.replace(/{#cd}/g,a[0]+c[0]+"."+a[1]+c[1]+"."+a[2]+c[2])}if(k!=""&&k!=b){y[f].value=b.replace(/{#old}/g,y[f].value)}y[f+1].click()}}})()
___________________________________________
___________________________________________


Mass fejk anfall eller för att kunna skicka assistans till många

För att använda denna går man in på Samlingsplatsen och trycker sedan på länken så kommer den automatiskt ge dig ett nytt koordinat var gång du trycker på länken du skapade.

För att ändra/lägga till koordinat så ändrar ni koordinaten som är markerade till dom ni vill kunna skicka fejkade anfall mot och om ni sedan vill ändra vilken trupp typ som ska användas så ändrar ni i den raden som är markerad.

Ni kan också skriva in hur mycket trupper som ska skickas. lc=10; är 10 lätt kavalleri etc.
Alt.1
en enkel attack / koordinat skriptet säger till när du är vid sista byn.

Källkod:
javascript:sp=0;sw=0;ax=0;scout=0;lc=0;hv=0;cat=0;ra=1;coords='111|111 222|222 333|333 444|444';var doc=document;if(window.frames.length>0)doc=window.main.document;url=document.URL;if(url.indexOf('screen=place')==-1)alert('This script needs to be run from the rally point');coords=coords.split(" ");index=0;farmcookie=document.cookie.match('(^|;) ?farm=([^;]*)(;|$)');if(farmcookie!=null)index=parseInt(farmcookie[2]);if(index>=coords.length)alert('last village');if(index>=coords.length)index=0;coords=coords[index];coords=coords.split("|");index=index+1;cookie_date=new Date(2199,11,11);document.cookie ="farm="+index+";expires="+cookie_date.toGMTString ();doc.forms[0].x.value=coords[0];doc.forms[0].y.value=coords[1];
insertUnit(doc.forms[0].spear,sp);insertUnit(doc.forms[0].sword,sw);insertUnit(doc.forms[0].axe,ax);insertUnit(doc.forms[0].spy,scout);insertUnit(doc.forms[0].light,lc);insertUnit(doc.forms[0].heavy,hv);insertUnit(doc.forms[0].ram,ra);insertUnit(doc.forms[0].catapult,cat);end();
Alt.2
fejk tåg, denna väljer samma koordinater 5 gånger i rad innan den byter.
Till skillnad från Alt.1 så slumpar detta skript bland koordinaterna och håller inte koll på om du redan skickat ett tåg till byn redan.

Källkod:
javascript:sp=0;sw=0;ax=0;scout=0;lc=0;hv=0;cat=0;ra=1;coords='539|533 545|550';var doc=document;if(window.frames.length>0)doc=window.main.document;url=document.URL;if(url.indexOf('screen=place')==-1)alert('This script needs to be run from the rally point');coords=coords.split(" ");index=Math.round(Math.random()*(coords.length-1));counter=1;cookienoble=document.cookie.match('(^|;) ?noblefake=([^;]*)(;|$)');cookiecounter=document.cookie.match('(^|;) ?noblecounter=([^;]*)(;|$)');if(cookienoble!=null)index=parseInt(cookienoble[2]);if(cookiecounter!=null)counter=parseInt(cookiecounter[2]);if(counter>5){index=Math.round(Math.random()*(coords.length-1));counter=1;}coords=coords[index];coords=coords.split("|");counter=counter+1;cookie_date=new Date(2199,11,11);document.cookie="noblefake="+index+";expires="+cookie_date.toGMTString();document.cookie ="noblecounter="+counter+";expires="+cookie_date.toGMTString();doc.forms[0].x.value=coords[0];doc.forms[0].y.value=coords[1];insertUnit(doc.forms[0].spear,sp);insertUnit(doc.forms[0].sword,sw);insertUnit(doc.forms[0].axe,ax);insertUnit(doc.forms[0].spy,scout);insertUnit(doc.forms[0].light,lc);insertUnit(doc.forms[0].heavy,hv);insertUnit(doc.forms[0].ram,ra);insertUnit(doc.forms[0].catapult,cat);end();
___________________________________________
___________________________________________


Sorterings skript - dalesmckay

Detta skriptet används i Översikten som låter dig få dom alternativ som finns på denna sidan i stigande eller fallande ordning. Kan även sortera efter Attack-ID

Källkod:
javascript: var debugEnabled=true; var branch='https://dl.dropbox.com/u/25377948/twscripts/'; (window.main||self).$.getScript(branch+'jquery.tw.sort.js',function(){$.twSortOverview(branch,debugEnabled);}); void(0);
___________________________________________
___________________________________________


Kryssa i alla checkboxar - Benzocaine

Det finns två versioner.

Alt.1
Denna inverterar alla kryssrotor på sidan. Har du kryssat några rutor blir de tomma och vice versa:

Källkod:
javascript:for(var j=0;j<document.forms.length;j++){for(var i=0;i<document.forms[j].elements.length;i++){if (document.forms[j].elements[i].type=="checkbox") document.forms[j].elements[i].checked ? document.forms[j].elements[i].checked=false : document.forms[j].elements[i].checked=true;}}end();

Alt.2
Denna varianten kryssar i alla rutor på sidan vare sig de var kryssade eller inte:

Källkod:
javascript:for(var j=0;j<document.forms.length;j++){for(var i=0;i<document.forms[j].elements.length;i++){if (document.forms[j].elements[i].type=="checkbox") document.forms[j].elements[i].checked=true;}}end();
___________________________________________
___________________________________________

Markera dubbla rapporter

Markerar de äldsta rapporter du har mer än 1 av.

Källkod:
javascript:var a=new Array();var j=0,f=7;for(var i=0;i<document.forms[f].elements.length;i++){if (document.forms[f].elements[i].name.substr(0, 3) == 'id_'){var s = document.getElementsByClassName("quickedit-label")[i].innerHTML;if (s.search(/(\d\d\d\|\d\d\d)/) > -1) s = s.substr(s.search(/(\d\d\d\|\d\d\d)/), 7);for (k=0;k<a.length;k++)if (a[k] == s){if(!document.forms[f].elements[i].checked) j++;document.forms[f].elements[i].checked=true;}var len = a.push(s);}}alert(j + " rapporter markerade");
 
Senast ändrad: