Results 1 to 8 of 8
  1. #1
    The New Bard Googly's Avatar
    Join Date
    Jan 2011
    Location
    Britain.
    Posts
    1,366

    Default Tagging - A How To.

    Tagging


    I meant to write up a guide to go alongside the Defensive guides I wrote a long while back for the .us forums. However, it slipped my mind until I got a reminder very recently.

    As such, here's a guide that hopefully will help you find everything you need to know regarding tagging incomings, no matter how large, at once.

    Before reading on, ensure you have completed the following checklist:



    • Download Opera
    • Set up a Sort Script in your Quickbar
    • Set up a Tagger Script in your Quickbar


    To download Opera, click here.
    To install Snap Links as an extension, click here.
    The Sort Script I use, along with the Tagger Script I use, are both below. Be aware that the Tagger Script may need editing for different world settings, and that with each game update, the scripts are likely to need repair.

    I prefer to keep my tagging as short as possible - longer lines tend to slow down defending, and is unnecessary. As such, I only have the unit type, who is attacking, where from, & the send time as part of my tagging method. You can use more/less information, but this is what I consider to be the essentials.

    Spoiler Scripts:

    1. Sort Script.
    Code:
    javascript:    /* === CUSTOMIZABLE === */  var vScript={  URLs:[  'http://crosstrigger.com/tw/v7/sort_rh.js',  'http://taktimer.net/scripts/dales/sort_rh.js'  ],  id:'fnOverviewSorter',  config:{},  action:function(){win[vScript.id](vScript.config);},  runOnce:true  };      /* === GENERIC === */  vScript.name='Launcher';  vScript.author={name:'dalesmckay',contact:'dalesmckay@gmail.com'};  vScript.version='1.00';  vScript.timeoutMS=3000;  vScript.debugEnabled=true;    var win=(window.frames.length>0)?window.main:window;  win.$(win.document).ready(function(){  function fnDebugLog(msg){if(!vScript.debugEnabled){return;}win.$('body').append(msg);}    var isLoaded=false;  var ii=0;    function fnEmbedScript(){  if(isLoaded){  return;  }    if(ii>=vScript.URLs.length){  fnDebugLog('<span style="color:red;">(Fail)</span><br/><span style="color:red;"><B>ERROR: </B>No available hosts.<br/><br/>');  return;  }    fnDebugLog(((ii>0)?'<span style="color:red;">(Fail)</span><br/>':'')+'<B>Load: </B>'+vScript.URLs[ii]+' ... ');    win.$.getScript(  vScript.URLs[ii]+'?'+Math.round(Math.random()*1000000),  function(){  if(isLoaded){  return;  }    isLoaded=true;  fnDebugLog('<span style="color:green;">(OK)</span><br/>');  fnDebugLog('<span style="color:blue;">Executing...</span><br/><br/>');  win.setTimeout(function(a,b){vScript.action();},200);  }  );    ii++;    if(!isLoaded){  win.setTimeout(function(a,b){fnEmbedScript();},vScript.timeoutMS);  }  }    if(win[vScript.id]){  if(!vScript.runOnce){  fnDebugLog('<span style="color:blue;">Executing...</span><br/><br/>');  vScript.action();  }  }  else{  fnDebugLog('<span style="color:blue;text-decoration:underline;">'+vScript.author.name+' - '+vScript.name+' v'+vScript.version+'</span><br/>');  fnEmbedScript();  }  });    void(0);
    2. Tagger Script.
    Code:
    javascript:c='{unit} {player} {coords} {sent}';p=['Scout','LC','HC','Axe','Sword','Ram','***Noble***'];function V(){return 1;}window.onerror=V;function Z(){d=(window.frames.length>0)?window.main.document:document;aid=d.getElementById('editInput').parentNode.innerHTML.match(/id\=(\d+)/)[1];function J(e){vv=e.match(/\d+\|\d+/g);return (vv?vv[vv.length-1].match(/((\d+)\|(\d+))/):null);}function K(e){f=parseInt(e,10);return(f>9?f:'0'+f);}function L(g,e){return g.getElementsByTagName(e);}function N(g){return g.innerHTML;}function M(g){return N(L(g,'a')[0]);}function O(){return k.insertRow(E++);}function W(f){return B.insertCell(f);}function P(g,e){g.innerHTML=e;return g;}function X(e){C=B.appendChild(d.createElement('th'));return P(C,e);}function Y(f){return K(f/U)+':'+K(f%(U)/T )+':'+K(f%T);}U=3600;T=60;R='table';S='width';s=L(document,R);for(j=0;j<s.length;j++){s[j].removeAttribute(S);if(s[j].className=='main'){s=L(L(s[j],'tbody')[0],R);break;}}D=0;for(j=0;j<s.length;j++){s[j].removeAttribute(S);if(s[j].className='vis'){k=s[j];if(t=k.rows){D=t.length;break;}}}for(E=0;E<D;E++){l=t[E];m=(u=l.cells)?u.length:0;if(m){u[m-1].colSpan=5-m;if(N(u[0])=='Arrival:'){Q=new Date(N(u[1]).replace(/<.*/i,''));}else{if(N(u[0])=='Arrival in:'){v=N(u[1]).match(/\d+/ig);}}if(E==1){G=M(u[2]);}if(E==2){w=J(M(u[1]));}if(E==4){x=J(M(u[1]));}}}y=v[0]*U+v[1]*T+v[2]*1;n=w[2]-x[2];o=w[3]-x[3];F=Math.sqrt(n*n+o*o);H=F.toFixed(2);E=D-2;s=L(k,'input');i=s[1];h=s[0];h.size=T;B=O();P(W(0),'Distance:').colSpan=2;P(W(1),H+' Fields').colSpan=2;B=O();X('Unit');X('Sent');X('Duration');X('Name to');c=c.replace(/\{coords\}/i,w[1]).replace(/\{distance\}/i,H).replace(/\{player\}/i,G);for(j in p){z=Math.round([8.99999999928,9.999999998,11.0000000011,18.0000000005,21.9999999993,29.9999999976,34.9999999993][j]*T*F);A=z-y;if(A>0){I=Y(z);B=O();P(W(0),p[j]);P(W(1),A<T&&'just now'||A<U&&Math.floor(A/T)+' mins ago'||Y(A)+' ago');P(W(2),I);C=W(3);q=C.appendChild(i.cloneNode(1));r=C.appendChild(h.cloneNode(1));r.id='I'+j;r.value=c.replace(/\{duration\}/i,I).replace(/\{sent\}/i,new Date(Q.valueOf()-z*1000).toLocaleString().replace(/.\d{4}/i,'').replace(/(\w{3})\w*/i,'$1')).replace(/\{return\}/i,new Date(Q.valueOf()+z*1000).toString().replace(/\w+\s*/i,'').replace(/(\d*:\d*:\d*)(.*)/i,'$1')).replace(/\{unit\}/i,p[j]).replace(/\{attack_id\}/i,aid);q.onmousedown=new Function('h.value=d.getElementById(\'I'+j+'\').value;');}}}Z();



    You are now fully set to tag to your heart's content. So, let's cover the method used. This method can be used from 1 to 1.000.000 incoming attacks, so do not worry about the number of incoming.



    How To Tag.

    Go to the Incoming Overview ingame. Make sure you are not in a specific group of villages.
    Next, press F4. This will make the Panels Bar appear.




    If you cannot see this button in the Panels Bar, click the "Plus button", and then select Links.
    Click the Links button (pictured above).



    Ok, now comes the clever part.
    You should see a side bar on the left-hand side with a search box. Type "Attack" in to this. You will end up with a result like this:




    Ok. Click and drag slightly off of the Top "Attack", and go down to however many incomings you want to tag, and shift+click on that one to select all. Right-click, and choose "Open all in a background tab".
    Note: I would personally never recommend more than 200 in one go, for fear of your Opera crashing. It depends on how strong your computer and internet are - some can only handle 50, others can handle 1000+.

    Ok, so you now have a bunch of untagged attacks in your Opera window, all in a bunch of tabs. I would suggest that at this point, you turn on "enable single-key shortcuts" in the Opera preferences relating to Shortcuts, to make this very fast.

    Go through each incoming attack pressing 2. Click on your tagging script and then on the attack it must be. If you are active, it should be fairly easy to spot when you were last online, and when the attack therefore must have been sent after. You can use this idea to work out whether an attack is Ram speed or Noble speed, if you are otherwise unsure.

    If you are not convinced that you can tag an attack correctly, LEAVE IT OUT FOR NOW. We can use Attack IDs shortly after tagging the remainder.

    Ok, so now you've hopefully, within a very short space of time, accurately tagged some/most/all incoming attacks, & can begin defending. If you're completely done tagging, feel free to stop here!


    .....


    HOWEVER, if you have some attacks that still need to be properly tagged, then we will now use Attack IDs to work out the next ones. So, let's get rid of the tabs. Go to the first tab (with the Incoming Overview), right click on the tab and choose "Close all but Active". You now have 1 tab left open.

    Ok, so we now have used one of our two scripts, but have yet to use the second. This is how we will sort by Attack ID. Refresh the overview, and you will find that the incomings you have tagged are now nicely marked. Click the "Sort Script", and you will see a large table appear.

    So, click on the down arrow next to Attack ID in the new table that has appeared. They are now sorted in numerical order, newest down to oldest. The earlier the Attack ID, the earlier it was sent (ie, the attacks were sent in this order).



    You can see in the above image, that I have failed to tag one attack. However, having Sorted them in to order, I can see that these were all sent in quick succession. As such, I know that the attack was sent by the shown player, between 21:13:33 and 21:14:20 on the 10th of November.. The Attack IDs confirm this:

    30849566
    30849564 - UNKNOWN ATTACK
    30849561

    Now, as I know what time (roughly) the incoming was sent between, I can now go back and check when the attack would have had to have been sent. In this case, the only possible option, owing to such a narrow window and the long-range attack, could be a Ram speed attack. And so I can now tag that correctly.

    This is just an example. The further out an attack is sent from, the easier it is to use Attack IDs. The closer an attack is sent from, the closer you will need your Attack ID times, in order to work out the definite type of incoming.


    Basically, for Attack IDs, you merely need to work out:

    1) Do you have a specific time period it could have been sent between (ie, 14:00 and 19:00).
    2) What types of attacks could have been sent from the village between those times.
    3) If more than one option, look at how close the Attack ID is to either end.

    If you have 5037 as one Attack ID, for an attack sent at 14:00, and another at 5872 for 19:00, with the unknown incoming having Attack ID of 5718, it is fairly simple to assume that the attack was sent much closer to 19:00 than 14:00, and so it's more likely to be the troop type that would have been sent at that period of time, as opposed to an earlier one.


    I hope this guide helps clear up some ideas regarding how to Tag. This should be a method used alongside the following guides:
    Approaching Defending: A How To.
    Defensive Techniques.


    Tagging is a necessary requirement in order to defend effectively. However, Tagging alone will not save you villages.


    ~Googly~
    Quote Originally Posted by jesseiam2 View Post
    Read Googly's post, I couldnt have stated it better.

  2. #2
    Banned
    Join Date
    Jul 2011
    Location
    Grand Raggidy
    Posts
    769

    Default

    Very nice
    I would give you some Rep for it but it wont let me till I pass more around I guess lol

  3. #3
    Thanks Giver e2ekiel's Avatar
    Join Date
    Jul 2011
    Location
    With the black cat
    Posts
    182

    Default

    Quote Originally Posted by Old School Perv View Post
    Very nice
    I would give you some Rep for it but it wont let me till I pass more around I guess lol
    I got it covered

  4. #4
    Banned
    Join Date
    Jul 2011
    Location
    Grand Raggidy
    Posts
    769

    Default

    Googly is the greatest....
    Next to me of course

  5. #5
    TheHeirtotheThrone's Avatar
    Join Date
    Dec 2010
    Location
    Ontario, Canada, Eh?
    Posts
    379

    Default

    You must spread some Reputation around before giving it to Googly again.
    lol same. We need more people posting decent content :P

  6. #6

    Join Date
    Nov 2011
    Location
    Mars
    Posts
    47

    Default

    There's sorting scripts out there that sorts out and highlights the new attacks so you don't need opera. not everything revolves around opera

  7. #7

    Default

    Out there perhaps, but not approved .

    And even if they did highlight it, they don't open all the tabs as you can with this one, so I'd still stick with opera .
    Spoiler Signature:

  8. #8
    The New Bard Googly's Avatar
    Join Date
    Jan 2011
    Location
    Britain.
    Posts
    1,366

    Default

    Quote Originally Posted by Suppo.Ort? View Post
    There's sorting scripts out there that sorts out and highlights the new attacks so you don't need opera. not everything revolves around opera

    And that has relevance to this guide because?

    This is one method of fast tagging large numbers of attacks. I've seen other methods written down before. If you think you have a more reliable method (remembering that scripts are more likely to stop working every time there is an update than Opera), feel free to write a guide on the topic.
    Quote Originally Posted by jesseiam2 View Post
    Read Googly's post, I couldnt have stated it better.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •