2 votes

Calcul des dommages causés par Idle Heroes

J'essaie de comprendre comment les dégâts sont calculés dans un jeu, mais je n'y suis pas parvenu. Je ne suis pas sûr que ce soit la bonne plateforme pour poser cette question. Si ce n'est pas le cas, veuillez me le faire savoir dans les commentaires et je supprimerai immédiatement la question.

Je l'ai testé avec 3 personnages, en combattant 2 autres personnages séparément.

DMG        damage done to defender  
ATTACK     attack power of the attacker  
ARMOR      total amount of armor of the defender  
LVL        lvl of the defender
REDUCTION  total amount of dmg reduced (ATTACK - DMG)

Les données sont les suivantes :

          DMG     ATTACK    ARMOR    LVL  REDUCTION
Norma    9.142    13.342    1.064    160    4.200
OD-01    4.305     6.284    1.064    160    1.979
Vesas    3.222     4.703    1.064    160    1.481

Norma    9.674    13.342    1.039    180    3.668
OD-01    4.556     6.284    1.039    180    1.728

Quelqu'un a fait remarquer que la formule devrait être à peu près la suivante :

reduction in % = ARMOR / (200 + LVL \* 20)

Mais cette formule est légèrement erronée et j'espérais pouvoir trouver la formule exacte pour calculer les dommages. Quelqu'un a-t-il une idée de la façon dont le DMG est calculé à partir de l'ATTAQUE, de l'ARMOR et du NVL ?

1voto

Alexander Mays Points 111

EDIT : Il s'avère que la formule que vous aviez à l'origine était juste un peu fausse, donc tout ce qui suit était un peu exagéré XD. Oh, mais je me suis amusé à y réfléchir. La formule actuelle est

    reduction in % = ARMOR / (180 + LVL \* 25)

ORIGINAL : Personne d'autre n'a offert de réponses pour vous, alors bien que je ne puisse pas vous donner une réponse, je peux vous offrir un aperçu de la façon dont vous pouvez y répondre vous-même. C'est plus une divagation hypothétique qu'une réponse éducative, alors continuez à lire si vous le désirez.

Bien que je n'aie pas de solution à votre question (j'aimerais en avoir une, mais les développeurs gardent les détails très bien cachés), j'ai une suggestion sur la façon dont vous pouvez essayer de la résoudre. Je suggère tout d'abord de supposer que l'erreur provient du fait que les constantes utilisées dans la formule ont des valeurs différentes de celles supposées à l'origine. Nous supposons le format de la fonction générique que vous avez citée (avec les constantes base & mult, et les variables ARMOR & LVL) :

    reduction in % = ARMOR / (base + LVL \* mult)

L'opinion générale est que les constantes ont des valeurs proches de celles de l'UE.

base = 200
mult = 20

Par exemple, la formule est peut-être plus proche de

    reduction in % = ARMOR / (180 + LVL \* 25)

La valeur de mult (en gardant à l'esprit les fourchettes de niveaux typiques de 140-200), le ratio de base par rapport à des gammes d'armures typiques, et le rapport de base contre mult Il s'agit de relations importantes qui déterminent les détails du fonctionnement de la formule.

Vous pouvez tenter d'inverser ces relations si vous trouvez les bonnes batailles. (Le meilleur moyen, j'imagine, serait de travailler avec un ami [ou un compte de dupe] et de faire des combats de VS, de cette façon vous pouvez contrôler les héros des deux côtés d'un combat, ET vous pouvez trouver ou définir les stats de toutes les unités impliquées).

Si vous pouvez trouver un moyen de modifier une variable à la fois, il est possible de reconstituer la vraie formule (ou du moins une formule beaucoup plus précise).

Attaquer une variété de héros LVL 1 avec différentes valeurs d'armure peut éventuellement trouver une relation définissant base Des héros attaquant avec la même valeur d'armure mais ayant des LVL différents peuvent éventuellement trouver une relation pour mult .

Vous pouvez aller plus loin, en comparant éventuellement deux héros avec armure identique mais Différentes LVL basses (ex. LVL 1 v LVL 2) ; PUIS un autre test sur deux héros avec armure égale mais des LVL de hauteur différente (ex. LVL 99 v LVL 100) ; et en utilisant toute comparaison entre les deux situations pour essayer de dériver le rapport de base contre mult .

Si la structure de la formule des dommages réels s'avère être entièrement différente de l'hypothèse,

    reduction in % = ARMOR / (base + LVL \* mult)

la structure, les paramètres et les opérations qui façonnent la vraie formule peuvent encore être trouvés de manière concise puis reconstitués si vous parvenez à effectuer des tests avec une seule variable.

Si vous ne pouvez pas faire varier une seule variable, il devient immensément plus complexe d'essayer de dériver des relations à partir de deux variables, même si cela peut toujours être fait avec des compétences suffisantes dans le domaine mathématique approprié. Cela peut être simplifié si vous pouvez trouver deux variables qui sont déjà étroitement liées (comme l'augmentation de l'armure avec chaque LVLup), car vous pouvez être en mesure de traiter les deux comme une seule variable composée.

Afin de lancer quelques idées et suggestions, judicieuses ou non, voici quelques idées de relations qui pourraient avoir un rapport avec le fonctionnement des formules réelles (il y a pas de Je n'ai aucune preuve de ce que j'avance, je l'ai inventé dans ma tête. Ils pourrait avoir raison, qui sait ?) :

NOTE: the character '' means "is proportional to"
(Many of these are just a relation, not a whole formula.  The values of these
might be plugged into another function to get the equivalent % reduction)
    reduction  (ARMOR + LVL \* mult)
    reduction  (mult \* LVL - base + ARMOR) / LVL
    reduction  (LVL - base + ARMOR) / (mult \* LVL)
    reduction  (mult \* LVL + (-base + ARMOR)^(3/2)) / LVL
    reduction  (mult \* LVL + (-base + ARMOR)^(3/2)) / (mult \* LVL)
    reduction  (LVL + (-base + ARMOR)^(3/2)) / (mult \* LVL)
    reduction = (ARMOR\* (ARMOR/(6\*LVL))^(3/2) / (200 + 20 LVL)

    reductionPercent = sqrt((LVL+100)/200)\*10\*e^((ARMOR/(6\*LVL))^(3/2))

J'ai passé un peu de temps à "inventer" la dernière formule. La constante exponentielle e a une valeur de 2,72, en multipliant par 10, on obtient 27,3 qui, en pourcentage, est très proche de la résistance de base (environ 1/4). Donc la fonction ci-dessus donne un pourcentage à partir d'une fonction exponentielle (où l'exposant est basé sur le rapport de l'ARMOR à une valeur d'armure typique), multiplié par dix, puis multiplié par un autre terme basé uniquement sur le niveau du héros.

Elle n'est pas liée à la formule des dégâts réels, mais plutôt à une formule alternative qui exagère l'efficacité d'une armure supplémentaire. (si le jeu utilisait cette formule, je pourrais essayer d'opter pour des héros blindés pour une fois)

En raison des ressources limitées disponibles dans le jeu, il n'y a pas grand-chose à faire pour obtenir une formule plus précise, à part une expérimentation rigoureuse dans le jeu ou l'utilisation de différentes formes de fonctions pour essayer de trouver celle qui correspond à ce qui est observé.

Malheureusement, je n'ai pas d'ami avec qui coopérer, ni les ressources pour pouvoir expérimenter moi-même, mais si vous voulez VRAIMENT savoir, vous pouvez toujours essayer de trouver la réponse vous-même.

Si vous arrivez à résoudre certaines des formules du jeu, n'oubliez pas de partager cette sagesse avec le reste d'entre nous ? ;D

EDIT SUPPLEMENTAIRE : Le compte avec lequel ce commentaire a été posté n'est plus utilisé, mon compte principal est désormais le suivant https://gaming.stackexchange.com/users/243096/abmays?tab=profile . Si vous avez des questions, contactez ce compte.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X