[Demande de validation] Aide au paramétrage de TWStats

Statut
N'est pas ouverte pour d'autres réponses.

DeletedUser

Guest
Bonsoir,

J'ai réalisé un Script cet aprem' pour pouvoir paramétrer plus rapidement le planificateur de TW Stats, il n'y à donc aucun impact direct dans le jeu. Il permet en gros de zappé l'étape 1.

Le script ce lance depuis le profil d'un village, d'un joueur ou depuis la carte.

Quand vous l'utilisez il vous demande l'heure d'impact, puis ouvre une page pour chaque une de vos cibles en ayant déjà mis le nom de l'attaquant (votre pseudo), les coords et l'heure d'impact (on arrive directement à l'étape 2 où l'on doit choisir ses troupes les plus lentes) => voir script déjà existant pour aider à cocher rapidement

Si vous êtes sur le profil d'un village, la cible est ce village,
depuis le profil d'un joueur, tous ses villages sont les cibles,
et depuis la carte, le script demande une liste de vos cibles, j'ai choisie la carte car un script permet rapidement de faire notre petite liste de course :) => lien (attention la case "BB-code" ne doit pas être cochée)

Donc voila couplé avec ces 2 scripts il pourra vous faire gagner beaucoup de temps :)


Code:
javascript:
var screen = game_data.screen;
if(screen=="info_player" || screen=="info_village" || screen=="map")
{
    var name = game_data.player.name;
    var monde = game_data.world;
    var coords = new Array();
    var body = document.getElementById("content_value");
    var date = new Date();
    date = ''+date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+' '+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();
    var dateEtHeure = prompt("Veuillez indiquez la date et heure sous le format : AAAA-MM-JJ hh:mm:ss",date);
    dateEtHeure = dateEtHeure.split(' ');
    date = dateEtHeure[0];
    var heure = dateEtHeure[1];
    if(screen=="info_player")
    {
        table1 = body.getElementsByTagName('table')[2];
        var vill = table1.getElementsByTagName('tbody')[0];
        var villages = vill.getElementsByTagName('tr');
        for(var i= 0; i < villages.length; i++)
        {
            coords[i] = villages[i].getElementsByTagName('td')[1].textContent;
        }
    }else if(screen=="info_village"){
        table1 = body.getElementsByTagName('table')[0];
        coords[0] = table1.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[0].getElementsByTagName('td')[0].getElementsByTagName('table')[0].getElementsByTagName('tbody')[0].getElementsByTagName('tr')[1].getElementsByTagName('td')[1].textContent;
    }else if(screen=="map"){
        var coord = prompt("Veuillez saisir les coords des vivis ciblés sous le format XXX|YYY XXX|YYY");
        coords = coord.split(" ");
    }
    for(var i = 0; i < coords.length; i++){
        openUrl = 'http://fr.twstats.com/'+monde+'/index.php?page=attack_planner&step=2&target='+coords[i]+'&attacker='+name+'&date='+date+'&time='+heure;
        open(openUrl);
    }
    
}else{
    alert("Ce script doit être lancé depuis le profil d'un village ou d'un joueur ou depuis la carte.");
}void(0);

J'espère qu'il sera validé :)


EDIT : voila j'ai réutilisé les conseils de crf, y'a plus de paramètre à changer, c'est fonctionnel sur n'importe quel monde fr (et d'ailleurs même étranger ça devrait), par contre je trouve pas les listes des vivis déjà stocké, c'est dommage car c'est assez moche dans le code pour aller les choper

EDIT2: voila en image je sais pas si vous comprendrez mieux : (en utilisant le script c'est facile de s'y retrouver, mais attendez qu'il soit officiel bien sûr ;))

784960avant.png

892604apres1carte.png

264167apres2carte.png

979214apres1joueur.png

963294apres2joueur.png
 
Dernière édition par un modérateur:

DeletedUser

Guest
Bonjour :)
Sois plus précis sur ce que fait ton script, je n'ai pas très bien compris !
Ensuite les joueurs ne savent pas ce que c'est une variable, dis leur d'aller a la ligne 4
var name = "VOTREPSEUDO";
et de remplacer "VOTREPSEUDO" par leur pseudo, mais tu peux obtenir toi même le pseudo avec game_data.player.name ;)
_________
Mode développeur :

- Pour la condition du début, tu peux passer par game_data : game_data.screen, autrement en comparant :
Code:
if(document.URL.indexOf('screen=info_player')!=-1 || document.URL.indexOf('screen=info_village')!=-1 || document.URL.indexOf('screen=map')!=-1)

/*___________*/

var ga = game_data;
var sc = ga.screen;
if(sc == 'info_player' || sc == 'info_village' || sc == 'map')
- Pour avoir le monde du joueur, tu peux simplement faire game_data.world (en haut du code source de gt, tu peux voir game_data dans la 1ère balise script)
- Pour les tableaux, au lieu de var coords = new Array(); tu peux simplement faire var coords = [];
- Pour la fonction prompt(), tu n'es pas obligé de mettre window puisque tout provient de window, qui est implicite.

Si tu as des questions contacte moi par MP ou sur skype (pseudo : crf.70)
 
Dernière édition par un modérateur:

DeletedUser

Guest
Tu aurais une liste de toutes les données qu'on peut avoir sur gt via javascript? car c'est vrai que j'en connais aucune alors j'ai dû me deme*dé avec des strings dans tous les sens ^^, je vais faire quelques screens pour montrer parce que je vois pas trop comment expliquer autrement. Je suis plus vraiment habitué au javascript c'est pour ça que j'ai un regard plus précis (genre toutes les var que je déclare alors que finalement y'a pas besoin de les déclarer) bon et puis faut dire que j'aime pas spécialement ce langage :p

Mais bon comme ça y ralentit un peu les scripts je vais faire un effort pour m'y remettre :p

merci des conseils ;)

sinon pour skype je te vois pas souvent co :(
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut