• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

Truppenzähler für Truppen die im Bau sind

DeletedUser

Gast
danke, hab ich grad eben auch herausgefunden ^^

für alle die das ganze auch als GM haben wollen:

Code:
// ==UserScript==
// @name Rekzaehler
// @author         blackmole
// @namespace none
// @include        http://de*.die-staemme.de/game.php*screen=train*
// ==/UserScript==

(function(){var trans={'training':'Ausbildung'};var units={'Speerträger':'spear','Schwertkämpfer':'sword','Axtkämpfer':'axe', 'Bogenschütze':'archer', 'Bogenschützen':'archer','Späher':'spy','Leichte Kavallerie':'light','Berittener Bogenschütze':'marcher','Berittene Bogenschützen':'marcher','Schwere Kavallerie':'heavy','Rammbock':'ram','Ramböcke':'ram','Katapult':'catapult','Katapulte':'catapult'};function get_element_childs(node){var element_childs=[];for(var i=0,len=node.childNodes.length;i<len;++i){if(node.childNodes[i].nodeType==1){element_childs.push(node.childNodes[i]);}}return element_childs;}function check_train(){var url=location.href+'';if(url.search(/screen=train/)==-1){return false;}return true;}function find_tbodies(){var tbodies=[];var ths=document.getElementsByTagName('th');for(var i=0,len=ths.length;i<len;++i){if(ths[i].firstChild.nodeValue==trans['training']){tbodies.push(ths[i].parentNode.parentNode);}}return tbodies;}function generate_unit_prod_dom(unit_prod){var table=document.createElement('table');var heading_row=document.createElement('tr');var unit_row=document.createElement('tr');table.appendChild(heading_row);table.appendChild(unit_row);for(var unit in unit_prod){var th=document.createElement('th');var img=document.createElement('img');img.setAttribute('src','graphic/unit/unit_'+unit+'.png');th.appendChild(img);heading_row.appendChild(th);var td=document.createElement('td');var text=document.createTextNode(unit_prod[unit]);td.appendChild(text);unit_row.appendChild(td);}return table;}function build_unit_regexp(){var unit_regexp='(\\d+)\\s';var tmp=[];for(unit in units){tmp.push(unit);}return new RegExp(unit_regexp+'('+tmp.join('|')+')')}if(!check_train()){location.href='game.php?screen=train';return;}var unit_regexp=build_unit_regexp();var unit_prod={};var tbodies=find_tbodies();var unit_prod={};for(var tbi=0;tbi<tbodies.length;++tbi){var rows=get_element_childs(tbodies[tbi]);for(var rowsi=1;rowsi<rows.length;++rowsi){var matches=unit_regexp.exec(get_element_childs(rows[rowsi])[0].firstChild.nodeValue);if(matches!==null){var unit_name=units[matches[2]];if(typeof(unit_prod[unit_name])=='undefined'){unit_prod[unit_name]=0;}unit_prod[unit_name]+=parseInt(matches[1],10);}}}tbodies[0].parentNode.parentNode.insertBefore(generate_unit_prod_dom(unit_prod),tbodies[0].parentNode);})();

@blackmole: hoffe das ist ok für dich.

funktioniert nur, wenn man den rek screen direkt anwält, mit dorfwechelpfeilen zwischen den rekübersichten zu wecheln bringt keine anzeige.

gestestet mit ff2 ^^

-edit by blackmole-
Ich war mal so frei das so anzupassen, dass es auch mit Dorfpfeilen geht ;-)
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
zum userscript:
also mit opera 9.5 gehts auf 21 und 26, bei 21 auch bei uvs ;)

was mich noch interessieren würde ob man alle einheiten, also die in der bauschleife und die schon vorhandenen damit anzeigen kann...
und ob man die auch im truppenplatz irgendwie reinbaun könnte (ich weiss das wird leicht schwierig denn woher nehmen wir die truppen aus der bauschleife ;))

@blackmole
jetzt bräucht ich auch das script nich mehr ;)
trotzdem danke!


edit:
@blackmole
mit den veränderungen der umlaute funktioniert es bei mir nich mehr, aber mit den "normalen" umlauten klappts prima ;)
 
Zuletzt bearbeitet von einem Moderator:

aciclovir2

Gast
@sunrune:

wie muss ich da die datei nennen damit sie automatisch erkannt wird??
 

DeletedUser

Gast
danke für das tolle skript!
wie muss man das machen das es für alle truppen geht?
 

DeletedUser

Gast
ich denke aber das er sich auf das "neue" userscript bezieht... und das funktionierte bei mir auch nur für einige wenige truppen, bis ich fröhlich freundlich die umlaute entfernt hatte...
 

DeletedUser

Gast
Auf die Umlaute hab ich jetzt nicht geachtet. Ich hab beim GM-Skript nur das @include geändert. Ich werde vielleicht wenn ich Lust habe, nochmal im Userscripte-Forum ein Thema aufmachen mit den funktionsfähigen Skripten.

-edit-
Siehe http://forum.die-staemme.de/showthread.php?p=1180434
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser58513

Gast
Hallo!
hört sich prima an! Aber gibt es das auch für dumme, die sich mit skripten nicht auskennen und nicht wissen, was sie nun eigentlich machen müssen?

greeasemonkey habe ich. PA auch. wie man eine schnellstsartleiste anlegt weiß ich auch. aber das wars dann.

wo und wie muss ich das skript eintragen, damit es funktioniert?

danke vorab diphda
 

DeletedUser60972

Gast
Hallo!
hört sich prima an! Aber gibt es das auch für dumme, die sich mit skripten nicht auskennen und nicht wissen, was sie nun eigentlich machen müssen?

greeasemonkey habe ich. PA auch. wie man eine schnellstsartleiste anlegt weiß ich auch. aber das wars dann.

wo und wie muss ich das skript eintragen, damit es funktioniert?

danke vorab diphda

Also im Thread http://forum.die-staemme.de/showthread.php?p=1180434 sind Die Scripte.

Wo steht "Als Script für die Schnellleiste", das musst du bei der Ziel-URL bei der Schnellleiste einfügen. Das Script des 2. Posts (Skript 2: Zusammenzählen in der Rekrutierungsübersicht) kannst du entweder wieder in die Schnellleiste packen, oder wenn du es dauerhaft haben willst, musst du die unkomprimierte Version (die mit den Zeilenumbrüchen) in eine Textdatei kopieren und diese dann als *.user.js speichern, also zB rekrutierungszaehler.user.js und diese dann mit dem Firefox öffnen, wo dann ein installationsfenster kommt, wo man es installieren kann.
 

DeletedUser58513

Gast
prima, danke. ich wollte gerade schreiben, dass ich es schon geschafft habe.

vielen dank für deine schnelle antwort und deine mühe!!

diphda
 

DeletedUser67518

Gast
Code:
(function() {
  var check_group = false;
  var trans = {
    'village': 'Dorf',
    'group_all': ' >alle< '
  };

  function get_element_childs(node) {
    var element_childs = [];
    for(var i = 0, len = node.childNodes.length; i < len; ++i) {
      if (node.childNodes[i].nodeType == 1) {
        element_childs.push(node.childNodes[i]);
      }
    }
    return element_childs;
  }

  function check_overview() {
    var url = location.href + '';
    if (url.search(/screen=overview_villages&mode=prod/) == -1) {
      return false;
    }

    if (!check_group) {
      return true;
    }
    
    var strongs = document.getElementsByTagName('strong');
    for (var i = 0, len = strongs.length; i < len; ++i) {
      if (strongs[i].firstChild.nodeValue == trans['group_all']) {
        return true;
      }
    }
    
    return false;
  }
  
  function find_tbody() {
    var ths = document.getElementsByTagName('th');
    for (var i = 0, len = ths.length; i < len; ++i) {
      if (ths[i].firstChild.nodeValue == 'Dorf') {
        return ths[i].parentNode.parentNode;
      }
    }
  }

  function generate_unit_prod_dom(unit_prod) {
    var table = document.createElement('table');
    var heading_row = document.createElement('tr');
    var unit_row = document.createElement('tr');
    table.appendChild(heading_row);
    table.appendChild(unit_row);
    for (var unit in unit_prod) {
      var th = document.createElement('th');
      var img = document.createElement('img');
      img.setAttribute('src', 'graphic/unit/unit_' + unit + '.png');
      th.appendChild(img);
      heading_row.appendChild(th);

      var td = document.createElement('td');
      var text = document.createTextNode(unit_prod[unit]);
      td.appendChild(text);
      unit_row.appendChild(td);
    }

    return table;
  }

  if (!check_overview()) {
    if (check_group) {
      location.href = 'game.php?screen=overview_villages&mode=prod&group=0';
    } else {
      location.href = 'game.php?screen=overview_villages&mode=prod';
    }
    return;
  }
  
  var unit_prod = {};
  var tbody = find_tbody();
  var rows = get_element_childs(tbody);
  for (var i = 1, len = rows.length; i < len; i++) {
    var images = get_element_childs(get_element_childs(rows[i])[7]);
    for (var j = 0, lenj = images.length; j < lenj; ++j) {
      var img = images[j];
      var matches = /unit_(\w+)\.png/.exec(img.getAttribute('src'));
      var cnt = img.getAttribute('title').split('-');
      var unit_name = matches[1];
      if (typeof(unit_prod[unit_name]) == 'undefined') {
        unit_prod[unit_name] = 0;
      }
      unit_prod[unit_name] += parseInt(cnt[0], 10);
    }
  }
  
  tbody.parentNode.parentNode.insertBefore(generate_unit_prod_dom(unit_prod), tbody.parentNode);
})();
Bitteschön! Zu der Variable check_group: Wenn false, dann zählt er abhängig von der ausgewählten Gruppe. Sollte es auf true sein, so wird die auf die Gruppe auf "alle" gesetzt um alle die Produktion in allen Dörfern zu zählen. Das Script zählt auf der Produktionsseite, sollte diese nicht angewählt sein, wählt das Script sie an, danach muss es jedoch erneut gestartet werden. Gleiches gilt, falls check_group auf true ist und nicht "alle" ausgewählt ist.

Und nun nochmal das Script komprimiert direkt zum Einfügen in die Schnellleiste:
Code:
javascript:(function(){var check_group=false;var trans={'village':'Dorf','group_all':' >alle< '};function get_element_childs(node){var element_childs=[];for(var i=0,len=node.childNodes.length;i<len;++i){if(node.childNodes[i].nodeType==1){element_childs.push(node.childNodes[i]);}}return element_childs;}function check_overview(){var url=location.href+'';if(url.search(/screen=overview_villages&mode=prod/)==-1){return false;}if(!check_group){return true;}var strongs=document.getElementsByTagName('strong');for(var i=0,len=strongs.length;i<len;++i){if(strongs[i].firstChild.nodeValue==trans['group_all']){return true;}}return false;}function find_tbody(){var ths=document.getElementsByTagName('th');for(var i=0,len=ths.length;i<len;++i){if(ths[i].firstChild.nodeValue=='Dorf'){return ths[i].parentNode.parentNode;}}}function generate_unit_prod_dom(unit_prod){var table=document.createElement('table');var heading_row=document.createElement('tr');var unit_row=document.createElement('tr');table.appendChild(heading_row);table.appendChild(unit_row);for(var unit in unit_prod){var th=document.createElement('th');var img=document.createElement('img');img.setAttribute('src','graphic/unit/unit_'+unit+'.png');th.appendChild(img);heading_row.appendChild(th);var td=document.createElement('td');var text=document.createTextNode(unit_prod[unit]);td.appendChild(text);unit_row.appendChild(td);}return table;}if(!check_overview()){if(check_group){location.href='game.php?screen=overview_villages&mode=prod&group=0';}else{location.href='game.php?screen=overview_villages&mode=prod';}return;}var unit_prod={};var tbody=find_tbody();var rows=get_element_childs(tbody);for(var i=1,len=rows.length;i<len;i++){var images=get_element_childs(get_element_childs(rows[i])[7]);for(var j=0,lenj=images.length;j<lenj;++j){var img=images[j];var matches=/unit_(\w+)\.png/.exec(img.getAttribute('src'));var cnt=img.getAttribute('title').split('-');var unit_name=matches[1];if(typeof(unit_prod[unit_name])=='undefined'){unit_prod[unit_name]=0;}unit_prod[unit_name]+=parseInt(cnt[0],10);}}tbody.parentNode.parentNode.insertBefore(generate_unit_prod_dom(unit_prod),tbody.parentNode);})();

-edit-
Dieses Skript stelle ich privat zur Verfügung, daher kein offizieller Support seitens InnoGames.



das funkt bei mir mal garnicht wen ich auf karte oder stamm oder rekrutieren oder sonst wo drauf klicke lädt er das und dan werde ich auf produktion weitergeleitet


Außerdem ist mein Opera abgegangen :p und hat nur noch faxen gemacht wie seiten nicht mehr aufrufen ... die-stamme sitzung abgelaufen jede 3 sec aktualisieren ^^ u.s.w o_O

Seitdem ich es wieder raus habe funkt wieder alles

MfG
 

DeletedUser

Gast
um den thread noch mal auszugraben:

im grund egenommen ist es ja eine massenrekrutierung (jedenfalls bei mir über opera) also es is nur was für faule:)

trotzdem gut;-)
 

DeletedUser

Gast
Code:
(function() {
  var check_group = false;
  var trans = {
    'village': 'Dorf',
    'group_all': ' >alle< '
  };

  function get_element_childs(node) {
    var element_childs = [];
    for(var i = 0, len = node.childNodes.length; i < len; ++i) {
      if (node.childNodes[i].nodeType == 1) {
        element_childs.push(node.childNodes[i]);
      }
    }
    return element_childs;
  }

  function check_overview() {
    var url = location.href + '';
    if (url.search(/screen=overview_villages&mode=prod/) == -1) {
      return false;
    }

    if (!check_group) {
      return true;
    }
    
    var strongs = document.getElementsByTagName('strong');
    for (var i = 0, len = strongs.length; i < len; ++i) {
      if (strongs[i].firstChild.nodeValue == trans['group_all']) {
        return true;
      }
    }
    
    return false;
  }
  
  function find_tbody() {
    var ths = document.getElementsByTagName('th');
    for (var i = 0, len = ths.length; i < len; ++i) {
      if (ths[i].firstChild.nodeValue == 'Dorf') {
        return ths[i].parentNode.parentNode;
      }
    }
  }

  function generate_unit_prod_dom(unit_prod) {
    var table = document.createElement('table');
    var heading_row = document.createElement('tr');
    var unit_row = document.createElement('tr');
    table.appendChild(heading_row);
    table.appendChild(unit_row);
    for (var unit in unit_prod) {
      var th = document.createElement('th');
      var img = document.createElement('img');
      img.setAttribute('src', 'graphic/unit/unit_' + unit + '.png');
      th.appendChild(img);
      heading_row.appendChild(th);

      var td = document.createElement('td');
      var text = document.createTextNode(unit_prod[unit]);
      td.appendChild(text);
      unit_row.appendChild(td);
    }

    return table;
  }

  if (!check_overview()) {
    if (check_group) {
      location.href = 'game.php?screen=overview_villages&mode=prod&group=0';
    } else {
      location.href = 'game.php?screen=overview_villages&mode=prod';
    }
    return;
  }
  
  var unit_prod = {};
  var tbody = find_tbody();
  var rows = get_element_childs(tbody);
  for (var i = 1, len = rows.length; i < len; i++) {
    var images = get_element_childs(get_element_childs(rows[i])[7]);
    for (var j = 0, lenj = images.length; j < lenj; ++j) {
      var img = images[j];
      var matches = /unit_(\w+)\.png/.exec(img.getAttribute('src'));
      var cnt = img.getAttribute('title').split('-');
      var unit_name = matches[1];
      if (typeof(unit_prod[unit_name]) == 'undefined') {
        unit_prod[unit_name] = 0;
      }
      unit_prod[unit_name] += parseInt(cnt[0], 10);
    }
  }
  
  tbody.parentNode.parentNode.insertBefore(generate_unit_prod_dom(unit_prod), tbody.parentNode);
})();
Bitteschön! Zu der Variable check_group: Wenn false, dann zählt er abhängig von der ausgewählten Gruppe. Sollte es auf true sein, so wird die auf die Gruppe auf "alle" gesetzt um alle die Produktion in allen Dörfern zu zählen. Das Script zählt auf der Produktionsseite, sollte diese nicht angewählt sein, wählt das Script sie an, danach muss es jedoch erneut gestartet werden. Gleiches gilt, falls check_group auf true ist und nicht "alle" ausgewählt ist.

Und nun nochmal das Script komprimiert direkt zum Einfügen in die Schnellleiste:
Code:
javascript:(function(){var check_group=false;var trans={'village':'Dorf','group_all':' >alle< '};function get_element_childs(node){var element_childs=[];for(var i=0,len=node.childNodes.length;i<len;++i){if(node.childNodes[i].nodeType==1){element_childs.push(node.childNodes[i]);}}return element_childs;}function check_overview(){var url=location.href+'';if(url.search(/screen=overview_villages&mode=prod/)==-1){return false;}if(!check_group){return true;}var strongs=document.getElementsByTagName('strong');for(var i=0,len=strongs.length;i<len;++i){if(strongs[i].firstChild.nodeValue==trans['group_all']){return true;}}return false;}function find_tbody(){var ths=document.getElementsByTagName('th');for(var i=0,len=ths.length;i<len;++i){if(ths[i].firstChild.nodeValue=='Dorf'){return ths[i].parentNode.parentNode;}}}function generate_unit_prod_dom(unit_prod){var table=document.createElement('table');var heading_row=document.createElement('tr');var unit_row=document.createElement('tr');table.appendChild(heading_row);table.appendChild(unit_row);for(var unit in unit_prod){var th=document.createElement('th');var img=document.createElement('img');img.setAttribute('src','graphic/unit/unit_'+unit+'.png');th.appendChild(img);heading_row.appendChild(th);var td=document.createElement('td');var text=document.createTextNode(unit_prod[unit]);td.appendChild(text);unit_row.appendChild(td);}return table;}if(!check_overview()){if(check_group){location.href='game.php?screen=overview_villages&mode=prod&group=0';}else{location.href='game.php?screen=overview_villages&mode=prod';}return;}var unit_prod={};var tbody=find_tbody();var rows=get_element_childs(tbody);for(var i=1,len=rows.length;i<len;i++){var images=get_element_childs(get_element_childs(rows[i])[7]);for(var j=0,lenj=images.length;j<lenj;++j){var img=images[j];var matches=/unit_(\w+)\.png/.exec(img.getAttribute('src'));var cnt=img.getAttribute('title').split('-');var unit_name=matches[1];if(typeof(unit_prod[unit_name])=='undefined'){unit_prod[unit_name]=0;}unit_prod[unit_name]+=parseInt(cnt[0],10);}}tbody.parentNode.parentNode.insertBefore(generate_unit_prod_dom(unit_prod),tbody.parentNode);})();

-edit-
Dieses Skript stelle ich privat zur Verfügung, daher kein offizieller Support seitens InnoGames.

Leider habe ich gerade feststellen müssen das dieses Script seid einiger Zeit nicht mehr funktioniert, da es aber sehr hilfreich war, wäre es nett wenn dies wieder jemand richtet!

Zur info gespielt wird W32 mit PA!
 

DeletedUser

Gast
Nach langer zeit mal ein push, da ich zu meinem bedauern feststellen musste das das immer noch nicht funktioniert!
 

DeletedUser

Gast
also bei mir klappt das wunderbar, aber könnte man das irgendwie machen, das auch angezeigt wird, in wie vielen dörfern diese truppen rekrutiert wird? oder gibts das schon und ich habs nur nicht gesehen? danke im voraus
 
Oben