Partagez
Aller en bas
avatar
Nérylis
Membre

Nombre de messages : 609
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

Résolu Script - Modification de formule de skill

le Mar 10 Fév 2015 - 22:54
Bonsoir,

Je souhaiterai avoir un script permettant d'appliquer un coefficient multiplicateur à mes formules de skill sous certaines conditions. Je m'explique :

Actuellement, j'utilise un système de météo et un système jour/nuit que j'ai fait moi-même sans aucun script. Ces systèmes ne sont pas là que pour faire jolis, ils ont un impact sur les skills utilisés. Par exemple, quand il pleut, les skills de feu sont moins puissants tandis que les skills de foudre marchent mieux. De même, lorsqu'il fait nuit, les skills de lumière sont plus efficaces. Pour effectuer les changements de skills, j'ai créé des doublons dans la BDD avec des formules différentes. Ainsi, lorsqu'il pleut, je procède au changement de skill et c'est transparent pour le joueur. L'ennui, en-dehors d'être contraignant, c'est que j'utilise le script Skill Master (présent ici, voir dernier post : http://www.rpgmakervx-fr.com/t17462-nmscript-skill_mastery-v1) et bien entendu, mes changements de skill ne sont pas pris en compte.

Plutôt que de toucher à ce script, je préfère avoir un autre script qui permet donc d'appliquer un coefficient multiplicateur en fonction des interrupteurs activés pour la météo et pour le moment de journée. Je possède 8 interrupteurs de la sorte : 4 pour la météo (Normal, Pluie, Orage et Neige) et 4 pour les moments de journée (Matin, Jour, Soir et Nuit).

Pensez-vous que cela est réalisable ? Cela m'éviterai d'avoir 36000 doublons dans ma BDD et permettrait à mon système d'upgrade de skill d'être totalement optimisé.


Dernière édition par Nérylis le Sam 25 Juil 2015 - 17:34, édité 1 fois
avatar
Gelarto
Gelato Della Mamma

Nombre de messages : 2916
Age : 23
Distinction : Grand bêta-testeur de la communauté Curse
Personne avec du goût
Je ne suis pas une glace italienne, bordel de merde! [Gel']
Mon plus grand fan [Yama']
Mon ptit bichon [encore Yama']
Jeau-Paul II[Mist']
Saint-Gelato Le Frais [Mist']
Écrivain du dimanche [Amal']
FF IV Fanatic [LaCommu']
Collectionneur de distinctions de merde [Yama]
ModoGel [Un staffieux mais lequel?]
RNGel 2.0 [Zeal']
Date d'inscription : 31/07/2012

Résolu Re: Script - Modification de formule de skill

le Mer 11 Fév 2015 - 20:48
Pas sûr qu'il y ait besoin de script pour ça [je sais ça colle pas avec la demande]

Dans la formule tu peux mettre des conditions (et un tas d'autres trucs).
Exemple: $game_switches[5] ? 100 + a.atk * 5 – b.def * 2 : a.atk * 5 – b.def * 2
Cela signifie que si l'interrupteur 5 est activé, la formule sera "500 + a.mat * 4 – b.mdf * 2", et si il l'est pas "200 + a.mat * 4 – b.mdf * 2"

J'en suis pas certains mais tu dois pouvoir imbriqué les conditions.(vu que le feu se voit surement diminuer quand il pleut ou quand il neige)

_________________
avatar
Nérylis
Membre

Nombre de messages : 609
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

Résolu Re: Script - Modification de formule de skill

le Sam 14 Fév 2015 - 17:31
Je n'avais pas vu ta réponse. J'ai essayé mais j'ai une erreur de syntaxe avec les ":".

Edit : J'ai réussi à corriger sans trop savoir comment j'ai fais mais il y a le problème de la limite de caractères dans les formules.
avatar
Nérylis
Membre

Nombre de messages : 609
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

Résolu Re: Script - Modification de formule de skill

le Jeu 19 Fév 2015 - 21:52
Bon, en final j'ai trouvé quelque chose pour écrire les formules dans un script sans avoir de problème de longueur de caractères. En fonction de mes interrupteurs liés aux conditions météorologiques et au système jour/nuit, voilà ce que ça donne :

Code:
class Game_BattlerBase
  #--------------------------------------------------------------------------
  # * Skills
  #--------------------------------------------------------------------------
  def Brasier_skill(a, b)
  damage = $game_switches[31] ? 50 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 50 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 300 + a.mat * 2 - b.mdf * 2 :  
                                200 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end

  def Brasierplus_skill(a, b)
  damage = $game_switches[31] ? 100 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 100 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 500 + a.mat * 2 - b.mdf * 2 :  
                                400 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end

  def Murdefeu_skill(a, b)
  damage = $game_switches[31] ? 50 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 50 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 400 + a.mat * 3 - b.mdf * 2 :  
                                250 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end

  def Tornadedefeu_skill(a, b)
  damage = $game_switches[31] ? 100 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 100 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 600 + a.mat * 3 - b.mdf * 2 :  
                                400 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end

  def Glacier_skill(a, b)
  damage = $game_switches[31] ? 200 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 200 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 50 + a.mat * 2 - b.mdf * 2 :  
                                200 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end

  def Glacierplus_skill(a, b)
  damage = $game_switches[31] ? 400 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 400 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 100 + a.mat * 2 - b.mdf * 2 :  
                                400 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end
  
  def Frimas_skill(a, b)
  damage = $game_switches[31] ? 250 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[32] ? 250 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[33] ? 50 + a.mat * 2 - b.mdf * 2 :  
                                250 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end
  
  def Toundra_skill(a, b)
  damage = $game_switches[31] ? 400 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[32] ? 400 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[33] ? 100 + a.mat * 2 - b.mdf * 2 :  
                                400 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end
  
  def Foudre_skill(a, b)
  damage = $game_switches[31] ? 250 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 300 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 200 + a.mat * 2 - b.mdf * 2 :  
                                200 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end

  def Foudreplus_skill(a, b)
  damage = $game_switches[31] ? 500 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 600 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 400 + a.mat * 2 - b.mdf * 2 :  
                                400 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end

  def Choc_skill(a, b)
  damage = $game_switches[31] ? 400 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[32] ? 350 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[33] ? 300 + a.mat * 3 - b.mdf * 2 :  
                                300 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end

  def Plasma_skill(a, b)
  damage = $game_switches[31] ? 600 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[32] ? 800 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[33] ? 500 + a.mat * 3 - b.mdf * 2 :  
                                500 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end

  def Ecume_skill(a, b)
  damage = $game_switches[31] ? 100 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 300 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 200 + a.mat * 2 - b.mdf * 2 :  
                                200 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end

  def Marée_skill(a, b)
  damage = $game_switches[31] ? 200 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 500 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[33] ? 400 + a.mat * 3 - b.mdf * 2 :  
                                400 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end

  def Tremblement_skill(a, b)
  damage = $game_switches[31] ? 200 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 200 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 200 + a.mat * 2 - b.mdf * 2 :  
                                200 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end

  def Séisme_skill(a, b)
  damage = $game_switches[31] ? 400 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[32] ? 400 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[33] ? 400 + a.mat * 3 - b.mdf * 2 :  
                                400 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end
  
  def Tourbillon_skill(a, b)
  damage = $game_switches[31] ? 200 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[32] ? 200 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[33] ? 200 + a.mat * 2 - b.mdf * 2 :  
                                200 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end
  
  def Tornade_skill(a, b)
  damage = $game_switches[31] ? 400 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[32] ? 400 + a.mat * 3 - b.mdf * 2 :  
           $game_switches[33] ? 400 + a.mat * 3 - b.mdf * 2 :  
                                400 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end
  
  def Flash_skill(a, b)
  damage = $game_switches[24] ? 300 + a.mat * 3 - b.mdf * 2 :
           $game_switches[21] ? 100 + a.mat * 2 - b.mdf * 2 :
                                200 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end
  
  def Sidéral_skill(a, b)
  damage = $game_switches[24] ? 600 + a.mat * 5 - b.mdf * 2 :  
           $game_switches[21] ? 200 + a.mat * 2 - b.mdf * 2 :
                                400 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end
  
  def Ténèbres_skill(a, b)
  damage = $game_switches[24] ? 100 + a.mat * 2 - b.mdf * 2 :
           $game_switches[21] ? 300 + a.mat * 3 - b.mdf * 2 :
                                200 + a.mat * 2 - b.mdf * 2
  damage.to_i
  end
  
  def Damnation_skill(a, b)
  damage = $game_switches[24] ? 200 + a.mat * 2 - b.mdf * 2 :  
           $game_switches[21] ? 600 + a.mat * 5 - b.mdf * 2 :
                                400 + a.mat * 3 - b.mdf * 2
  damage.to_i
  end
end

Pour que ces formules soient appliqués, il suffit simplement de rentrer, dans la BDD des skills, à l'endroit où on écrit les formules, l'appel de script "a.Nom_skill(a,b)".

Du coup, plus besoin de faire des doublons dans la BDD lorsque la météo change ou lorsque la nuit apparaît par exemple. Du coup, le script Skill Master cité plus haut est optimisé.

Les formules s'appliquent en fonction des lieux, à savoir si on est à l'air libre ou dans un donjon. Et cela est applicable pour les héros comme pour les ennemis.

Avant de clôturer ce sujet, j'attends que mon fameux scripteur jette un œil et me dise ses remarques au cas où.
avatar
Dany
Membre

Nombre de messages : 768
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Résolu Re: Script - Modification de formule de skill

le Jeu 19 Fév 2015 - 22:47
Je suis content, que tu a trouver ton problème, mais le forum, ce n'est pas le cas:
Réglement & Généralités
La fonction "Edite" existe, ta juste a copier et a supprimer l'ancien et d'écrire un nouveau, en copiant celui d'avant et d'ajouter ton édite!
Le forum sera plus propre et mieux organisé!
avatar
Zangther
Membre

Nombre de messages : 905
Distinction : aucune
Date d'inscription : 06/02/2013

Résolu Re: Script - Modification de formule de skill

le Jeu 19 Fév 2015 - 23:00
Non mais au pire tais toi.
avatar
Dany
Membre

Nombre de messages : 768
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Résolu Re: Script - Modification de formule de skill

le Ven 20 Fév 2015 - 14:08
Je le prévient juste, pour pas qui se prend des avertissements!
Et j'ai rien dit de mal dans ma phrase.
avatar
Nérylis
Membre

Nombre de messages : 609
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

Résolu Re: Script - Modification de formule de skill

le Ven 20 Fév 2015 - 17:03
J'édite mon message lorsque je fais une modification après avoir validé un message (souvent quand je viens de tester quelque chose ou que j'ai oublié un détail, d'ailleurs c'est ce que j'ai fais dans mon second post). Mais quand j'ai un pavé à mettre au bout d'une semaine pour expliquer les nouveautés liés à mon problème, je fais double post. Ce n'est pas gênant car ça apporte tellement de choses. Ce n'est pas la première fois que je fais ça, et les modérateurs sont plutôt indulgents et c'est tant mieux.

Pour en revenir au sujet initial, j'attends que Vincent26 soit à nouveau dispo pour me dire s'il y a des choses qui le choquent sur ce que j'ai fais (je ne fais pas de script en temps normal et je ne comprends pas tout).
Contenu sponsorisé

Résolu Re: Script - Modification de formule de skill

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum