Voici un petit tutoriel qui concerne les formules de combat sous RPG Maker XP.
Auteur: Furya et ASHKA de RPG CréativeLES FORMULES DE COMBAT DE RMXP
Qu'allons nous étudier?Nous allons passer en revue les
formules de combat qui se trouvent dans les scripts de
RPG Maker XP.
Cela concerne par exemple les formules de dégâts, mais également celles des coups critiques ou encore de l'esquive.
Nous prendrons à chaque fois un ou deux exemples pour s'assurer que la formule est bien comprise.
Je vous invite à effectuer quelques tests au fur et à mesure que vous avancerez à travers votre lecture.
Que dois je savoir pour comprendre ces formules?Rien qui concerne particulièrement RPG Maker. Juste un peu de maths.
PREMIER CALCUL DE COUP
Ce calcul correspond au fait que vous portiez votre attaque avec succès ou non. Elle ne fait pas intervenir la cible.
- Code:
-
hit_result = (rand(100) < attacker.hit)
Une valeur est tirée au hasard (entre 0 et 99), et doit être inférieur à l'attacker hit pour que le coup réussisse.
Cette valeur hit est de 100, mais modifiée par le statut.
Ne retenez donc que ceci:
- Si aucun statut particulier, on a 99% de chances de réussir notre attaque.
- Si un statut intervient, comme "obscurité", on implique simplement le modificateur de précision (lire la suite).
Pour les compétences, ça fonctionne de la même façon, mais on applique la précision de la compétence.
Pour les objets, la précision fonctionne de la même manière.
Exemple:- Jean-Pierre est sous le statut "Aveuglement". Ce statut implique une précision de 50%.
Il n'a donc plus que 50% de chances de réussir son attaque.
- Marcel utilise la compétence "Coup Puissant". Cette compétence lui confère de meilleurs dégâts, mais baisse sa précision.
La valeur précision de la compétence est de 90%.
Marcel n'a donc que 90% de chances de réussir un coup puissant, mais 99% de chances de réussir un coup normal.COUP CRITIQUE
La formule est très simple:
- Code:
-
Attaque normale
Chance de coup critique = 4 × dextérité de A ÷ l'agilité de B
Compétence
Chance de coup critique = 0
Objet
Chance de coup critique = 0
Il n'y a rien à ajouter. Constatez simplement que si la dextérité de A est égale à l'agilité de B,
alors A aura 4% de chances de faire un coup critique.
CALCUL DES DEGATS
Attaque Normale - Code:
-
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk * (20 + attacker.str) / 20
Alors, attacker.atk, c'est la valeur d'attaque de votre arme.
(ATTENTION: Certaines commandes de rmxp en français utilise le terme d'attaque pour désigner la force.)
self.pdef, c'est la défense physique de votre cible, donc ses armures.
On la divise par deux.
On a donc notre valeur atk, maintenant la force va intervenir.
- Code:
-
atk * (20 + attacker.str) / 20
qui signifie bien sur:
atk X (20 + Force de l'attaquant) / 20
Voici la formule complète, traduite:
On suppose que A attaque B:
- Code:
-
Dégâts = [Attaque de l'arme de A - (Defense physique de B / 2)] X [(20 + Force de A) / 20]
Exemple:Raoul attaque MonstrePabo, voici leur statistiques:
Raoul a 50 en Force et utilise une épée (attaque 8 ).
Monstrepabo porte une armure lourde qui lui donne 8 en défense physique.
Dégâts de Raoul = 4 X 3,5 = 14Pour les compétences, c'est un peu différent.
Ouvrez la base de donnée pour visualisez l'onglet des compétences.
Nous allons calculer la Puissance de la compétence utilisée.
Pour cela nous aurons besoin:
- du Taux d'effet, vous devriez le voir à peu près au milieu de l'écran.
- de l'attaque de A, nous la connaissons, c'est en fait l'attaque de l'arme de A (Raoul a 8 en attaque avec son épée).
- de la puissance d'attaque de la compétence.
Vous voyez en bas de la fenêtre, "Influence des Caractéristiques sur le Taux d'Effet"? Et bien c'est la case attaque.
- de la défense physique ainsi que la défense magique de la compétence, tout comme ci dessus.
Allons y, calculons la puissance:
- Code:
-
Puissance = Taux d'effet + [(Attaque de A X Puissance d'attaque de la compétence) / 100] - [(Def B X Def Phys de la compétence) / 200]
- [(Def B X Def Mag de la compétence) / 200]
Vous comprenez? On multiplie l'attaque de l'arme par celle de la compétence, puis on divise par 100.
Donc si la compétence a 100 dans la case Attaque de la compétence, on aura Attaque de A X 100 / 100. C'est une compétence de combat.
Si je veux créer un sort, je mettrais 0 dans la case attaque. Comme ça l'attaque de l'arme ne sera pas prise en compte.
Pour la défense physique et magique, c'est pareil. Sauf qu'on divise par 200. Souvenez vous pour l'attaque normale on divisait la défense par 2.
Donc si je mets 0 dans les cases Défense Physique et Défense Magique de la compétence, on aura une attaque qui traverse l'armure de la cible.
Note: Si l'estimation d'effet est négative ou nul,( Taux d'effet + [(Attaque de A X Puissance d'attaque de la compétence) / 100] )
Alors on a à faire à une magie de soin, la défense n'est pas appliquée rassurez vous (votre armure ne réduira pas les soins).
Ensuite nous appliquons ceci:
- Code:
-
rate = 20
rate += (user.str * skill.str_f / 100)
rate += (user.dex * skill.dex_f / 100)
rate += (user.agi * skill.agi_f / 100)
rate += (user.int * skill.int_f / 100)
self.damage = power * rate / 20
Alors,
dégâts = Puissance (nous venons de la calculer ^^) divisé par rate X 20.
Rate est égale à : 20 + (Force de l'utilisateur X Force de la compétence / 100).
Ca vous rappelle quelque chose? Et oui, c'est comme pour l'attaque de la compétence. On décide quelles statistiques influeront sur les dégâts,
et avec quelle ampleur.
Si je mets 100 dans la case Force de la compétence, 100% de la force sera prise en compte.
Ensuite il faut appliquer quelques derniers modificateurs.
Les résistances de la cibles, si l'attaque est du même Attribut:
- Code:
-
A:200%, B:150%, C:100%, D:50%, E:0%, F:-100%
Le C subit les dégâts normalement, tandis que le F en prend plein la tronche.
Si il y a coup critique, on multiplie les dégâts par 2.
Si la cible se défend, on divise les dégâts par 2.
Ouf, c'est fini pour les dégâts.
Mais, on a vu dans la première partie, un premier calcul de coup.
Voici donc le deuxième.
Dans le premier calcul de coup, nous avons fait un calcul pour savoir si l'attaque de l'attaquant réussissait.
Il s'agit maintenant pour la cible, de tenter une esquive.
SECOND CALCUL DE COUP
On suppose que A attaque B, et que A a réussi son premier calcul de coup.
B Tente d'esquiver.
Quand les dégâts sont positifs:
Quand l'état de B est normal:
- Code:
-
Chance d'évasion = 8 × agilité de B ÷ dextérité de A + correction d'évasion de B
Alors, voici un nouveau terme. Correction d'évasion.
C'est tout simplement la valeur dans la case Esquive du monstre dans la base de données, modifiée éventuellement par des statuts qui réduiraient l'esquive.
- Code:
-
Attaque normale
Chance de coup = 100 - chance d'évasion
Compétence
Taux de succès = 100 - (chance d'évasion × évasion de la comptétence de F ÷ 100)
Voilà, pour l'attaque normale c'est très clair.
Pour la compétence, cela fonctionne de la même manière que pour les dégâts.
Si on met 100 dans la case esquive de la compétence, cela ne change rien. Si par exemple on met 50, la compétence réduira la valeur de la correction d'évasion de moitié.
Si on met 0, la compétence sera inesquivable .
Note: Quand les dégâts sont négatifs (rétablissement)
Taux de succès = 100
Et oui, comme pour la défense, on ne va pas esquiver un sort de soin ^^
Il ne reste plus qu'un détail. La fuite. Et c'est très simple:
FUITE
- Code:
-
Fuite réussie = 50 × l'agilité moyenne de la partie ÷ l'agilité moyenne du monstre de la partie
Voilà c'est tout. Donc si les héros ont autant d'Agilité que les monstres, ils auront 50% de chances de réussir à fuir.