RPG-Forum: Systeme de combat par défaut [RPG Maker XP] - RPG-Forum

Aller au contenu

Page 1 sur 1

Systeme de combat par défaut [RPG Maker XP]

#1 L'utilisateur est hors-ligne   Furya Icône

  • Au bistrot du coin
  • Pip
  • Groupe : Membres
  • Messages : 3
  • Inscrit(e) : 03-juillet 08

Posté 03 juillet 2008 - 05:51

Bonjour à tous. Je suis un débutant en ce qui concerne le making, mais grâce aux nombreux tutoriaux que j'ai pu trouvé ici je peux déjà m'amuser et surtout, m'accoutumer au logiciel.
Je n'ai aucune connaissance en programation, je suis vraiment naze :/ Je ne peux donc pas toucher aux scripts.

Si je m'adresse à votre communauté aujourd'hui, c'est dans l'espoir, simplement, que quelqu'un puisse m'indiquer comment comprendre le système de combat par défaut dans RPG Maker XP.
En effet, je cherche sur le net depuis des heures. Je n'imaginais pas avoir autant de mal à trouver, mais je ne trouve que des scripts pour personnaliser ses jeux, évidemment. Et même si une grande partie de ces scripts m'intéressent (tactical, action rpg) j'aimerai simplement déjà comment fonctionne le système par défaut. J'ai beaucoup hésité à poster, j'espère ne pas avoir eu tort, et je vous prie par avance de m'excuser si c'est le cas.

Ce que je cherche à comprendre donc, c'est comment les stat des personnages interviennent. Force Agi Intell etc, j'ai pu m'amuser à essayer un peu en tripatouillant la base de donnée. Mais d'une part, ce serait bien trop fastidieux d'essayer tout les effets du jeu avec différentes statistiques, les armes etc. D'autre part, je n'aurai ainsi jamais de formule exact, pour pouvoir établir ma base de donnée correctement (le jeu sera complètement déséquilibré et sans intérêt si moi même je ne sais pas comment il fonctionne).
Or, si j'ai bien compris, tout cela est géré par les scripts, en Ruby.
Alors je me demandais si y'avait pas une doc ou un tuto qui expliquerait tout ça. Ni comment le modifier, ni comment l'améliorer, simplement déjà connaître les formules de base (calcule des dégâts, les résistances aussi) et même le rôle des caractéristiques (et oui c'est à ce point :/ je sais pas moi, y'a tellement de trucs, tout ce que je sais c'est que plus t'as de puissance plus tu tape fort wouh super...).

Voilà, désolé pour le pavé. Je savais pas trop par où commencer, je trouve ma requête un peu banal comparé à du making plus élaboré. Mais j'étais choqué également de ne pas trouver de "doc" là dessus (je me choque moi même, j'ai toujours du mal à croire que ce soit pas trouvable et pourtant j'ai vraiment cherché des heures).

Merci de m'avoir lu.

Ce message a été modifié par Furya - 03 juillet 2008 - 05:52 .

0

#2 L'utilisateur est hors-ligne   Anuvico Icône

  • Chevalier
  • PipPipPipPip
  • Groupe : Membres ++
  • Messages : 337
  • Inscrit(e) : 06-mai 07
  • Gender:Male
  • Location:66

Posté 03 juillet 2008 - 21:17

http://rpgmxpstudio....t.ch/aide_rmxp/

Voilà pour toi il y a une aide pour comprendre les formules de combats

Moi aussi je suis au même point en ce moment je cherche à les comprendre >_<
mais tu peux les modifier à la main même sans savoir scripter (battle 3 ou je sais plus un avec plein de formules ^^ )
0

#3 L'utilisateur est hors-ligne   Furya Icône

  • Au bistrot du coin
  • Pip
  • Groupe : Membres
  • Messages : 3
  • Inscrit(e) : 03-juillet 08

Posté 03 juillet 2008 - 21:41

Oh là là là là une réponse!

C'que j'suis content merci beaucoup! Je vais regarder/lire tout ça. On dirait que c'est exactement ce que je cherchais.
Je te suis super reconaissant de m'avoir aidé (j'ai pas encore lu mais j'me sens moins seul déjà).

J'éditerai lorsque j'aurai tout regardé, pour te remercier à nouveau ptetre lol.

Par contre je m'en veux vraiment :/ je sais pas où t'as trouvé mais j'abuse de pas avoir trouvé ça. Si je comprends bien c'est la traduction de la doc officielle, enfin pas traduction exactement (Aide améliorée à partir de la traduction US de l'aide officielle). Enfin bref c'est trop trop ce que je cherchais, je file section combat.

Merci Anuvico! ^^

Ps: ah oui, merci pour le conseil au sujet de Battle3 (peut être un autre ok), je ne m'étais pas intéressé à tout ça pour les raisons expliquées au premier post. Maintenant que tu me dis que les formules sont personnalisables, enfin modifiables sans forcément savoir programmer.

Edit: Mise à part 2 3 trucs que je ne comprends pas trop (ce sont des termes, comme "désaccord= 15") ça m'aide énormément. Formules des dégats, exactement le truc que je cherchais. Et puis je vais lire tout le reste en espérant trouver un max d'infos. Merci encore ^^
En fait même la première ligne, "coup % A" je comprends pas lol, mais y'a d'autres trucs qui sont très très claires. Et j'imagine que je comprendrais mieux tout ça quand j'aurai lu le reste.

Si je galère sur quelques trucs compliqués, mes questions seront à poser ici ou plutôt dans la section Aide et Conseils à ton avis? (vu que j'ai déjà crée un topic..)

Edit 2: J'ai tardé à mettre cet edit, mais je tenais à te remercier aussi Ashka. Moi et un pote qui sommes totalement noobis sur RPGmaker on va se servir de ton post pour essayer de comprendre ces formules.

Ce message a été modifié par Furya - 06 juillet 2008 - 00:03 .

0

#4 L'utilisateur est hors-ligne   ASHKA Icône

  • Ecuyer
  • PipPipPip
  • Groupe : Membres +
  • Messages : 136
  • Inscrit(e) : 12-novembre 07
  • Gender:Male
  • Location:Je suis le &quot; LOGOS &quot; donc je suis partout !!

Posté 04 juillet 2008 - 09:25

Attaque est la valeur de base qui determine les degats.
( Basé sur l'equipement )
La force intervient ensuite ( stats personnel )

Le defense est en réalité la dexterité.
Son influence est surtout lié aux réussite ( coup et/ou coup critique )

L'agilité sert à determiner l'ordre d'attaque.
( Tout le monde choisit ses attaques en même temps, mais l'ordre d'execution depend du type d'attaque et de l'agilité. )
Elle influe aussi sur les chances de fuites, de coup et d'esquive.

L'intelligence ne sert à rien ( euh, dans le jeu, evidement ), sauf si on met une valeur superieure à 0 dans la case " int " d'une competence.

La defense physique et magique ( basé sur l'equipement ) sert à reduire les degats reçus.


Les formules de combats sont dans le script " Game_battler 3 ", celle de fuite dans " Scene_Battle 2 ".
Si tu souhaite les modifier, teste d'abord dans un projet neutre, avant d'importer dans ton projet principal.
Ou demande conseille à un scripteur !!

Edition :
Ca y est, j'ai retrouvé ce maudit MP !!

Pour les formules de combats, niveau competence, voila comment ça fonctionne :


	hit = skill.hit
	 if skill.atk_f > 0
	   hit *= user.hit / 100
	 end
	 hit_result = (rand(100) < hit)


Ca, c'est la premiere determination de la réussite.
On compare une valeur aléatoire comprise entre 0 et 99 à un pourcentage basé sur la precision de la competence et la valeur "hit" de l'utilisateur.
Cette valeur "hit" est de 100 mais elle est modifié par les effets des status ( la case "precision" ).
Si la valeur aléatoire est inferieur au resultat de l'utilisateur, l'attaque réussi.
Sinon echecs ...


	  power = skill.power + user.atk * skill.atk_f / 100
	   if power > 0
		 power -= self.pdef * skill.pdef_f / 200
		 power -= self.mdef * skill.mdef_f / 200
		 power = [power, 0].max
	   end


Ca, c'est le calcul normal des degats pour les competences.
Donc taux d'effet de la competence + attaque de l'utilisateur * valeur de la case attaque de la competence / 100
Si le resultat est superieure à 0, donc en cas de magie offensive, et non de soin, on compare au valeur defensive de la cible.
On retire le resultat de defense physique de la cible * valeur de la case "def phys" de la competence / 200.
( Donc si la valeur de la case " def phys " est 0, on ne retire rien ( impact maxi, pourrait-on dire ) )
On retire ensuite le resultat de def mag de la cible * valeur de la case "def mag" de la competence / 200
( Même remarque ... et plus la valeur est elevé, plus on retire de " puissance " ... ( impact reduit, pourrait-on dire ) )


	  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


Ceci, c'est l'application des bonus des autres cases.
Si la valeur est superieure à 0, cela augmente l'effet de la competence, en proportion entre la valeur choisit et la stats correspondante de l'utilisateur.
Donc si la valeur de "force" est de 100, on ajoute 100% de la "force" à la puissance de la competence, même chose pour les valeurs def, agi et int.

Viens ensuite trois nouvelles modifications :
- l'effet des elements ( resistance pou faiblesse )
- l'effet de la garde ( divisé par 2 si garde sinon ... rien )
- l'effet de la variance ( si besoin est )

Derniere etapes, le second calcul de réussite.


	  eva = 8 * self.agi / user.dex + self.eva
	   hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100
	   hit = self.cant_evade? ? 100 : hit
	   hit_result = (rand(100) < hit)
	   # 不確実なスキルの場合は有効フラグをセット
	   effective |= hit < 100


La valeur "eva" est 8 * l'agilité de la cible / par la dexterité de l'utilisateur ( ce qui est appellé "defense" dans le base de donnée ) + evasion de la cible.
L'evasion de la cible est l'esquive modifié par les effets eventuels des status qui l'affecte ( case "esquive" des status ).
Ensuite, cette valeur "eva" est modifié par un pourcentage selon la valeur de la case "esquive" de la competence.
Ceci, seulement en cas de puissance positive, les sorts de soin ont un taux de réussite de 100.
Le taux est egalement de 100 si la cible n'est pas capable d'esquiver ( sommeil, paralysie, ... )
Ensuite, même technique qu'au debut, si le resultat est inferieur à une valeur aléatoire comprise entre 0 et 99, l'attaque réussi.


C'est peut-etre plus clair que le manuel.


ASHKA

Ce message a été modifié par ASHKA - 04 juillet 2008 - 09:31 .

FIGHT THE POWER !!
0

#5 L'utilisateur est hors-ligne   Furya Icône

  • Au bistrot du coin
  • Pip
  • Groupe : Membres
  • Messages : 3
  • Inscrit(e) : 03-juillet 08

Posté 08 juillet 2008 - 04:11

Coucou c'est encore moi ^^
J'avais peur de uper ..... lol /:

Mais j'ai une bonne raison d'le faire là.

Grâce aux précieux conseils d'Ashka, ainsi que le lien qu'Anuvico m'a fourni, j'ai ENFIN pu comprendre quelques formules.
Partons du principe que je ne m'intéresse QU'à l'attaque de base (ce qui n'est pas loin d'être le cas).
Je traduis la formule en "français" lol:

D'abord une ptite vérification (je pense que c'est bon mais un tout ptit peu troublant):


hit_result = (rand(100) < attacker.hit)

attacker.hit = 100.
On a donc:
hit_result = (rand(100) < 100
D'où:
100% de chances de toucher.

Oo 100? La valeur hit est toujours égale à 100 ? Ce qui est finalement moins abusé quand on voit la formule de l'esquive, qui montre qu'il est relativement facile d'esquiver, donc finalement pas d'abus. Quelqu'un peut il confirmer ça? ^^
De manière plus simple: l'esquive de la cible (pas la stat ^^ le "fait" d'esquiver) est la seul cause d'un miss?

Voilà ça c'était pour la vérification.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Maintenant c'est un peu plus chaud comme problème... et j'avoue que je vois pas DU TOUT comment ça s'fait (surtout que les informations que m'a donné Ashka correspondent parfaitement avec ce que j'ai lu dans le script, enfin je crois j'en suis pas sur puisque j'suis une quiche).

Pour expliquer mon problème je rappelle la formule des dégâts. Donc SI je dis pas de conneries hein encore une fois je suis pas du tout sûr de moi:

atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk * (20 + attacker.str) / 20

attacker.atk = Puissance d'attaque de l'arme.
sel.pdef = Défense (ou Déxtérité) de la cible.
attacker.str = Force de l'attaquant.

On a donc:
self.damage = [Puissance d'Attaque - Défense/2] X (20 + Force) / 20

Défense = Déxtérité ok.
Mais quand je mets 999 de Dex à un monstre, j'arrive à lui mettre des dégâts, avec un perso force 5, équipé d'une arme attaque 5 :/
C'est pas normal O_o

Voilà pouquoi j'ai finalement posté. Je crois qu'il y a quelque chose que j'ai du complètement raté. Merci pour votre aide qui m'a déjà été précieuse ^^

Ce message a été modifié par Furya - 08 juillet 2008 - 04:12 .

0

#6 L'utilisateur est hors-ligne   ASHKA Icône

  • Ecuyer
  • PipPipPip
  • Groupe : Membres +
  • Messages : 136
  • Inscrit(e) : 12-novembre 07
  • Gender:Male
  • Location:Je suis le &quot; LOGOS &quot; donc je suis partout !!

Posté 08 juillet 2008 - 10:44

Alors ...

- Oui, hit est de 100 à la base.
Mais c'est modifié par le statut qui affecte la precision en plus ou en moins ( pense à Obscurité ).
Ensuite, le rand(100) signifie : je prends au hasard une valeur comprise entre 0 et 99.
Donc non, pas 100 % mais presque ...
Cependant, il ne s'agit que du premier calcul de " touche ".

- Non, soit il y a echecs de l'attaque ( premier calcul ), soit esquive ( deuxieme calcul ).
Mais ça se materialise par le même "manqué !!"

- Attention, ne pas confondre "Defense " qui est une stats propre au niveau du héros et qui est en fait la dexterité et "Defense physique " qui depend de l'equipement et qui intervient dans le calcul de degats.

Un héros avec 999 de "defense/dexterité" fera souvent des coups critiques et touchera avec " facilité " mais prendra plein de degats.
Un héros avec 999 de "pdef" stoppera les attaques, c'est ça, la defense au sens classique.


Tout est dans les scripts, il suffit de faire F11 et de regarder !!
Si tu as d'autres questions, n'hesite pas !!

ASHKA

Ce message a été modifié par ASHKA - 08 juillet 2008 - 10:50 .

FIGHT THE POWER !!
0

Page 1 sur 1


Réponse rapide

  

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)