Niveau de dame de fer ?

C

CHAKAN

Invité
Bonjour :bounce:

est-il possible de connaître le Niveau de dame de fer utilisé par les monstres ? :??:
(en particulier de ceux qui accompagnent les übers)
 
U

ulmo

Invité
[quotemsg=4689760,2,39722]a mon avi c est le niveau max vue comme c est puissant ![/quotemsg]Niveau 99 ? Ca m'étonnerais...

De quels monstres tu parles ? (nom, emplacement).
 
T

tatta xiongmao

Invité
a mon avi c est le niveau max vue comme c est puissant !

Et puis le niveau du sort n'a rien n'avoir avec sa puissance non ? ce qui change c'est seulement l'étendu de la zone d'effet :heink:
 
P

prik

Invité
A mon avis il parle des mages squelettes du sanctuaire du chaos en normal / cauchemard / enfer
 
B

Bygirz

Invité
J'en suis pas certain mais c'est possible que ce soit comme pour les auras...

ie lvlIM = lvlMonstre/4
 
C

CHAKAN

Invité
[quotemsg=4689771,7,21058]ie lvlIM = lvlMonstre/4[/quotemsg]

[*]quelqun pourrait il infirmer ou affirmer cela ? :??:
[*]et serait il possible d'avoir le niveau des monstres qui accompagnent les Übers ? :??:

désolé mais je sais pas lire les MPQ :sweat:
faudra que je m'y mette un jour...

 
U

ulmo

Invité
[quotemsg=4689962,8,3760]quelqun pourrait il infirmer ou affirmer cela ? :??:[/quotemsg]Ca a l'air hardcodé comme pas possible, peut-être que Myrdinn le sais, mais je ne sais pas aller voir ça pour le moment.
et serait il possible d'avoir le niveau des monstres qui accompagnent les Übers ? :??:
A priori c'est le niveau de la zone, à savoir 83. Pour les invocations je ne sais pas, c'est peut-être le même niveau que l'invocateur (110).
 
M

Myrdinn

Invité
C'est hardcodé effectivement, la preuve en assembleur ici pour l'une des malédictions.
De mémoire pour les auras c'est un tableau dans les Dlls qui donne le résultat.
J'avais étudié toutes les malédictions en 1.09. MAis cela peut avoir changé maintenant. JE recherche mes notes sur le sujet puis je viendrais éditer.


EDIT
J'ai retrouvé mon tableau pour les auras des monstres en 1.09b (découvert à l'origine par Jarulf en 1.08)
Tableau des auras
[fixed]1.09b D2Game.dll
Memory Offset  Offset  Colonne 1 Colonne 2 Colonne 3
6FD0A755  DA755h  00 00 00 00  00 00 00 02  00 00 00 62
6FD0A761  DA761h  00 00 00 00  00 00 00 01  00 00 00 66
6FD0A76D  DA76Dh  00 00 00 00  00 00 00 00  00 00 00 6C
6FD0A779  DA779h  00 00 00 00  00 00 00 01  00 00 00 72
6FD0A785  DA785h  00 00 00 00  00 00 00 02  00 00 00 7B
6FD0A791  DA791h  00 00 00 00  00 00 00 02  00 00 00 7A
6FD0A79D  DA79Dh  00 00 00 14  00 00 00 02  00 00 00 76
6FD0A7A9  DA7A9h  00 00 03 E7  00 00 00 02  00 00 00 67 [/fixed]

LA colonne 1 représente le niveau minimum que doit avoir le monstre pour obtenir l'aura
LA colonne 2 le diviseur de niveau pour calculer le niveau de celle ci
(0 <=> MLVL ; 1 => MLVL/2 ; 2 => MLVL / 4)
La colonne 3 est le Skill ID dans Skills.txt

Même si c'est hors sujet cela montre que c'est bien hardcodé, et que pour les malédictions il faut tracer leur code.
JE reviens quand je retrouve le reste de mes traces.
 
U

ulmo

Invité
Heu, 3E7 comme niveau minimal, ça fait beaucoup quand même...
Bon voici déjà la table en 1.11b :[fixed]
1.11b D2Game.dll
Memory Offset Offset Colonne 1 Colonne 2 Colonne 3 Colonne 4 Colonne 5
479FFF5 ffff8 00 00 00 00 00 00 00 00 01 00 00 00 06 00 00 00 62 00 00 00
47A0009 10000C 00 00 00 00 00 00 00 00 01 00 00 00 06 00 00 00 66 00 00 00
47A001D 111120 00 00 00 00 00 00 00 00 01 00 00 00 05 00 00 00 6C 00 00 00
47A0031 100034 00 00 00 00 00 00 00 00 01 00 00 00 07 00 00 00 72 00 00 00
47A0045 100048 00 00 00 00 00 00 00 00 01 00 00 00 08 00 00 00 7B 00 00 00
47A0059 10005C 00 00 00 00 00 00 00 00 01 00 00 00 08 00 00 00 7A 00 00 00
47A006D 100070 14 00 00 00 00 00 00 00 01 00 00 00 08 00 00 00 76 00 00 00
47A0081 100084 E7 03 00 00 00 00 00 00 00 00 00 00 01 00 00 00 67 00 00 00
[/fixed]



Et la routine (une des routines ?) qui accéde à cette table :
Code:
0478B3D0   83EC 08               SUB ESP,8
0478B3D3   56                    PUSH ESI
0478B3D4   8BF1                  MOV ESI,ECX
0478B3D6   85F6                  TEST ESI,ESI
0478B3D8   0F84 88010000         JE D2Game.0478B566
0478B3DE   8B06                  MOV EAX,DWORD PTR DS:[ESI]
0478B3E0   83F8 01               CMP EAX,1
0478B3E3   0F85 7D010000         JNZ D2Game.0478B566
0478B3E9   8B4424 10             MOV EAX,DWORD PTR SS:[ESP+10]
0478B3ED   85C0                  TEST EAX,EAX
0478B3EF   0F84 71010000         JE D2Game.0478B566
0478B3F5   55                    PUSH EBP
0478B3F6   6A 00                 PUSH 0
0478B3F8   6A 0C                 PUSH 0C
0478B3FA   56                    PUSH ESI
0478B3FB   E8 F0EFF1FF           CALL <JMP.&D2Common.#10061>
0478B400   8BE8                  MOV EBP,EAX
0478B402   85ED                  TEST EBP,EBP
0478B404   7F 05                 JG SHORT D2Game.0478B40B
0478B406   BD 01000000           MOV EBP,1
0478B40B   A1 F8FF7904           MOV EAX,DWORD PTR DS:[479FFF8]
0478B410   57                    PUSH EDI
0478B411   33FF                  XOR EDI,EDI
0478B413   3BC5                  CMP EAX,EBP
0478B415   7F 05                 JG SHORT D2Game.0478B41C
0478B417   BF 01000000           MOV EDI,1
0478B41C   392D 0C007A04         CMP DWORD PTR DS:[47A000C],EBP
0478B422   7F 01                 JG SHORT D2Game.0478B425
0478B424   47                    INC EDI
0478B425   392D 20007A04         CMP DWORD PTR DS:[47A0020],EBP
0478B42B   7F 01                 JG SHORT D2Game.0478B42E
0478B42D   47                    INC EDI
0478B42E   392D 34007A04         CMP DWORD PTR DS:[47A0034],EBP
0478B434   7F 01                 JG SHORT D2Game.0478B437
0478B436   47                    INC EDI
0478B437   392D 48007A04         CMP DWORD PTR DS:[47A0048],EBP
0478B43D   7F 01                 JG SHORT D2Game.0478B440
0478B43F   47                    INC EDI
0478B440   392D 5C007A04         CMP DWORD PTR DS:[47A005C],EBP
0478B446   7F 01                 JG SHORT D2Game.0478B449
0478B448   47                    INC EDI
0478B449   392D 70007A04         CMP DWORD PTR DS:[47A0070],EBP
0478B44F   7F 01                 JG SHORT D2Game.0478B452
0478B451   47                    INC EDI
0478B452   392D 84007A04         CMP DWORD PTR DS:[47A0084],EBP
0478B458   7F 01                 JG SHORT D2Game.0478B45B
0478B45A   47                    INC EDI
0478B45B   85FF                  TEST EDI,EDI
0478B45D   75 05                 JNZ SHORT D2Game.0478B464
0478B45F   BF 01000000           MOV EDI,1
0478B464   833E 01               CMP DWORD PTR DS:[ESI],1
0478B467   53                    PUSH EBX
0478B468   75 07                 JNZ SHORT D2Game.0478B471
0478B46A   8B46 14               MOV EAX,DWORD PTR DS:[ESI+14]
0478B46D   85C0                  TEST EAX,EAX
0478B46F   75 07                 JNZ SHORT D2Game.0478B478
0478B471   BB 06150000           MOV EBX,1506
0478B476   EB 04                 JMP SHORT D2Game.0478B47C
0478B478   66:8B58 14            MOV BX,WORD PTR DS:[EAX+14]
0478B47C   8D4C24 10             LEA ECX,DWORD PTR SS:[ESP+10]
0478B480   E8 77EFF1FF           CALL <JMP.&D2Common.#10508>
0478B485   0FB7D3                MOVZX EDX,BX
0478B488   8D4C24 10             LEA ECX,DWORD PTR SS:[ESP+10]
0478B48C   E8 7DEFF1FF           CALL <JMP.&D2Common.#10174>
0478B491   8BC7                  MOV EAX,EDI
0478B493   8D4C24 10             LEA ECX,DWORD PTR SS:[ESP+10]
0478B497   E8 A45BF1FF           CALL D2Game.046A1040
0478B49C   833E 01               CMP DWORD PTR DS:[ESI],1
0478B49F   5B                    POP EBX
0478B4A0   75 13                 JNZ SHORT D2Game.0478B4B5
0478B4A2   8B4E 14               MOV ECX,DWORD PTR DS:[ESI+14]
0478B4A5   85C9                  TEST ECX,ECX
0478B4A7   74 0C                 JE SHORT D2Game.0478B4B5
0478B4A9   66:8379 26 25         CMP WORD PTR DS:[ECX+26],25
0478B4AE   75 05                 JNZ SHORT D2Game.0478B4B5
0478B4B0   B8 05000000           MOV EAX,5
0478B4B5   817E 04 C0020000      CMP DWORD PTR DS:[ESI+4],2C0
0478B4BC   75 54                 JNZ SHORT D2Game.0478B512
0478B4BE   A1 88827904           MOV EAX,DWORD PTR DS:[<&D2Common.sgptDataTables>]
0478B4C3   8B08                  MOV ECX,DWORD PTR DS:[EAX]
0478B4C5   83B9 A00B0000 7B      CMP DWORD PTR DS:[ECX+BA0],7B
0478B4CC   7E 2E                 JLE SHORT D2Game.0478B4FC
0478B4CE   68 2B110000           PUSH 112B
0478B4D3   68 00D17904           PUSH D2Game.0479D100                                 ; ASCII "..\Source\D2Game\SKILLS\Skills.cpp"
0478B4D8   6A 01                 PUSH 1
0478B4DA   6A 14                 PUSH 14
0478B4DC   6A 7B                 PUSH 7B
0478B4DE   56                    PUSH ESI
0478B4DF   E8 94FAF1FF           CALL <JMP.&D2Common.#10255>
0478B4E4   56                    PUSH ESI
0478B4E5   E8 4AFFF1FF           CALL <JMP.&D2Common.#10421>
0478B4EA   833E 00               CMP DWORD PTR DS:[ESI],0
0478B4ED   75 0D                 JNZ SHORT D2Game.0478B4FC
0478B4EF   8B96 80000000         MOV EDX,DWORD PTR DS:[ESI+80]
0478B4F5   56                    PUSH ESI
0478B4F6   52                    PUSH EDX
0478B4F7   E8 7409F2FF           CALL D2Game.046ABE70
0478B4FC   6A FF                 PUSH -1
0478B4FE   6A 7B                 PUSH 7B
0478B500   8BCE                  MOV ECX,ESI
0478B502   33D2                  XOR EDX,EDX
0478B504   E8 1767F2FF           CALL D2Game.046B1C20
0478B509   5F                    POP EDI
0478B50A   5D                    POP EBP
0478B50B   5E                    POP ESI
0478B50C   83C4 08               ADD ESP,8
0478B50F   C2 0400               RETN 4
0478B512   8D3C80                LEA EDI,DWORD PTR DS:[EAX+EAX*4]
0478B515   C1E7 02               SHL EDI,2
0478B518   8B87 FCFF7904         MOV EAX,DWORD PTR DS:[EDI+479FFFC]
0478B51E   03C5                  ADD EAX,EBP
0478B520   0FAF87 00007A04       IMUL EAX,DWORD PTR DS:[EDI+47A0000]
0478B527   99                    CDQ
0478B528   F7BF 04007A04         IDIV DWORD PTR DS:[EDI+47A0004]
0478B52E   83F8 01               CMP EAX,1
0478B531   7F 07                 JG SHORT D2Game.0478B53A
0478B533   B8 01000000           MOV EAX,1
0478B538   EB 0A                 JMP SHORT D2Game.0478B544
0478B53A   83F8 63               CMP EAX,63
0478B53D   7C 05                 JL SHORT D2Game.0478B544
0478B53F   B8 63000000           MOV EAX,63
0478B544   6A 01                 PUSH 1
0478B546   50                    PUSH EAX
0478B547   8B87 08007A04         MOV EAX,DWORD PTR DS:[EDI+47A0008]
0478B54D   E8 4E36F2FF           CALL D2Game.046AEBA0
0478B552   8B87 08007A04         MOV EAX,DWORD PTR DS:[EDI+47A0008]
0478B558   6A FF                 PUSH -1
0478B55A   50                    PUSH EAX
0478B55B   8BCE                  MOV ECX,ESI
0478B55D   33D2                  XOR EDX,EDX
0478B55F   E8 BC66F2FF           CALL D2Game.046B1C20
0478B564   5F                    POP EDI
0478B565   5D                    POP EBP
0478B566   5E                    POP ESI
0478B567   83C4 08               ADD ESP,8
0478B56A   C2 0400               RETN 4

Bon plus de temps maintenant, je la lirai plus tard.
 
M

Myrdinn

Invité
Pour le 3E7. Nous n'avons jamais su si c'était un bug ou une correction de dernière minute pour désactiver l'aura. De toute façon E7 c'est pas beaucoup mieux ;)

Sinon très intéressant cette routine, je l'ai pas encore fait tourner dans ollydbg, mais j'ai reconnu une grande partie facilement.
Ca a changé un peu depuis la dernière fois que je l'ai vue. Il y a enormément de choses que l'on connait déjà apprise dans mon topic en cours.
 
U

ulmo

Invité
Bon il semble qu'on soit hors sujet, les numéros d'aptitudes (62...7B) sont ceux de paladin...
De plus, on sort de cette routine après le test en lignes 9-11, à peu prêt à chaque fois.

Dommage, j'ai passé pas mal de temps à lire ça. Au moins j'ai appris des choses (il y a des calculs de niveau d'aptitude, c'est sûr).
 
M

Myrdinn

Invité
Oui comme je le dis plus haut ce tableau est pour les auras.

Pour les malédictions c'est hardcodé dans la fonction de la malediction en question , je donne l'exemple pour maudit dans mon lien.
 
U

ulmo

Invité
Bon j'ai pas mal fouillé, et voici ce qu'il me semble :
Ce niveau est hardcodé dans une structure que je ne connais pas. En voici un dump :[fixed]4C 7C 0D 03 80 9E 58 04 08 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00
00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00[/fixed]En +28, on y trouve le 6 qui sera recopié comme skill level.
Je ne sais donc pas d'où vient ce niveau 6, mais en tout cas c'est toujours le même.

MonCurseCast (Malédictions des Chevalier de l'Oubli) :
Au hasard (équiprobable) entre :
*Amplify Damage
*Weaken
*Iron Maiden
*Life Tap
*Decrepify
*Lower Resist

Niveau :
*Normal 3
*Cauchemar 6
*Enfer 9
 
U

ulmo

Invité
Mes questions maintenant :
[*]Quelle est cette structure bizzare ?
[*]D'où viennent les noms des fonctions (D2Common.#11147) ?
[*]Les *.dll ne sont pas toujours chargées à la même adresse. Comment fait le code pour s'adapter (référence à une table, saut à une adresse) ?
 
V

Valentin3

Invité
[quotemsg=4690256,15,15562]MonCurseCast (Malédictions des Chevalier de l'Oubli) :
Au hasard (équiprobable) entre :
*Amplify Damage
*Weaken
*Iron Maiden
*Life Tap
*Decrepify
*Lower Resist

Niveau :
*Normal 3
*Cauchemar 6
*Enfer 9[/quotemsg]

Pas telement sure que ce soit équiprobable, IM se lance très souvant, Lower resist et decrepify aussi, je ne vois presque jamais amplify et weaken plus trop depuis 1.11
 
U

ulmo

Invité
[quotemsg=4690271,17,36050]Pas telement sure que ce soit équiprobable[/quotemsg]Sisi :
Code:
0472BF08   8B46 20          MOV EAX,DWORD PTR DS:[ESI+20]
0472BF0B   894C24 0C        MOV DWORD PTR SS:[ESP+C],ECX
0472BF0F   B9 C590C66A      MOV ECX,6AC690C5
0472BF14   F7E1             MUL ECX
0472BF16   8B4E 24          MOV ECX,DWORD PTR DS:[ESI+24]
0472BF19   57               PUSH EDI
0472BF1A   33FF             XOR EDI,EDI
0472BF1C   03C1             ADD EAX,ECX
0472BF1E   13D7             ADC EDX,EDI
0472BF20   8956 24          MOV DWORD PTR DS:[ESI+24],EDX
0472BF23   33D2             XOR EDX,EDX
0472BF25   8946 20          MOV DWORD PTR DS:[ESI+20],EAX
0472BF28   B9 06000000      MOV ECX,6
0472BF2D   F7F1             DIV ECX
0472BF2F   8B2C95 5CBF7904  MOV EBP,DWORD PTR DS:[EDX*4+479BF5C]
Lignes 1-12 : tirage aléatoire (avec le générateur du monstre)
Lignes 13-14 : EDX vaut le reste modulo 6 de ce nombre aléatoire
Ligne 15 : EDX utilisé pour choisir la malédiction

 
C

CHAKAN

Invité
[quotemsg=4690256,15,15562]
MonCurseCast (Malédictions des Chevalier de l'Oubli) :
Au hasard (équiprobable) entre :
*Amplify Damage
*Weaken
*Iron Maiden
*Life Tap
*Decrepify
*Lower Resist

Niveau :
*Normal 3
*Cauchemar 6
*Enfer 9[/quotemsg]

un grand merci a vous :)
me reste plus qu'a déterminer le fonctionnement exact de dame de fer
(pour déterminer a combien de coups j'ai droit avant de :rip:)
puis je vais pas tarder à partir lilithrunner :sol:
 
B

Bygirz

Invité
[quotemsg=4690067,12,92][...][/quotemsg]

[quotemsg=4690151,13,15562][...][/quotemsg]

Grrr.
Ca c'est comme le truc de la pénalité de leech avec un arc ou une arbalète...

Je croyais ces infos sûre puisque sorties tout droit de la bible de Myrdinn sur les mécanismes du jeu (que j'ai lu en entier en arrivant sur le forum), alors qu'en fait elle viennent certainement d'un vieux guide sur le site portail (que je fréquentais avant de venir sur le forum :ack: ).

Bref, méa culpa, je devrai revérifier mes sources à chaque fois pour les questions plutôt rares...
 
Haut