online faq recherche accueil
 

Il y a 204 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Dragon Talon et ED vs Demon

 
n°4765271
Kyjja
Forrest-ssin
Posté le 08-03-2008 à 17:24:33  profilanswer
 

:hello:

 

Suite à une discussion sur le stuff d'une kickeuze, nous nous demandions si les 350 ED vs Démon offert par Imposition des Mains ( gants du set Disciple) marchaient sous Dragon Talon.

 

J'aimerais bien entendu avoir une justification vérifiable du fait que cet ED passe ou non sous DTalon :)

 

Nous allons donc tenter une invocation lvl 7 de Myrdinn :o

 


 :jap:

 


Laying of Hands
(Bramble Mitts)

 

Défense : 79-87
Niveau requis : 63
Force requise : 50
Durabilité : 12
10% de chance de lancer un Choc Sacré de niveau 3 lors de l'attaque
+350% de dégâts sur les démons
+50% à la résistance au feu
+25 en défense
Augmentation de la vitesse d'attaque (20%)


Message édité par Kyjja le 08-03-2008 à 17:27:10

---------------
:pt1cable: La VRAIE vie O___O :lol:  | Ma Puissante TL Liste de Needs [:makouzine] | La gente féminine utilise Diablo!  | Arreter didi, c'est facile! | Mon build Kickeuze Lawbringer | Mon Guide de la Shuri-ssin pure ( en construction) | Mon build After Burneuse | Vitesse maximale d'une Forrest-ssin et divers personnages.
n°4765272
tahar
Posté le 08-03-2008 à 17:57:56  profilanswer
 

Tu as raison de tenter l'invocation, elle semble marcher aujourd'hui :D


---------------
Trade List SCNL
n°4765273
Myrdinn
ollydebugger
Posté le 08-03-2008 à 18:33:46  profilanswer
 

Hum ! Ai-je l'air d'un monstre pour pouvoir être "summoné" ???
 
Sur ce, c'est assez facile à tester sous 2 conditions :
Avoir le jeu installé en version 1.11
utiliser ollydbg pour faire un test ultrasimple.
 
Malheureusement nous n'avons qu'une partie de ces conditions chacun. Si tu es prêt à utiliser ollydbg je peux te guider.
Grosso modo pour tester il faudrait :
0) Lancer la partie en local
1) attacher Ollydbg au process Diablo2.exe (Menu File/attach) puis Attach
2) afficher le module exécutable D2Game.dll (Menu View Exécutable module) double click sur D2game.dll
3) Isoler la routine ED%vsDemon. sur l'écran D2game.dll faire un clic droit puis  
(Search For / binary String) chercher 740C 6A00 6A79 53
4) mettre un breakpoint sur la ligne PUSH 79 (l'ID f'ED%vsDemon) --> touche F2
5) Reprendre la partie (touche F9)
 
Si lorsque DTalon est utilisé le jeu s'arrête sur la ligne PUSH 79 alors l'ED%VsDemon est pris en compte par DTALON.  
 
 
Si j'ai un peu de temps je réinstalle D2 en 1.11 pour faire ce test moi même mais je ne peux pas garantir quand.


Message édité par Myrdinn le 08-03-2008 à 18:36:20

---------------
Le savoir ne vaut que s'il est partagé :Lien vers les posts techniques Diablo2/LOD
n°4765276
Kyjja
Forrest-ssin
Posté le 08-03-2008 à 19:10:24  profilanswer
 

J'ai un peu bidouillé ça ( avec la version 1.10 de Ollydbg), mais je ne comprend pas ce que tu veux dire par " Si lorsque DTalon est utilisé le jeu s'arrête sur la ligne PUSH 79".

 

EDIT : quand tu dis " la partie en local", tu veux bien dire en solo?


Message édité par Kyjja le 08-03-2008 à 19:11:39

---------------
:pt1cable: La VRAIE vie O___O :lol:  | Ma Puissante TL Liste de Needs [:makouzine] | La gente féminine utilise Diablo!  | Arreter didi, c'est facile! | Mon build Kickeuze Lawbringer | Mon Guide de la Shuri-ssin pure ( en construction) | Mon build After Burneuse | Vitesse maximale d'une Forrest-ssin et divers personnages.
n°4765277
Myrdinn
ollydebugger
Posté le 08-03-2008 à 19:21:06  profilanswer
 

Oui en solo sinon tu n'auras pas la partie serveur (D2Game.dll)
 
Concernant le "breakpoint" cela signifie qu'à chaque fois que CETTE ligne de code est exécutée le jeu s'arrête et passe en mode debugage pas à pas (dont tu peux resortir en appuyant sur F9) Cette ligne correspondant au calcul du ED%VsDemon pendant le combat, si le jeu passe en mode debug (et donc se met en pause) alors c'est que la fonction est utilisée et par voie de conséquence que DTALon utilise l'ED%VsDemon
 
Evidément il faut que cela corresponde à l'action d'utiliser D2Talon sur un demon.


Message édité par Myrdinn le 08-03-2008 à 19:24:44

---------------
Le savoir ne vaut que s'il est partagé :Lien vers les posts techniques Diablo2/LOD
n°4765278
Kyjja
Forrest-ssin
Posté le 08-03-2008 à 19:31:18  profilanswer
 

J'ai du faire une fausse manip, car le jeu ne s'arrete pas, que j'utilise DTalon OU l'attaque normale ( qui devrais, elle, marcher) sur un déchu de l'acte 1 normal ( Démon).

 

Ci joint un screen :

 

http://images3.hiboox.com/vignettes/1008/i9nmm06o.jpg


Message édité par Kyjja le 08-03-2008 à 19:31:32

---------------
:pt1cable: La VRAIE vie O___O :lol:  | Ma Puissante TL Liste de Needs [:makouzine] | La gente féminine utilise Diablo!  | Arreter didi, c'est facile! | Mon build Kickeuze Lawbringer | Mon Guide de la Shuri-ssin pure ( en construction) | Mon build After Burneuse | Vitesse maximale d'une Forrest-ssin et divers personnages.
n°4765279
Myrdinn
ollydebugger
Posté le 08-03-2008 à 19:58:40  profilanswer
 

Excellent Kyjja c'est déjà bien d'être arrivé ici.
Reprenons, quand tu as attaché ollydbg au process game.exe le jeu s'est mis en pause (figé) et tu as du faire F9 pour continuer ? Si ce n'est pas le cas alors le problème est autre part.
Vu que la ligne apparait en rouge le breakpoint est bien positionné (tu peux le vérifier en faisant ViewBreakpoint et en regardant le statut du breakpoint)
Quand tu dis attaque normale, tu parles de l'attaque de base (sans skill) de tous les persos ?
Pourrais-tu faire l'essai avec un autre perso, des autres skills ?  
 
En bas je vois Thread 0000 .... terminated exit code 0.  
Tu avais arrêter la liaison D2-ollydbg quand tu as pris la capture d'écran ou l'attachement d'ollydbg as été rompu auparavant ???
 
 
CE que tu peux faire (car ce passage est soumis à la condition précédente) c'est d'essayer le breakpoint sur la ligne précédent le JE SHORT D2GAME.045... juste avant le PUSH 0. Celle que l'on ne voit pas à l'écran. C'est le test Ismonster Daemon ?  
 
PS. Je peux expliquer les quelques lignes de code en détail si cela peut t'aider.


Message édité par Myrdinn le 08-03-2008 à 20:05:11

---------------
Le savoir ne vaut que s'il est partagé :Lien vers les posts techniques Diablo2/LOD
n°4765280
Kyjja
Forrest-ssin
Posté le 08-03-2008 à 20:06:36  profilanswer
 

Oui, enfin, je ne pouvais plus le remettre en cliquant simplement dans la barre des taches.
 
Oui, je parle de l'attaque de base présente sur chaque perso.
J'ai lancé Daydeuh en fenêtré, peut être cela vient-il de ça?
Mon perso à été édité au niveau de ses stats et dde son équipement via Hero Editor ( donc changement de son niveau, sa force, vie, etc...), de même, Laying of Hands est un item importé ( donc non dropé ingame).
 
Pour l'essai avec un autre perso, je suppose que tu veux que j'équipe, par exemple, un barbare d'Imposition des Mains puis que j'aille casser du déchu a la trombe, au berzerk et à l'attaque normale?
 
( ça se fera peut être pas ce soir par contre)


---------------
:pt1cable: La VRAIE vie O___O :lol:  | Ma Puissante TL Liste de Needs [:makouzine] | La gente féminine utilise Diablo!  | Arreter didi, c'est facile! | Mon build Kickeuze Lawbringer | Mon Guide de la Shuri-ssin pure ( en construction) | Mon build After Burneuse | Vitesse maximale d'une Forrest-ssin et divers personnages.
n°4765281
Myrdinn
ollydebugger
Posté le 08-03-2008 à 20:16:02  profilanswer
 

Aucune inquiétude pour l'origine du perso et de l'équipement, le jeu ne s'y interresse pas :) Etre en mode fenêtré c'est au contraire fortement conseillé (dans le cas de changement de résolution d'écran tu pourrais avoir des plantages)
 
OK le jeu était  était bien figé en mode debug au moins au début.
Quand c'est le cas il faut faire F9 pour sortir de mode debug, si tu as fait autre chose tu peu perdre le lien entre D2 et Ollydbg
 
Sinon dans toutes les pistes c'est mettre le breakpoint 3-4 lignes au dessus qui serait le test le plus rapide.


Message édité par Myrdinn le 08-03-2008 à 20:16:42

---------------
Le savoir ne vaut que s'il est partagé :Lien vers les posts techniques Diablo2/LOD
n°4765282
Kyjja
Forrest-ssin
Posté le 08-03-2008 à 21:17:18  profilanswer
 

Petite précision :

 

Lorsque j'attache Ollydbg à Daydeuh, un message s'affiche, dont la teneur est :

 

Entry Point Alert

 

Module 'CmdLineE' has entry point outside the code ( as specified in the PE header). Maybe this file is self-extracting or self modifying. Please keep it in mind when setting breakpoints!

 

Peut être un rapport avec mon problème de breakpoint?

 


Sinon, je viens de lire ton edit un peu plus haut.

 

Pour ce qui est de savoir quand la liaison ollydbg-Diablo à été rompue, j'avoue ne pas y avoir fait attention.
Pour le IsMonsterDeamon, je vais retenter la manip et vérifier.

 

Pour ce qui est de me détailler les lignes de code, je ne dis pas non :)

 

EDIT : Pour la ligne presente au dessus du JE SHORT D2Game.046... il s'agit de TEST EAX,EAX
Edit 2 : Le Thread 0000 .... terminated exit code 0 s'affiche en bas au moment où je fais F9 pour revenir dans la partie.


Message édité par Kyjja le 08-03-2008 à 21:23:25

---------------
:pt1cable: La VRAIE vie O___O :lol:  | Ma Puissante TL Liste de Needs [:makouzine] | La gente féminine utilise Diablo!  | Arreter didi, c'est facile! | Mon build Kickeuze Lawbringer | Mon Guide de la Shuri-ssin pure ( en construction) | Mon build After Burneuse | Vitesse maximale d'une Forrest-ssin et divers personnages.
n°4765283
Myrdinn
ollydebugger
Posté le 08-03-2008 à 21:41:17  profilanswer
 

Pas de problème pour le entry point cela veut juste dire qu'il a du relocaliser la dll, ca n'a aucune importance.
 
voici mon analyse personnel du code
Je ne vois pas les premièrelignes mais je les devine
 

Code :
  1. PUSH ESI
  2. CALL < JMP.&D2Common.10832>


Je ne suis pas sur du numéro de la fonction mais peu importe
ESI = Cible
D2Common.10832 est la function IsDemon?
Bref on appelle la fonction IsDemon avec comme valeur la cible.
 
Si le monstre est un demon alors le registre EAX=1 autrement EAX=0

Code :
  1. TEST EAX,EAX
  2. JE SHORT D2Game.145B92B8


Le test equivaut à Est ce que EAX Existe (<=> différent de zéro <=> à est ce que la cible est un démon (cf la fonction précédente)
JE = Jump Equal signifie si EAX=0 alors on passe à la ligne 145B92B8
Autrement si c'est un démon on exécutre les lignes suivantes
 
 

Code :
  1. PUSH 0
  2. PUSH 79
  3. PUSH EBX
  4. CALL < JMP.&D2Common.10061>
  5. ADD EDI,EAX


C'est l'appel à la fonction 10061 avec 3 paramètres :
PUSH 0 indique que l'on veut le résultat pour tout l'équipement actif
PUSH 79. 79 est l'ID de ED%VsDemon
PUSH EBX EBX est l'attaquant.
LE résultat est le %EDVsDemon de l'attaquant comme toute fonction il est retourné dans EAX
LA dernière ligne copie le résultat dans EDI
 
EDI=ED%VsDemon de l'attaquant
 
 

Code :
  1. PUSH ESI
  2. CALL < JMP.&D2Common.10833>


la même ESI est la cible
La fonction 10833 est la fonction IsUndead ?
 

Code :
  1. TEST EAX,EAX
  2. JE SHORT D2Game.145B92BCE


Test si la fonction retourne EAX=0 si oui on passe à la section  
145B92BCE
Si EAX <> soit si la cible est un Undead alors on exécute la partie suivante
 

Code :
  1. PUSH 0
  2. PUSH 7A
  3. PUSH EBX
  4. CALL < JMP.&D2Common.10061>
  5. ADD EDI,EAX


CE coup Ci l'ID 74 est celui de ED%VsUndead
Bref on ajoute dans EDI la valeur de ED%VsUndead
 
 

Code :
  1. CMP DWORD PTR DS:[ESI],1
  2. JNZ D2GAME.045B934F
  3. MOV EAX...


On test si la première valeur de ESI (la cible de l'attaque) est 1
Sinon on saute à la section 045B934F
Bref on test si c'est un monstre
Pour les joueur la première valeur vaut 0 pour les monstres c'est 1
 
Je ne vois pas la suite :)


Message édité par Myrdinn le 08-03-2008 à 21:43:37

---------------
Le savoir ne vaut que s'il est partagé :Lien vers les posts techniques Diablo2/LOD
n°4765284
Kyjja
Forrest-ssin
Posté le 08-03-2008 à 22:21:04  profilanswer
 

Je pense avoir grosso modo saisi le principe.
En fait, arrête moi si je dis des bétises, on a affaire à une sorte de "QCM" avec un système "If... Then..."
 
Tu n'a peut être pas vu mon edit, pour le message Thread 0000 .... terminated exit code 0. Cela est-il normal? Ne devrait-il pas garder la "liaison" avec le jeu?
 
Sinon ci-joint les lignes se trouvant avant et après le PUSH 79 ( surligné en rouge) :
 
http://images3.hiboox.com/vignettes/1008/vbvghjln.jpg


---------------
:pt1cable: La VRAIE vie O___O :lol:  | Ma Puissante TL Liste de Needs [:makouzine] | La gente féminine utilise Diablo!  | Arreter didi, c'est facile! | Mon build Kickeuze Lawbringer | Mon Guide de la Shuri-ssin pure ( en construction) | Mon build After Burneuse | Vitesse maximale d'une Forrest-ssin et divers personnages.
n°4765287
Myrdinn
ollydebugger
Posté le 09-03-2008 à 10:10:54  profilanswer
 

Je pense que le message n'st pas normal et explique pourquoi le debug ne fonctionne pas.
Je vais regarder


---------------
Le savoir ne vaut que s'il est partagé :Lien vers les posts techniques Diablo2/LOD
n°4765288
Dark-Ewok
:miaou:
Posté le 09-03-2008 à 13:41:22  profilanswer
 

(Un test @Hero Editor, ça marche aussi :ack: )

 


edit: c'est vrai que c'est moins précis cependant :D

 

Je vote pour "%ed vs demon ne compte pas dans DT" après test (491%ed aurait dû au moins doubler les dégats et je ne note aucune augmentation)


Message édité par Dark-Ewok le 09-03-2008 à 14:00:30

---------------
"...a terrible tree of thorns rose five kilometers high into a blood-red sky.  Human figures writhed on the many branches and spikes: the closer form recognizably human and in pain, the farther ones dwarfed by distance until they resembled clusters of pale grapes...  The dunes were frozen and distorted as if they had been blasted and glazed into glass; the boulders and cliff faces also had flowed and frozen like glaciers of pale stone.  There was no atmosphere—the sky was black with the pitiless clarity of airless moons everywhere.  The sun was not Hyperion's; the light was not of human experience."
Le Hardcore Apwal® ~ Happy Tree Friends ~ guide Hero Editor, by moi (:

Aller à :
Ajouter une réponse