Partagez
Aller en bas
Nérylis
Nérylis
Membre

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

Résolu Résistances aux éléments

le Mer 11 Mai 2016 - 20:05
Coucou,

J'ai fait des recherches pour modifier la façon de calculer les résistances aux éléments. La méthode de base ne me plaît pas, le % s'applique sur la valeur actuelle du personnage. Si par exemple, je mets un équipement avec 10% de résistance au feu et un autre équipement avec 20%, je n'obtiens pas 30%. Or c'est ce que j'aimerais.

J'ai trouvé un topic sur un forum qui donne peut-être la solution :


This should do what you need.

Code:
class Game_BattlerBase
def element_rate(element_id)
er = features_with_id(FEATURE_ELEMENT_RATE, element_id).inject(1.0) do |r, ft|
   r += (ft.value - 1.0)
end
[er, 0].max
end
end

It simply adjusts the way element rates are calculated - you will still use the feature to give rates. The way it calculates will be

100 + (v - 100)

where 'v' is the number you enter into the feature. So if I wanted to add 25% fire resistance, I would have 75 as the value. Additionally, please note that you can already give states element resistance, as it is a feature. There is no need for an addon to achieve that.

J'ai essayé ce bout de script mais je n'ai pas constaté de changement au niveau du cumul des résistances.

Quelqu'un saurait m'en dire plus ?


Dernière édition par Nérylis le Ven 20 Mai 2016 - 17:25, édité 1 fois
Nérylis
Nérylis
Membre

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

Résolu Re: Résistances aux éléments

le Jeu 12 Mai 2016 - 19:02
Re, je n'avais pas bien saisi comment cela marchait. Du coup, maintenant, ça semble plus logique car le joueur a l'impression que chaque équipement a une valeur fixe d'augmentation ou de réduction de la résistance aux éléments.

Par contre, quand je configure un équipement de la sorte : ResFeu 20% ou ResFeu 10%, j'obtiens respectivement 81% et 91% au lieu de 80% et 90%. Il y a un petit souci quelque part, non ?

Je dois avoir aussi un problème avec le script qui gère les sets d'équipement. Si le bonus de set est une valeur qui s'ajoute à une résistance élémentale, si la valeur finale dépasse 100, je passe en Absorption (je récupère des points de vie). Alors qu'on devrait être en Insensible.

Je laisse ma démo de menu : http://www.mediafire.com/download/suw7ouj8ew4qw7s/Ace+menu+update.exe

Est-ce que quelqu'un peut y jeter un oeil s\'il te plaît ? Il faut inclure le bout de script au-dessus du script de set d'équipement d'Emerald, configurer des équipements pour observer l'addition des valeurs avec une résistance élémentale. Pour tester les sets, le premier personnage peut s'en équiper (prendre des équipements du set Eléments). Si vous avez des questions, demandez-moi par mp car c'est assez corsé comme démo.
Spytje
Spytje
Administrateur

Nombre de messages : 5933
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Résolu Re: Résistances aux éléments

le Jeu 12 Mai 2016 - 19:28
J'ai un peu regardé et peut être que ça vient de ton script "Blackmorning -> YEA - STATUS Addon" ligne 179 si tu là met à "0" ça donne quoi ?

_________________
Résistances aux éléments 911

LE PROJET SUR FACEBOOK

N'hésitez pas à suivre la page  Résistances aux éléments 344805
Nérylis
Nérylis
Membre

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

Résolu Re: Résistances aux éléments

le Jeu 12 Mai 2016 - 19:37
J'ai testé en mettant 0 mais je passe quand même en Absorption.

En prenant un exemple, quand le bonus de set (+25% de Res Feu par exemple) s'ajoute et que le résultat dépasse 100, au lieu d'être Insensible, je suis en Absorption. C'est configuré tel quel dans ma démo pour le port de deux équipements du set Eléments. Je pense que le problème est lié au script d'Emerald (ligne 1039), ou peut-être le script de BlackMorning - Ace Status menu (ligne 885). Il doit y avoir un ajustement à faire mais je ne maîtrise pas suffisamment pour trouver ce qu'il faut modifier.
Spytje
Spytje
Administrateur

Nombre de messages : 5933
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Résolu Re: Résistances aux éléments

le Jeu 12 Mai 2016 - 21:02
Pareil je ne vois pas trop ou se trouve le problème attend peut être qu'un codeur ou quelqu'un qui maîtrise ces scripts te donne de l'aide.

_________________
Résistances aux éléments 911

LE PROJET SUR FACEBOOK

N'hésitez pas à suivre la page  Résistances aux éléments 344805
tonyryu
tonyryu
Membre

Nombre de messages : 895
Age : 39
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

Résolu Re: Résistances aux éléments

le Ven 13 Mai 2016 - 9:44
Je regarde ça mardi
Nérylis
Nérylis
Membre

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

Résolu Re: Résistances aux éléments

le Lun 16 Mai 2016 - 13:14
Le premier problème est résolu. Quand j'obtenais un résultat final pas logique (comme l'exemple des 81 et 91%), c'est parce que la formule n'était pas assez précise. Voilà comment le bout de script s'est transformé :

Code:
class Game_BattlerBase
  def element_rate(element_id)
    er = features_with_id(FEATURE_ELEMENT_RATE, element_id).inject(100) do |r, ft|
      r += ft.value*100 - 100
    end
    er < 0 ? 0.0 : er / 100.0
  end
end

Et dans Blackmorning - Ace status menu addon, à la ligne 754, le to_i a été remplacé par round.

Il reste le problème de l'Absorption lié au script des sets d'équipements. A noter que je place le bout de script au-dessus de celui de Yanfly qui gère les éléments absorbés.

Pour bien visualiser ce problème, mettre une résistance à un équipement de base (par exemple la hache : ResFeu*20%, ce qui donnera de base une résistance au feu à 80%). Puis parlez au cristal en bas à gauche qui donne des équipements. S'équiper de la bague du set Eléments (elle a ResFeu*50%, donc le personnage devient Insensible car 100% atteint). Puis mettre un autre équipement du set Eléments. Le fait d'être équipé de deux équipements de ce set procure un bonus de 25% en résistance au feu. Comme le total est supérieur à 100%, on constate le problème (le personnage absorbe l'élément au lieu d'y rester Insensible). La seule façon d'absorber un élément est de mettre un notetag dans la BDD (voir le script de Yanfly - Absorb element).
Nérylis
Nérylis
Membre

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

Résolu Re: Résistances aux éléments

le Ven 20 Mai 2016 - 17:24
Problème résolu en modifiant le script d'Emerald à la ligne 1037 :

Code:
alias eme_ebs_element_rate element_rate
  def element_rate(element_id)
    value = eme_ebs_element_rate(element_id) - (sets_element_rate(element_id).to_f / 100.0)
    if $imported["YEA-Element Absorb"]
      if !element_absorb?(element_id) && value < 0
        value = 0
      end
    end
    return value
  end

Merci à TonyRyu pour son aide et cette solution. Smile
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum