Tracer les DLLs - Fonction de calcul des dégats physiques

K

kaizel

Invité
enfait je comprend vite mais faut m'expliqué longtemps :p
et surtout faudrais que je relise bien tous les sujet tranquillement pour partir sur de bonne base :)
 
P

Priam

Invité
Bon alors déjà bravo et merci pour tout ce boulot très instructif :clap:


Sinon après une première lecture de tout ça j'ai quelques questions qui me viennent :D


Provient du message de Myrdinn

Dégats mini(MINI)= Dégats base mini + (1+(ED%+MIN%ED)/100)
Dégats Max=Dégats base max(MAX) + (1+(ED%+MAX%ED)/100)
ED%=ED%(force)+ED%(dextérité)+ED%(skill)+ED%(Maitrise)
Dégat de base mini= [(Degat mini de l'arme+ Booléen(ED>0?)) x ED%(Arme)] + Somme des "+dégats mini" de tout l'equipement (Arme inclus)
Dégats de base maxi=[(Degat max de l'arme+ Booléen(ED>0) X ED%(Arme)] + Somme des "+ dégats max" de tout l'equipement (Arme inclus)

Bon alors déjà si j'ai bien compris, pour
Dégats mini(MINI)= Dégats base mini + (1+(ED%+MIN%ED)/100) il devrait plutôt y avoir une multiplication
Dégats mini(MINI)= Dégats base mini * (1+(ED%+MIN%ED)/100)
plutôt qu'une addition, et pareil pour les dégâts maxi?

Et sinon, toujours si j'ai bien compris, en pratique on a toujours MIN%ED=MAX%ED=0 ?

Sinon je ne comprends pas à quoi correspond Booléen(ED>0?) dans tes formules (je ne parviens pas à trouver dans tes posts où tu en parles, mais je me trompe sans doute :p)



Pas la peine non plus de faire une formule compliquée du style .
Ce n'est pas comme ca que le jeu gère les dégats.
[...]
Alors pourquoi une formule si compliquée reprise par tous?
C'est le résultat de l'empirisme.
Comme la formule n'est basée que sur des tests, on ne sait pas toujours comment agancer les différents composants. En plus comme tout n'a pas été testé on evite soigneusement de donner les Détails (ED% sur équipement OK mais ou intervient la maitrise, le skill ... dans cette formule). De plus elle omet par défaut tout ce que l'on a pas pu testé, résultat sous certaines conditions elle devient fausse.
[...]
La vraie formule je le connais depuis le début de LOD grace à Jarulf, Quand je lisais l'autreformule je rigolais doucement, cependant si je vous avais dit Non c'est tout simple on applique les ED% sur les dégats de base comme un pourcentage (Par définition), peu de personne m'aurait cru.

Très franchement, je ne vois pas trop ce que tu reproches à la formule empirique... (de manière générale; je ne parle pas des cas particuliers où elle est fausse)

En effet elle me semble équivalente à celle que tu donnes :confused: (même si StatsBonus par exemple est déjà intégré dans le ED%, ou les dégats min ou max sont séparés entre ceux sur l'arme et ceux sur l'équipement, et quant aux bonus en %ED apportés par les skills la formule empirique précise bien qu'ils doivent être intégrés au %ED...)
Enfin ce n'est pas trop le sujet de la discussion ici ;)


Je me demande aussi où sont gérés les dégâts ajoutés spécifiquement aux démons ou aux morts-vivants, ainsi que les dégâts élémentaires, ainsi que ce qui se passe lorsque les dégâts max sont inférieurs aux dégâts min (j'ai eu des résultats très bizarres en combinant des dégâts max inférieurs aux dégâts min, couplé à la présence de dégâts élémentaires, qui m'ont donné l'impression qu'ajouter des dégâts élémentaires diminuait les dégâts physiques...)


Bon j'aurais sûrement d'autres questions, mais je vais m'arrêter là pour l'instant et relire tout ça pour voir ce qui m'a échappé :D

Merci encore pour ce topic (et les autres :razz: )
 
W

wakestorm

Invité
@Mirdynn Merci, mais bon, je doute que si quelqu'un regarde tout le post, nos deux posts l'encouragent

@Paul Ok, merci, je savait pas qu'il n'y avait que 2 pipeline
 
C

cestbienmoi

Invité
Wha, Super, j'ai compris à 95% :evil:

Mais je ne sais pas pq tu tires à la fin sur les formules empiriques de savoir si l'ordi en final fait (A+B)+(C+D) ou (A+D)+(B+C) franchement, c'est se chatouiller pour se faire rire.

Par contre les bonus sur les démons et morts vivants seraient-ils cachés dans la célèbre D2Common.dll 11023. car je les vois pas :evil:
 
M

Myrdinn

Invité
Provient du message de Priam
Bon alors déjà bravo et merci pour tout ce boulot très instructif
Sinon après une première lecture de tout ça j'ai quelques questions qui me viennent
Un grand merci à toi car tu as posé la majorité des questions que j'attendais :)

Bon alors déjà si j'ai bien compris, pour
Dégats mini(MINI)= Dégats base mini + (1+(ED%+MIN%ED)/100) il devrait plutôt y avoir une multiplication
Dégats mini(MINI)= Dégats base mini * (1+(ED%+MIN%ED)/100)
plutôt qu'une addition, et pareil pour les dégâts maxi?

Exact j'ai edité en conséquence ;)

Et sinon, toujours si j'ai bien compris, en pratique on a toujours MIN%ED=MAX%ED=0 ?

Encore exact ainsi que les STATS_NORMALDAMAGE finaux

Sinon je ne comprends pas à quoi correspond Booléen(ED>0?) dans tes formules (je ne parviens pas à trouver dans tes posts où tu en parles, mais je me trompe sans doute :p)

C'est fait exprès. Un booléen vaut 0(faux) ou 1(vrai). Dans ce cas la question est ED%(Arme)>0?
Donc si tu n'a pas d'ED MINI=Base Mini + "+to minimum damage"
Autrement MINI=(Base mini + 1) x ED% + "+to minimum damage"
D'ailleurs en réalité c'est plus compliqé que ça mais je ne veux pas en dire plus sur cette partie pour l'instant.


Très franchement, je ne vois pas trop ce que tu reproches à la formule empirique... (de manière générale; je ne parle pas des cas particuliers où elle est fausse)

En effet elle me semble équivalente à celle que tu donnes :confused: (même si StatsBonus par exemple est déjà intégré dans le ED%, ou les dégats min ou max sont séparés entre ceux sur l'arme et ceux sur l'équipement, et quant aux bonus en %ED apportés par les skills la formule empirique précise bien qu'ils doivent être intégrés au %ED...)
Enfin ce n'est pas trop le sujet de la discussion ici ;)

Rien c'est de la méchanceté gratuite :evil:
Non elle est juste empirique, séparé les +Damage sur arme et armure n'a pas de sens d'un point de vue jeu.LE jeu ne gère pas les dégats de cette façon.
Sinon en réalité je suis assez admiratif car cette formule est assez dure à trouver et représente probablement de nombreuses heures de test.
Autrement je pense que j'ai quasiment terminé avec la gestion réelle de l'IAS, la je serais plus méchant avec la gestion des cas particuliers.


Je me demande aussi où sont gérés les dégâts ajoutés spécifiquement aux démons ou aux morts-vivants, ainsi que les dégâts élémentaires, ainsi que ce qui se passe lorsque les dégâts max sont inférieurs aux dégâts min (j'ai eu des résultats très bizarres en combinant des dégâts max inférieurs aux dégâts min, couplé à la présence de dégâts élémentaires, qui m'ont donné l'impression qu'ajouter des dégâts élémentaires diminuait les dégâts physiques...)
Ca vient juste après cette fonction. Si j'en ai le courage et si vous êtes toujours intéressés nous le verrons en détails. Pour ne pas faire de retention d'information je vais de te donner quelques réponses rapidement.
A la fin de notre fonction, ce n'est plus une fourchette de dégats qui s'applique mais un dégat "effectif". Ce dégats peut être doublé dans la section qui suit (CoupCritiqueAMA/coup mortel/coup critique Maitrise) . Ensuite le jeu gère les dégats élémentaires et les +ED% au démon et MortVivant qui s'appliquent sur les dégats physiques totaux, donc contrairement aux autres ED% il ne s'additionnent pas, c'est beaucoup plus puissant.
Sinon il n'y a pas d'intéraction DMG Physiques/DMG Elementaires, de mémoire le jeu ne permet pas les dégats élémentaires négatifs. Concernant les dégats physiques, la fonction gère déja Degats Max< Dégats mini.



Bon j'aurais sûrement d'autres questions, mais je vais m'arrêter là pour l'instant et relire tout ça pour voir ce qui m'a échappé :D

Merci encore pour ce topic (et les autres :razz: )
Tu es le bienvenu ;)
 
M

Myrdinn

Invité
Provient du message de cestbienmoi
Wha, Super, j'ai compris à 95% :evil:
Belle performance :lol:

Mais je ne sais pas pq tu tires à la fin sur les formules empiriques de savoir si l'ordi en final fait (A+B)+(C+D) ou (A+D)+(B+C) franchement, c'est se chatouiller pour se faire rire.

Par contre les bonus sur les démons et morts vivants seraient-ils cachés dans la célèbre D2Common.dll 11023. car je les vois pas :evil:
J'ai déjà répondu. MAis je vais quand même rajouter une couche.

- Je n'ai pas grand chose contre les formules empriques quand elles sont bonnes en faite. C'est le cas ici et également pour la base de l'IAS. Je préfère personnellement la vraie formule quand je la trouve :rolleyes: et ca m'amuse de comparer les 2 :D.
- Le problème c'est qu'au prochain patch (ne rigolez pas) si blizzard active les nouvelles propriétés, les formules empiriques risque d'être incomplètes (C'est d'ailleurs le problème de l'ias qui a l'époque ou la formule a été découverte etait quasi complète).
Alors que les formules n'ont pas été changées depuis le début de LOD et risque de rester les mêmes.
- Ce n'est pas un simple facteur associatif ou distributif dans notre cas.
Minimum Damage = (Weapon Minimum Damage + (+x To Minimum Damage)) * (1 + StatsBonus + (+x% Enhanced Damage) / 100) reste complexe, ma formule également d'ailleurs.
Ce que montre ce post et qu'il faut retenir c'est qu'en réaltié c'est géré exactement comme le reste du jeu (Mana HP ...) C'est d'abord les +X qui s'appliquent puis les +x% (Sachant que les x% s'additionnent), la seule différence vient du %ED des armes qui s'appliquent directement sur les dégats de base
Même si je montre ne détails que les %ED s'additionnent, il n'y a pas de Formules paritculières à retenir, c'est du bon sens. Mais bon apparemment j'ai mal fait passé le message :lol:
Les %ED contre démon et mort vivant ne sont pas du même type, c'est pourquoi il ne s'appliquent pas au même endroit
 
W

wakestorm

Invité
un grand :clap: a Priam qui découvre les erreurs (mais normalement, Myrdinn doit sire : "je l'ai fait exprès pour voire si vous suiviez :lol: )

edit : ça fait bizarre mais petites phrases dans un topic ultra-scientifique :lol:

edit2 : @Myrdinn j'efface mon premier message ? ou je le laisse ?
 
M

Myrdinn

Invité
Provient du message de Wakestorm
un grand :clap: a Priam qui découvre les erreurs (mais normalement, Myrdinn doit sire : "je l'ai fait exprès pour voire si vous suiviez :lol: )
Bon les + c'est une faute de frappe dont je suis coutumiers :D le reste c'est fait exprès :lol:

edit : ça fait bizarre mais petites phrases dans un topic ultra-scientifique :lol:

edit2 : @Myrdinn j'efface mon premier message ? ou je le laisse ?
Non n'efface rien, il n'y a vraiment pas de mal.
 
P

Priam

Invité
Provient du message de Myrdinn
Un grand merci à toi car tu as posé la majorité des questions que j'attendais :)
:o

Autrement je pense que j'ai quasiment terminé avec la gestion réelle de l'IAS, la je serais plus méchant avec la gestion des cas particuliers.
Voilà qui met sérieusement l'eau à la bouche :D

Ca vient juste après cette fonction. Si j'en ai le courage et si vous êtes toujours intéressés nous le verrons en détails.
Bon alors pour ma part je suis TOUJOURS intéressé par tes posts, donc ne perds pas courage :D
Sinon c'est sûr que pour quelqu'un qui n'a pas de base en informatique ou même simplement en assembleur ça doit être assez rebutant (quoique tes explications "en clair" me semblent assez claires ;)) mais c'est sûr que certains doivent passer à côté :razz:
Enfin tu as toujours des lecteurs impatients ;)

A la fin de notre fonction, ce n'est plus une fourchette de dégats qui s'applique mais un dégat "effectif". Ce dégats peut être doublé dans la section qui suit (CoupCritiqueAMA/coup mortel/coup critique Maitrise) . Ensuite le jeu gère les dégats élémentaires et les +ED% au démon et MortVivant qui s'appliquent sur les dégats physiques totaux, donc contrairement aux autres ED% il ne s'additionnent pas, c'est beaucoup plus puissant.
effectivement si les +ED% aux démons et morts-vivants agissent sur les dégâts physiques totaux ils sont beaucoup plus puissants que ce qu'on peut s'imaginer :eek:
Mais qu'en est-il des +ED% contre démons ou morts-vivants qui sont directement sur l'arme?

Sinon il n'y a pas d'intéraction DMG Physiques/DMG Elementaires, de mémoire le jeu ne permet pas les dégats élémentaires négatifs. Concernant les dégats physiques, la fonction gère déja Degats Max< Dégats mini.

Bon alors je vais détailler ce que j'avais vu (je ne me souviens pas des chifres exacts donc je prends un exemple bidon et simplifié ;))

J'avais une arme faisant 15-20 de dégâts de base, +15 aux dégâts min et +1-100 en dommages par la foudre.

Sur l'arme le jeu affichait des dommages de 30-31 (jusque-là je comprends le cheminement, bien que j'aie cru comprendre que les dégâts réellement infligés ne se calculaient pas ainsi)
Mais en équipant cette arme (et en supposant que j'avais par exemple 100%ED tout compris, et aucun dégât min ou max en plus de l'arme), j'aurais pensé que je ferais 60-62 (ou plutôt sans doute 60-61) en dommages physiques, ce qui aurait donné 61-161 de dégâts à l'affichage.

Or le jeu n'affichait que 61-140, donc comme si les dégâts physiques ne suivaient pas la condition dégâts max>dégâts min.

Suite à tout ce que tu as dit sur ce topic, je pense que le problème ne doit venir que de l'affichage, car sinon cela voudrait dire que les dégâts élémentaires ajoutés par l'arme le seraient au détriment des dégâts physiques...
Mais ton avis m'intéresse :razz:
 
M

Myrdinn

Invité
JE n'ai jamais regardé en détails la section affichage, mais d'expérience (Comprendre empirisme :D) elle est truffée de bug. Ce n'est pas la même routine que celle du combat, car le combat est morcelé et je pense qu'elle n'a pas toujours été mise à jour, que ce soit les dégats, le block sur les boucliers, les dégats de poison à une époque ... il y a beaucoup d'erreur malheureusement. A voir si je peux faire un patch correctif pour la partie D2Client.dll (A ajouter dans ma TODO list :lol: )


Concernant les +ED% Vs Démon et Morts vivants.
Comme toutes les propriétés (Cf itemstatcost.txt) qui sont identiques elles s'additionnent.

A ma connaisance il y a 3 exceptions implémentées par blizzard.
1) les +ED% sur les armes qui affectent directement les dégats de base de l'arme et ne sont pas tranférés sur l'objet personnage.
2) Les GetHitSkill
3) Les AttackSkill et HitSkill qui sont gérés 1 par 1 indépendemment les uns des autres.
 
C

cestbienmoi

Invité
Ensuite le jeu gère les dégats élémentaires et les +ED% au démon et MortVivant qui s'appliquent sur les dégats physiques totaux, donc contrairement aux autres ED% il ne s'additionnent pas, c'est beaucoup plus puissant.
Heu :confused: justement cela n'avait-il pas été changé dans 1.09, d'ailleurs j'avais posé la question sur IK, je me souviens que tu n'avais pas contredit le fait qu'il s'ajoutait comme les %ED ailleurs que sur l'arme, stut ?
 
M

Myrdinn

Invité
Provient du message de cestbienmoi
Heu :confused: justement cela n'avait-il pas été changé dans 1.09, d'ailleurs j'avais posé la question sur IK, je me souviens que tu n'avais pas contredit le fait qu'il s'ajoutait comme les %ED ailleurs que sur l'arme, stut ?
J'en suis sur. C'est vrai qu'à l'époque je n'étais pas sur de ce qu'il en était avec la 1.09. Seulement maintenant que j'ai pris la peine de tracer la routine de combat, c'est certain.
D'ailleurs tu ne tarderas pas à le voir par toi même dans le prochain Trace.
 
F

fou

Invité
je peux vous poser une question ? ou vous trouvez le courrage de lire tout ca :eek: :eek: :eek: piouuffff, dailleurs, une question comme ca, ca parle de quoi ? :rolleyes:
 
M

Myrdinn

Invité
Bon une toute petite mise à jour du post. Ca ne le rendra pas plus facile pour toi fou :lol:

Puis le plaisir d'avoir découvert que le VBCode [code) ... (/code] fonctionne sur les forums :clap: (Avec des vrais [] evidemment)

Si vous êtes prêts on devrait bientôt passer à la suite.
 
D

Dreddy

Invité
A cause du boulot, j'ai pris un peu de retard (et je n'ai pu intervenir sur ce post, mais je pense que toutes les bonnes questions ont été posées ;) ), mais je suis tout ouïe pour la suite :)
 
M

Myrdinn

Invité
Provient du message de Dreddy
, mais je pense que toutes les bonnes questions ont été posées ;) ),
Hum on voit que Tiissa n'est pas passé par la :lol:

Vous n'etes pas exigeant ca va, j'en dirais plus plus tard
 
B

BlueTemplar

Invité
Aspirine POWER ! :D
Bon vu la longueur, le contenu et l'heure (23:30) je lirais ça une autre fois...
 
Haut