Rooftochten

Rooftochten (t12063835)

Auteur: @warre

Credits: Graag bedank ik @den tist voor het omzetten van de originele berekening en Jonas om mij er op te wijzen dat deze niet klopt voor elke wereld en de correcte berekening voor verschillende werelden beschikbaar te stellen.

Werkt op pagina: Verzamelplaats -> rooftochten

Functiebeschrijving script:

ALGEMEEN
Het script is het meest effectief bij het begin van een wereld wanneer je je off / def nog niet mega lang tijd kwijt wilt zijn voor het risico dat je onder aanval komt te liggen. Het gaat uit van een maximale tijd (zelf te kiezen) dat je je troepen kwijt wilt zijn en vult aan de hand daarvan de rooftochten in. Hij verstuurt eerst naar Reuze Rovers, dan Slimme Speurders, ... Als je een lage tijd in stelt zullen mogelijk niet al je troepen gebruikt worden terwijl als je een hoge tijd in stelt niet alle rooftochten opties gebruikt zullen worden.

Wanneer er geen rooftocht meer beschikbaar is of de troepen zijn op zal hij je naar het volgende dorp brengen. Let dus goed op dat je in de juiste groep staat indien je niet uit al je dorpen wilt rooftochten.

INSTELLINGEN
Bovenaan in het script zijn er nog een aantal instellingen die je naar eigen wensen kan instellen:

1. Runtimes
PHP:
var runtimes = {
    'off' : 6,
    'def': 3
};
Dit is de maximale tijd dat je rooftochten mogen lopen uitgedrukt in uren. We splitsen ze op in off en def zodat er gekozen kan worden om de def sneller weer thuis te hebben voor moesten er aanvallen komen. De enige waarden in dit deel die aangepast mogen worden zijn de getallen (de 6 en de 3), al de rest moet blijven staan zoals het is om goede werking te garanderen.

2. Units
PHP:
var units = {
    'sword': {'haul': 15, 'type': 'def'},
    'spear': {'haul': 25, 'type': 'def'},
    'axe': {'haul': 10, 'type': 'off'},
    'archer': {'haul': 10, 'type': 'def'}
};
Hier stel je in welke units je mee wilt sturen voor de rooftochten, standaard is er gekozen voor de trage units alleen zodat er met LC/ZC gefarmt kan worden. Ook moet er hier informatie worden gegeven die het script nodig heeft om zijn berekeningen te kunnen uitvoeren. Het is belangrijk dat je de aanpassingen juist doet, anders werkt het script niet. Volgende zaken moet je rekening mee houden:
  • De mogelijke units zijn: spear, sword, axe, archer, light, marcher, heavy, knight. Zet deze tussen ' ' met een : er achter
  • Per unit moet de volgende informatie gegeven worden, pas enkel de waarden aan en niet de woorden haul en type:
    • Haul: In het Nederlands draagcapaciteit (= aantal gs een eenheid kan dragen), dit moet een cijfer zijn niet omringd met ' '. (deze informatie is te vinden wanneer je op een eenheid icoon klikt)
    • Type: Of de unit offensief of defensief is, dit moet ofwel off ofwel def zijn omring door ' '
  • Let op dat bij elke unit achteraan een komma (,) staat behalve bij de laatste

TIPS

Het meest aangename in gebruik is om een sneltoets toe te kennen aan dit snellijstscript, zo stuur je het snelste en eenvoudigste je rooftochten er uit. Persoonlijk zet ik dit script ook 2 keer in de snellijst, waarbij 1 andere runtime waarden heeft die ik voor het slapen gaan gebruik. Gezien ik dan toch 8 uur niet online kom kan de def even goed 8 uur ivp 4 uur weg zijn natuurlijk :)

ScriptCode:
PHP:
javascript: /* @name: Rooftochten @author: Warre @description: Stuur je rooftochten snel en slim */

/* Instellingen */
// Maximale looptijd van de rooftochten voor elk soort dorp uitgedrukt in uren
var runtimes = {
    'off' : 6,
    'def': 3
};

// De eenheden die gebruikt mogen worden om te versturen met de nodige informatie (haul = hoe veel gs een eenheid kan dragen, type = off / def)
var    units = {
    'sword': {'haul': 15, 'type': 'def'},
    'spear': {'haul': 25, 'type': 'def'},
    'axe': {'haul': 10, 'type': 'off'},
    'archer': {'haul': 10, 'type': 'def'}
};
/* Einde Instellingen */

var $content = $('#scavenge_screen');
if ($content.length > 0) {
        var $btns = $content.find('.btn-default').not('.btn-disabled, .unlock-button');
        var    haul = 0;
        var type = {'off': 0, 'def': 0};

        for (var prop in units) {
            var amount = parseInt($content.find('.units-entry-all[data-unit="' + prop + '"]').text().match(/\d+/));

            haul = haul + parseInt(amount * units[prop].haul);
            type[units[prop].type] = type[units[prop].type] + amount;
        }

        if ($btns.length > 0 && haul > 0) {
            var $btn = $btns.last();
            var current = $btn.closest('.scavenge-option').find('.title').text().trim();
            var scavengeObject = JSON.parse($('html').find('script:contains("ScavengeScreen")').html().match(/\{.*\:\{.*\:.*\}\}/g)[1]);
            var scavengeIndex = {'Flegmatische  Fielt': '1', 'Bescheiden Bandieten': '2', 'Slimme Speurders': '3', 'Reuze Rovers': '4'};
            var scavangeInfo = scavengeObject[scavengeIndex[current]];
            var troop_type = (type.off > type.def) ? 'off' : 'def';
            var runtime = runtimes[troop_type] * 60 * 60;
            var loot = Math.pow(Math.pow(((runtime / scavangeInfo.duration_factor) - scavangeInfo.duration_initial_seconds), (1 / scavangeInfo.duration_exponent)) / 100, 1/2) / scavangeInfo.loot_factor;
            var send = 0;

            for (var prop in units) {
                var ui = $('.unitsInput[name="' + prop + '"]');
                var needed = Math.round(loot / units[prop].haul);
                var max = parseInt($content.find('.units-entry-all[data-unit="' + prop + '"]').text().match(/\d+/));

                if (needed > max) {
                    ui.val(max).trigger('change');
                    loot = loot - (max * units[prop].haul);
                    send = send + max;
                } else {
                    ui.val(needed).trigger('change');
                    send = send + needed;
                    break;
                }
            }

            if (send >= 10) {
                $btn.trigger('click');
            } else {
                $('.arrowRight, .groupRight').trigger('click');
            }
        } else {
            $('.arrowRight, .groupRight').trigger('click');
        }
} else {
    location.href = game_data.link_base_pure + 'place&mode=scavenge';
}
void(0);
Veel plezier er mee!

Warre
 
Laatst bewerkt:

Hopeful

Tribal Wars Team
Forum Mod
Nieuw rooftocht script, thanks Warre!

(Ik zal morgenavond de overzichtpost updaten ;))
 
Super, ik ken al wat mensen die gelukkig zullen worden met een rooftocht script :like:
 
Hoi, maakt de wereldsnelheis nog iets uit in de uren?
Als ik het goed heb dan wordt de looptijd berekend zonder de wereld snelheid daar in mee te nemen, dus zou geen probleem moeten zijn. Eenvoudig te testen op verschillende werelden natuurlijk als je daar een accie hebt (op 1.5 snelheid werkt die zoiso goed), de tijden moeten namelijk op de kop zijn wat je ingegeven had :p

Volgens sommigen zou het fout kunnen lopen bij het aanpassen van de instellingen... Voor mij klinkt dat allemaal logisch dus als het ingewikkeld uitgelegd is ofzo dan zou het misschien mooi zijn dat iemand die het wel begrijpt het in volledige leken taal nog een keer uitlegt ^^

EDIT: Blijkbaar zijn er toch verschillen voor de werelden die niet zijn opgenomen in de berekening :( Het is even zoeken om dit goed aan te passen dus een update volgt nog.
 
Laatst bewerkt:
De openingspost is geüpdate, blijkbaar werd er in de oude berekening geen rekening gehouden met verschillende werelden. Wat extra code samen met een nieuwe berekening (waarvoor dank Jonas) en nu zou die overal correct moeten werken :)

@Victorious. "marcher" idd, ben ik vergeten in de openingspost, is ook aangepast nu ;)
 
Bij mij doet het script het op w62 maar niet op w61. En ik weet niet waarom. ik denk zelf dat het aan de wereldsnelheid ofzoiets ligt
 
Bij mij doet het script het op w62 maar niet op w61. En ik weet niet waarom. ik denk zelf dat het aan de wereldsnelheid ofzoiets ligt
Wel ik weet het ook niet dan :D

1. Heb je de laatste versie ? Script is tijdje gedeleden geupdate.
2. Wat werkt er niet aan ? Doet die helemaal niks ? Veranderd hij wel van dorp maar stuurt die geen rooftoch ? ... (eventueel een print screen)
3. Krijg je errors in de console ? Gebruik volgende stappen: rechter klik ergens op de pagina -> element inspecteren (oid) -> console. Gebruik dan het script (een paar keer) en kijk of er iets verschijnt, laat weten wat er verschijnt.
 
Hij veranderd wel van dorp maar doet niks, en ja ik heb de laatste versie :p

ik zal stap 3 eens proberen
 
ik heb tbh geen idee waar ik een screen van moet maken. bij mijn co doet het script het ook niet.
 
ik heb tbh geen idee waar ik een screen van moet maken. bij mijn co doet het script het ook niet.
Er zijn geen andere meldingen dat het op w61 niet werkt en de console die jij doorstuurde toont geen errors gerelateerd aan dit script. Dus is er even goed een kans dat er niks met het script is maar dat het aan een instelling / wijziging ligt. Er zijn meerdere redenen waarom het script naar het volgend dorp kan gaan, maar zonder enige informatie kan ik niet bepalen of het script echt iets verkeerd doet of het gewoon werkt zoals het moet maar niet zoals jij het wilt.

Ik kan enkel helpen als ik ALLE nodige informatie hebben, dat wilt zeggen het script zoals het in jou snellijst staat, screens van rooftochten pagina van dorpen die het script overslaat en die volgens jou niet kloppen, errors als die er zijn, ... Pas als ik die heb kan ik kijken waar het aan ligt en helpen.