Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

391 connectés actuellement

29375287 visiteurs
depuis l'ouverture

4654 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Offgame

Planète Glutko

Lumen

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [Rpg Maker XP] Modifications du script de combat


Sou - posté le 25/11/2015 à 17:53:43 (396 messages postés)

❤ 0

On a jamais assez de munitions

Domaine concerné: Script
Logiciel utilisé: Rpg Maker XP
Bonjour à tous !

Afin de coller à mon idée j'ai chercher à comprendre et à modifier le système de combat de XP.
Au cours de mes recherches suis tombé sur ça: http://www.rpg-maker.fr/tutoriels-461-configurer-son-systeme-de-combat-sous-rpg-maker-xp.html
Avec mes petites bases en programmation j'ai donc tenté, grâce à ce super tuto, de retoucher le code à ma sauce.
J'aurai cependant besoin d\'une tierce personne pour me dire si tout ça semble cohérent.

Pour l'instant je ne me suis attaqué qu'aux attaques physiques. Voici donc mes modifs.

Ligne 46:

Portion de code : Tout sélectionner

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



Je n'ai rien modifié à ce niveau là car je ne me suis pas encore attaqué à la gestion des statuts.

Ligne 73:

Portion de code : Tout sélectionner

1
2
3
4
eva = 8 * self.agi / attacker.dex + self.eva
      hit = self.damage < 0 ? 100 : 100 - eva
      hit = self.cant_evade? ? 100 : hit
      hit_result = (rand(100) < hit)



Alors là j'ai commencé à mettre les mains dedans. Je vais détailler tout ça pour être sûr que j'ai bien fais ce que j'ai voulu faire.

Partant d'une base:
Agilité du Défenseur: 10
Dextérité de l'Attaquant: 1

Portion de code : Tout sélectionner

1
hit_result = (self.agi - attacker.dex + rand(100) < 101)



Agi du Défenseur - Dex de l'Attaquant + aléatoire 0/99 si le tout est inférieur à 101 alors l'Attaquant touche.

Ligne 50:

Portion de code : Tout sélectionner

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



Partant d'une base:
Force de l'Attaquant: 11

Portion de code : Tout sélectionner

1
2
atk = attacker.atk - self.pdef
          self.damage = atk + rand(attacker.str) 



Attaque de l'arme de l'Attaquant - la valeur de l'armure du Défenseur donne les dégâts brutes.
Dégâts brutes + aléatoire 0/10 donne les dégâts finaux.

Ligne 53:

Portion de code : Tout sélectionner

1
2
self.damage *= elements_correct(attacker.element_set)
          self.damage /= 100



Je n'ai pas modifié cette partie. Si je ne me trompe pas il me suffit de ne pas attribuer d'éléments pour que ça n'influence pas le reste du code (comme les statuts).

Ligne 69:

Portion de code : Tout sélectionner

1
2
amp = [self.damage.abs * 15 / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp



Apparemment ce code gère l'aléatoire des dégâts. Cependant, si je ne me suis pas trompé dans mes calculs des dégâts au dessus, l'aléatoire est déjà intégré à mon calcul. Du coup j'ai pensé à supprimé cette partie du code, mais sa disparition va-t-elle mettre à mal le reste du script?

Ligne 58:

Portion de code : Tout sélectionner

1
2
3
4
if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
         end



Partant d'une base:
Dextérité de l'Attaquant: 1

Portion de code : Tout sélectionner

1
2
3
4
if rand(10) < attacker.dex
             self.damage *= 2
             self.critical = true
          end



Un aléatoire 0/9 qui si il est inférieur à la Dextérité de l'Attaquant (donc à 0, soit 10% de chance de base si je dis pas de bêtises), provoque un coup critique. Ce coup critique multiplie les dommages par 2.

Ligne 63:

Portion de code : Tout sélectionner

1
2
3
4
 
        if self.guarding?
          self.damage /= 2
        end 



Pour finir, je laisse un peu plus de chance au défenseur de survivre en divisant les dommages par 1,5 au lieu de 2. J'ai un doute, on le note 1.5 ou 1,5 ?

Portion de code : Tout sélectionner

1
2
3
4
 
        if self.guarding?
          self.damage /= 1.5
        end 






Merci à ceux qui prendront la peine de lire tout ça.
J'espère ne pas avoir fais d’aberrations et ne pas être trop loin de la vérité avec mes modifs.
Cordialement, Sou un mec qui débute.



****



EDIT:


Ça à l'air de fonctionner correctement. Je vais donc continuer mes modifs pour le reste du système de combat. Comme j'y vais un peu au talent (dont je ne déborde pas), je ferait remonter les éventuels problèmes lorsque je tomberai dessus.

Je suis Sou et c'est tout.


verehn - posté le 26/11/2015 à 17:05:50 (9056 messages postés) - honor -

❤ 0

Vhehrhehn

Bon t'as déjà mis ça en "résolu" mais j'allais dire la meilleure chose à faire pour s'assurer de la chose c'est de tester et faire tester comme il faut. Après y'a plusieurs types de "cohérences" auxquels tu pouvais faire allusion, mais je suppose que tu parlais plutôt de calculs. À savoir qu'on peut toujours faire quelque chose, on contrôle énormément de choses: dommages/sorts/monstres/items/xp/héros/etc du coup il y a énormément de moyens de gérer un écart quelque part en le contrebalançant autre part.

Eldrao ~ PakuPaku ~ Winged Light ~ Ruin ~ Ma galerie ~ LTDAD ~ Don de graphismes plateforme 2D


Sou - posté le 26/11/2015 à 17:19:57 (396 messages postés)

❤ 0

On a jamais assez de munitions

Merci de ta réponse Verehn.

En effet par cohérence j’entends dans les calculs car je n'ai jamais fais de Ruby et j'ai donc bidouillé en essayant d'être logique.

Pour ce qui est du test et du re test, j'ai slash du fantôme une dizaine de minutes et le ratio touche/pas touche semble pas trop mal.

Je l'ai mis en résolu car je voulait savoir si mon script était viable, et il semble l’être. Après si quelqu'un a des suggestions je suis preneur :)

Je suis Sou et c'est tout.

Index du forum > Entraide > [RESOLU] [Rpg Maker XP] Modifications du script de combat

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers