ZaDS-nAIO, le Tout-en-Un du Dofusien !

Fil fermé
Partager Rechercher
Citation :
Publié par MagicZDS
A mon avis tu t'es planté de module de co, choisis "ConnexionWU".
Si le problème se pose toujours, passe le module ConnexionWU en mode débug (vas dans le répertoire Modules, crées-y un fichier tout bête, vide ou pas, nommé "debug.txt"), et relance la manip. Dis moi ensuite ce qui s'affiche dans les infobulles en bas.
Salut, ça ne marche toujours pas. L'infobulle dit : Module de connexion introuvable alors qu'il est installé
J'ai pas encore réussi la multi-co.

Et que fais-tu des boutons customisable qui permettront (enfin, c'pas dit) de "multi-login"?

Faut-il le module connexionWU ou un autre pour le multi login? le module connexionWU marche en compte après compte.

Et j'ai pensé à un truc, peut-on séparer les chats(combat/général/guilde) sur plusieurs fenêtres qu'on disposerait où l'on veut pour avoir les infos en plus claire, est-ce possible techniquement?
Si oui, se serait génial.

J'go retest le multi co, j'ai pourtant bien réglé :/
(oupah)

Windayme.
Aucune réponse sur ma possibilité d'aider ? Dommage.

J'ai l'intention de me lancer dans un gestionnaire d'élevage (style dragodindons, mais offline), et ai l'intention de le coder en python (pour m'améliorer dans le dernier langage que j'ai appris). Est-ce qu'il fonctionnerait avec le nAiO ? (Vu que python ne peut pas être compilé en exécutable)
Bonjour, chez moi sa ne fonctionne pas, pourtant j'ai bien remplie les champ "Alias" et "compte", et quand je clique droit le cadenas rien ne s'affiche, et j'utilise bien le module conexionWU.

Une solution ?


Edit: Problème régler en désinstallant tout et en réinstallant
Edit2: Autre problème, ben en fait les compte ne se lance pas, je clique et rien n'arrive.
sa marche nickel y a même plus besoin de cliquer sur "oui" a chaque ouverture de compte mais juste au lancement du nAIO.

Le seule truc que je peut dire c'est que pour que le logiciel rentre les ID dans la fenetre dofus il faut cliqué sur la fenetre dofus c'est dommage.

Bon boulot
Salut Triton !

Désolé pour le délai, j'avais pas vu ton premier message. Personnellement, aucun souci si il s'agit d'un code AutoIt, sinon pour du Python ça obligerait à avoir deux environnements de développement, et d'ajouter à AutoIt une fonction de lancement de scripts Python (je doute qu'il sache faire ça nativement).

Rien n'empêche pour toi d'en faire un en python, le compiler, et l'ajouter dans tes modules, il suffit de copier un exe dans le répertoire "Modules\". Mais pour qu'on puisse le partager, et que ce soit possible pour tous les participants au nAiO de le comprendre, on s'est fixé l'AutoIt comme langage de prog, malgré ces quelques limites (mais à mon avis, avec du boulot n'importe quel Python peut se faire en AutoIt et inversement).

Je serais heureux de t'aider (dans mon temps libre ^^) à le passer sur notre langage si tu me fournis le code source et un mini-cahier de charges de ton projet, et ainsi ajouter sa version "portabilisée" aux modules du nAiO.

A bientôt !

ZDS

PS: Oui, j'oubliais, il faut bien sur que ton projet respecte les CGUs d'Ankama et Jeux-OnLine, donc pas de bot, pas de communication directe et répétée avec le client de jeu (au pire en lecture, mais pas de commande automatisée), pas de communication du module sur le réseau sauf besoin expressément utile (comme pour un module de mise à jour, ou un chat de guilde hors-jeu).
Disons que pour lancer un script python par le principe déjà implanté, vu que ça ne se compile pas, ça serait un peu compliqué. Un script bash/shell/DOS(?) fonctionnerait sûrement.
Bref, je vais apprendre AutoIT, et tant pis pour mon entraînement au Python.
(Au passage, rien n'est encore fait, mais je préviens juste que je vais faire un module de gestion des stocks de dragodindes, pour les éleveurs en ayant besoin.)

Sinon, pour les CGU, le seul point problématique sera l'"importation" des stocks de dragodindes actuels. Donc, soit je demande au joueur de tout entrer manuellement (à la dragodindons), soit je lui demande de cliquer sur chaque dragodinde, puis détection de la partie avec la dragodinde d'affichée, puis interprétation de l'image, puis entrée dans la BDD. Je crois que je vais m'en tenir à l'entrée manuelle, pour le moment, ça sera déjà pas mal.

Et il faudra aussi que je trouve le temps de le faire, mais c'est un autre problème.
Y'a t il un moyen de modifier l'ordre de connection des comptes ? (La fonction "bouger" ne marche pas chez moi).
Je pourrais quand même ajouter les comptes dans leurs ordre de connection ,mais l'un de mes personnages a deux stuff (avec une initiative différente). Serait il possible de crée 2listes de multi , l'un avec le panda qui joue en 1er et l'autre avec le panda qui joue en 3ème?
Excellent travail en tout cas!
Bon, pour apprendre l'AutoIT, je suis en train de lire le code du nAiO.

Je vais faire une liste des choses étranges que je remarque :
- Globalement :

  • Les variables globale, c'est le mal dans les autres langages, pas en AutoIT ?
- ZaDS-nAiO.au3 :

  • l50 : $MODULE_VERSION pas à jour ?
  • l54 : Le format du fichier semble étrange : il est fait pour être utilisé par le programme ou lu par un humain ?
  • l66 : $nAiO_version pas à jour ?
- Include/Compilation.au3 :

  • A quoi sert ce fichier ?
- Connexion Silencieuse.au3 :

  • A quoi correspond $cmdLine ? Ce fichier est conçu pour être compilé séparément ? (Je n'ai trouvé aucun autre tutoriel que celui du SdZ, et il ne fait qu'énoncer les mots-clef)
Bref, par quoi commencer pour apprendre ?

Parce que je me rends compte que l'AutoIT est vraiment différent des autres langages de programmation ...

Bon, je lis Mininit.au3 maintenant, ça m'a l'air plus facile à comprendre.

  • Qu'est-ce que ce paramètre -launch qui apparaît tout le temps ?
  • Je vois une référence à Modules/Mininit/Mininit.ini ; où est-ce qu'il est passé ?
  • l37-38 : Boucle infinie vide ? A quoi ça sert ?
Mais en entrant dans les fonctions ça se re-complexifie. Bref, souhaitez-moi bonne chance pour apprendre l'AutoIT, parce que je ne trouve rien sur internet, et que les codes du nAiO ne sont pas des plus simples à comprendre ...
Citation :
Publié par Triton
Bon, pour apprendre l'AutoIT, je suis en train de lire le code du nAiO.
Je pense pas que ce soit la meilleure des solutions. Il y a des réflexions abouties dans ce code, et des mécanismes pas forcement facile à saisir si tu sais pas comment c'est pensé.

Personnellement j'ai appris tout seul avec l'aide inclue qui est complète et illustrée d'exemples. Je pense que commencer à voir ce qu'il est possible de faire et la façon dont fonctionne AutoIt (même si ça à rien d'extraordinaire) est une meilleure solution. Si tu préfères directement explorer du code prends quelque chose de moins complexe.

Un article du site du Zéro traitant d'AutoIt si jamais ça peut t'être utile.

Citation :
l37-38 : Boucle infinie vide ? A quoi ça sert ?
En fait dans ce cas là elle sert à faire patienter de script (idle) de manière à ce qu'il reste disponible sans toutefois se terminer. Ensuite mininit fonctionne avec un système de Hotkey qui execute les fonctions spécifiées lorsqu'on appuie sur la touche bindée.
Le résultat est que le script ne fait rien en continue même si la boucle est infinie, il fait seulement des actions à un moment donné. (lorsqu'on presse une touche bindée)
Coucou tout le monde

ce soir, j'aimerais vous faire part d'un probleme.

je n'arrive pas a avoir la version 1.1 du nAIO

ce qui fais que dans la configuration,je ne peux pas faire des listes multi c ompte

vous auriez une solution?

merci d'avance
Pour l'article du SdZ, je l'ai déjà lu, mais il explique simplement la syntaxe, et sert surtout comme liste de mots-clefs (en tout cas c'était comme ça quand je l'ai lu).
Sinon, pour la boucle infinie, pourquoi ne pas mettre un simple Sleep( 10 ) pour laisser la main à d'autre programmes et éviter l'utilisation de processeur intempestive ? (cf. le tutoriel AutoIT du SdZ).

Sinon, en continuant à lire, je commence à comprendre les principes.

Édit : Dans le Mininit lignes 262 à 268, il y a une boucle qui me semble très lourde inutilement. Voici ce par quoi je la remplacerais, au vu de ce que j'ai appris :
Code:
    Dim $b[UBound($a)][2]
    ; ...
    $l = 1
    For $i = 0 To UBound($a) - 1
        If StringInStr($a[$i][0], $e) > 0 Or $e = "" Then
            $b[$l - 1][0] = $a[$i][0]
            $b[$l - 1][1] = $a[$i][1]
            $l = $l + 1
        EndIf
    Next
    ReDim $b[$l][2] ; Pas sur du $l ; peut-etre $l - 1 ou $l + 1
Ce qui éviterait de nombreuses modifications de la taille, opération lourde par excellence : Avec N = nombre de matches, la version actuelle est en O(1+2+3+...+N) ; soit O(N(N+1)/2) ; soit en O(N²) ; alors que la mienne est en O(N) (grâce au nombre de redimensionnements passant de N à 1) (cf. http://fr.wikipedia.org/wiki/Th%C3%A....2C_comparatif). Après, je n'ai pas réfléchi au nombre de matches, donc peut-être que cette modification ne causerait que de très petites améliorations, mais c'est toujours ça de pris.

Sinon, je trouve que les noms de variables dans ProcessGetWin sont particulièrement obscurs ($a, $b, $c, $d, $i, $p) ... Ce qui ne facilite pas la compréhension.

Re-Édit : Je pense que j'ai à peu près compris le code du Mininit (sauf les GUICtrlRead ; mais là c'est que je n'arrive pas à assimiler la doc'). Je m'attaque donc aux tutoriaux de SciTE, puis je commencerai à essayer mon gestionnaire d'élevage.

Re-Re-Édit : C'est bon, je pense avoir pigé le principe, j'en apprendrai plus en corrigeant mes bugs.
J'ai suivis un peu votre conversation Squeez et MagicZDS je crois avoir compris que votre petite modif permet de rentrer directement sur le perso principal de chaque comptes ? (Enter + enter) j'avoue que sa me plait pas mal (encore un gain de temps et donc d'argent =D) J'aimerai également savoir si il y a un moyen de mettre les pages en "grand écran" directement (peut être la modif avec "Up" qu'a donné ZDS )
[Je ne m'y connais pas vraiment en langages informatiques ainsi si on pouvais me donner le nom exact et la ligne du fichier qu'il faut modifier et par quoi se serait très sympa ]

En tous cas merci encore J'adore ce petit programme..
La modification c'est ça :
Code:
WinSetState("", "", @SW_MAXIMIZE)) // Mettre la fenêtre en grand écran
Bon les // les rajoute pas, c'est moi qui l'indique et je suis sûr qu'en autoIT ça va planter ces / (ça doit être ; plutôt). Donc tu ouvres le code du module connexion et à la ligne 219 (ou un peu avant ou un peu après) tu devrais avoir un truc qui ressemble à ça :
Code:
    Sleep(500)
    Send("^a")
    Sleep(500)
    Send($login,1)
    Send("{TAB}")
    Send($pass,1)
    Send("{ENTER}")
Et après ce Send("{ENTER}") tu rajoutes ça :
Code:
      Sleep(500)
    WinSetState("", "", @SW_MAXIMIZE)
Ce qui correspond à :

-Attend 500 ms
-Grand écran
re bonsoir !

alors je vous expose mon probleme.
j'ai renseigner les comptes, crée le multi.
je n'arrive cepandant pas a mettre up luncher en programme de connexion, il est ecrit en rouge.
j'arrive a co les 8 ocmptes 1 par 1 grace au clique gauche, mais tout d'un coup ca marche pas
comment faire?
Merci Squeez tous ca est magnifique seul bémol il ne le met pas en plein écran, il rentre bien sur le perso (Enter) mais ne met pas le mode plein écran malgré une revérification j'ai bien tout copier/coller à l'endroit ou tu me l'a indiqué ( le ENTER fonctionne très bien)

Serait-tu pourquoi il refuse le plein écran?? C'est pas très gênant au pire je peux m'en passer
Au passage le gros de la modification ne vient pas de moi mais d'une autre personne (dont j'ai oublié le nom et flemme de chercher dans le thread :<). Ça ne demande pas un niveau extrême mais rendons à César ce qui appartient à César.

Pour ton second problème bah je vois pas trop. Sous Seven 64 bits ça marche donc tu tournes sur quel OS ? Pas de raisons que ça ne marche pas sur un autre mais on sait jamais. Sinon copie/colle ce que tu as (ligne 218 jusqu'au dernier send(enter) on va dire), des fois qu'une erreur soit présente (c'est capricieux des fois, un simple espace et c'est la cata).
Squeez j'ai le même problème que Yo-les-jeuness , si tu pouvais copier/coller ton codage ça serait super


Edit: Merci Za avec le WinSetState("", "", @SW_MAXIMIZE) ça marche parfaitement chez moi !!
Bonsoir, bonsoir, je vais essayer de faire court !
Citation :
Publié par Squeez
La modification c'est ça :
(...) Donc tu ouvres le code du module connexion et à la ligne 219 (ou un peu avant ou un peu après) tu devrais avoir un truc qui ressemble à ça :
Code:
    Sleep(500)
    Send("^a")
    Sleep(500)
    Send($login,1)
    Send("{TAB}")
    Send($pass,1)
    Send("{ENTER}")
Et après ce Send("{ENTER}") tu rajoutes ça :
Code:
      Sleep(500)
    Send("^{f}") ;ZaEdit : mise en plein écran par ctrl+f
Ce qui correspond à :
-Attend 500 ms
-Grand écran
Je conseille plutôt l'utilisation du Ctrl+f ("^{f}'), qui est valable aussi sous windows XP, mais bien joué pour avoir mit en place cette fonction ! ^^
À noter que la mise en fenêtre "agrandie" se fait par WinSetState("", "", @SW_MAXIMIZE), à la place du Send("^{f}").
Par-contre, ce que j'aime beaucoup moins, c'est le contournement de la fonction "connexion rapide".
Si vous ne cochez pas la case "connexion rapide" (alors qu'elle est disponible), ce n'est pas à un script de faire cette fonction à votre place.
Mon petit doigt me dit que cette fonction a justement été développée pour permettre une meilleure connexion au jeu, alors je vous conseille très fortement de l'utiliser en priorité, plutôt que de "générer" un équivalent à la main !
Citation :
Publié par Triton
Je vais faire une liste des choses étranges que je remarque :
- Globalement :Les variables globale, c'est le mal dans les autres langages, pas en AutoIT ?
Ca n'a pas la même utilité dans un langage "séquentiel" (C, Python, BASIC dont AutoIt fait partie) que dans un langage "objet" (C++, C#, Java). Dans un langage séquentiel, c'est parfois le seul moyen pour passer des informations d'état, des codes d'erreur, ou tout type d'informations "extérieures" aux fonctions. Bref, c'est le mal dans un langage objet, mais c'est nécessaire dans un langage séquentiel.
Citation :
- ZaDS-nAiO.au3 :
  • l50 : $MODULE_VERSION pas à jour ?
  • l54 : Le format du fichier semble étrange : il est fait pour être utilisé par le programme ou lu par un humain ?
  • l66 : $nAiO_version pas à jour ?
C'est possible que la variable de version ne soit pas à jour, nous la changeons "manuellement" pour nous y retrouver. (Personnellement, j'utilise plus le nom du fichier en développement que cette variable, le Mininit que je prépare est "Minint-Stade6.au3", ce sera la version "1.3" officiellement. ^^)
Citation :
- Include/Compilation.au3
Il s'agit du module permettant la transformation du nAiO en version compilée, quand la version actuelle est la version source.
Pratique pour vous assurer que le fonctionnement est réellement celui qui est indiqué dans les fichiers sources (ce qui n'est malheureusement pas possible avec la version directement compilée, il me semble.)
Citation :
- Connexion Silencieuse.au3 :
  • A quoi correspond $cmdLine ? Ce fichier est conçu pour être compilé séparément ? (Je n'ai trouvé aucun autre tutoriel que celui du SdZ, et il ne fait qu'énoncer les mots-clef)
$cmdLine est une variable "AutoIt" (c'est un array), qui contient la liste des paramètres indiqués avec le module.
Par exemple, en créant un raccourcis qui pointerait sur ["C:\ZaDS-nAiO\Modules\AIO-Log.exe" "C:\log.txt"], il ouvrirait le module AIO-Log, avec le paramètre $cmdLine[1]="C:\Log.txt".
Le mieux est d'aller voir la documentation, l'utilisation de ces paramètres permet de charger les modules avec des valeurs pré-indiquées, du type ["Module Panoplies" "Fichier de panoplies"] pour afficher directement le stuff dans le module de panoplie, ou ["Module DamageCalc" "Fichier de panoplie"] pour calculer les dommages des stats de la panoplie.
(Le Module de panoplie est encore en projet, c'est juste une prévision du futur. ^^')
Citation :
Bon, je lis Mininit.au3 maintenant, ça m'a l'air plus facile à comprendre.
  • Qu'est-ce que ce paramètre -launch qui apparaît tout le temps ?
  • Je vois une référence à Modules/Mininit/Mininit.ini ; où est-ce qu'il est passé ?
  • l37-38 : Boucle infinie vide ? A quoi ça sert ?
Mais en entrant dans les fonctions ça se re-complexifie.
Merci pour le compliment, déjà, contente que mon code-source te plaise !
Le paramètre "-launch" permet de garder le nAiO en parallèle du module : sans lui, le nAiO attend que le module se ferme, et se "fige" en attendant ce moment. Avec ce paramètre, le script se relance, "libérant" le nAiO.
La boucle infinie vide sert juste à garder le script ouvert, quand il attend des informations comme des clics sur des boutons, ou des touches (HotKey) sur le clavier, ce qui est typiquement le fonctionnement du Mininit.
"Il ne se passe rien, je ne fais rien. Ha, un de mes boutons est appuyé, je lance la fonction associée, puis je ne re-fais rien."
La porte de sortie est la fonction "Exuit", qui est appelée quand la fenêtre du module est fermée (ou que la petite boule bleue (A) -en attendant l'icône finale- en bas à droite est cliquée -> "Exit").
Citation :
Bref, par quoi commencer pour apprendre ?

Parce que je me rends compte que l'AutoIT est vraiment différent des autres langages de programmation ...
Le mieux pour t'entraîner, c'est (à mon avis) de prendre une situation "simple", et de la triturer dans tous les sens.
Exemple : "afficher le message 'bonjour'" (MsgBox). Puis afficher le message ' "Bonjour" '. Puis afficher le message pendant 3 secondes, etc.
Ensuite, faire afficher "Bonjour 1", "Bonjour 2", "Bonjour 3", etc, dans une boucle "For..Next", "While..Wend" et "Do..Until".
Il ne faut pas voir AutoIt comme un langage de programmation "pure" (dans le sens où le but n'est pas de réaliser un produit complètement original, à partir de "rien"), il s'agit simplement et surtout d'un outil puissant pour développer des outils sous Windows, pratiques pour plein de choses, dont notamment des interfaces graphiques (GuiCreate(), et fonctions associées) simples.
Par-contre, je déconseillerais à qui que ce soit d'utiliser AutoIt pour faire du code pur, ce n'est "que" un langage de scripting.

Je rappelle quand-même que quoi qu'il arrive, l'équipe du projet ZaDS-nAiO et l'équipe du forum JoL-Dofus ne sommes pas responsables de l'utilisation que vous pourriez faire du langage de programmation cité ("AutoIt") qui permet de faire des outils vraiment pratiques, mais qui permet aussi (revers de la médaille powa) de faire des outils vraiment mauvais.
Vérifiez bien avec attention (et demandez confirmation auprès des autorité officielles si besoin) que votre développement respecte entièrement les CGUs (lisibles ici), qu'il n'apporte aucun avantage direct sur les autres joueurs, et qu'il respecte le GamePlay et l'esprit du jeu sur lequel il est utilisé.

Après ce pavé, je vous souhaite une bonne soirée !
Za.
Fil fermé

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés