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

Interviews: Ephy / Tutos: Godot : Premier Contact -Partie (...) / Tutos: Godot : Premier Contact -Partie (...) / Making-of: Ma première game jam classée / Jeux: Oracle of Tao / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

95 connectés actuellement

11006387 visiteurs
depuis l'ouverture

999 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

RPG Maker - La Communauté

Kingdom Ultimate

Le Comptoir Du clickeur

Level Up!

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RPG Maker VX Ace] Pourcentages de résistances aux éléments


Nérylis - posté le 11/05/2016 à 20:12:41 (149 messages postés)

❤ 0

Domaine concerné: Script
Logiciel utilisé: RPG Maker VX Ace
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 :

Citation:


This should do what you need.

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 ?


zeus81 - posté le 12/05/2016 à 00:56:34 (11071 messages postés)

❤ 0

Bah ça marche.
Si tu mets 125% à un équipement et 110% à un deuxième ça fera 135% au lieu de 137.5% mais au fond ça change pas grand chose tu te fais chier pour rien.


Nérylis - posté le 12/05/2016 à 18:58:23 (149 messages postés)

❤ 0

Ah effectivement, 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 : https://www.mediafire.com/download/suw7ouj8ew4qw7s/Ace+menu+update.exe

Est-ce que tu peux y jeter un oeil stp ? 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.

Edit :

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.

Et j'ai testé en mettant 0 à la ligne 179 du script de BlackMorning mais je passe quand même en Absorption.


zeus81 - posté le 14/05/2016 à 01:36:38 (11071 messages postés)

❤ 0

T'as plusieurs scripts qui modifient cette fonction element_rate, si tu mets le bout de code au dessus des autres dans la liste des scripts c'est bon.
Toujours penser à changer l'ordre des scripts, ça règle souvent les choses.


Nérylis - posté le 14/05/2016 à 10:12:29 (149 messages postés)

❤ 0

J'ai déjà testé en mettant le bout de script au-dessus des autres mais le problème est toujours là.


zeus81 - posté le 14/05/2016 à 21:26:57 (11071 messages postés)

❤ 0

J'ai testé de mettre ton bout de script avant les autres et ça marche bien, ça additionne les pourcentages au lieu de les multiplier.
Pour ton problème d'absorption essaie d'ajouter celui ci, cette fois en dessous des autres scripts :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
class Game_Actor
  alias qsdfgqsdfgsd                   game_battler_element_rate_eabs
  alias game_battler_element_rate_eabs element_rate
  alias element_rate                   eme_ebs_element_rate
  alias eme_ebs_element_rate           qsdfgqsdfgsd
  undef qsdfgqsdfgsd
end


J'ai pas testé parce que je sais pas comment ça marche (et je veux pas savoir), c'est censé inverser l'ordre d'exécution de tes deux scripts ce qui devrait corriger le bug, si ça le corrige pas bah tant pis.


Nérylis - posté le 14/05/2016 à 21:57:35 (149 messages postés)

❤ 0

Oui, j'ai vu comment ça fonctionnait, ça additionne bien. Je dois mettre le bout de script au-dessus des scripts de set et d'absorption.

J'ai testé ta solution mais ça ne marche pas.

Est-ce que tu vois pourquoi ça ajoute 1% quand je configure 10 et 20 dans la BDD (ce qui devrait donner 90 et 80% mais ça affiche 91 et 81%) ?


zeus81 - posté le 14/05/2016 à 22:06:04 (11071 messages postés)

❤ 0

Chez moi les pourcentages sont bons, tu dois avoir un autre équipement qui te rajoute 1%.
Mon script ne change rien aux pourcentages, il corrige l'absorption.


Nérylis - posté le 14/05/2016 à 22:14:26 (149 messages postés)

❤ 0

Tu utilises ma démo ? De base, toutes les résistances sont à 0%. Quand je configure un des équipements de base en ResFeu*60%, j'obtiens bien 40% de résistance en feu. Si j'en configure un autre pareil, je devrai avoir 80%. Or, j'obtiens 81%. De même, si je configure un seul équipement en ResFeu*20%, au lieu d'avoir 80%, j'ai 81%. Il y a plusieurs valeurs "finales" qui ont ce souci.

Ton script ne résout pas le problème de l'absorption malheureusement. J'ai testé, j'ai mis ton script en-dessous et l'autre au-dessus mais la résistance passe toujours en Absorption au lieu de passer en Insensible.


zeus81 - posté le 14/05/2016 à 22:40:31 (11071 messages postés)

❤ 0

Ah oui avec mes pourcentages de test ça marchait mais avec 2*60% j'arrive à 81%, mais c'est pas vraiment un bug en fait c'est normal, c'est une approximation due aux nombres flottants mais ça peut se corriger :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
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).to_i - 100
    end
    er < 0 ? 0.0 : er / 100.0
  end
end 


Celui-ci remplace celui des pourcentages et doit être avant Element absorb.
Mon script pour corriger l'absorbtion doit être après Equipment Sets.


Nérylis - posté le 14/05/2016 à 23:08:40 (149 messages postés)

❤ 0

Effectivement, ça corrige mieux les valeurs mais il doit y avoir encore des approximations. Quand je configure un équipement ResFeu*58%, j'obtiens 44% de résistance en feu au lieu de 42.

J'avais bien placé ton script sous Equipment Sets mais le problème est toujours là.


zeus81 - posté le 15/05/2016 à 01:23:43 (11071 messages postés)

❤ 0

Arf comme ça ça sera un peu plus précis :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
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 ligne 754 tu remplaces le to_i par round.

Pour tu peux essayer ça :

Portion de code : Tout sélectionner

1
2
3
4
5
6
class Game_Actor
  remove_method :element_rate
  def game_battler_element_rate_eabs(element_id)
    super - sets_element_rate(element_id).to_f / 100.0
  end
end


Et si ça marche toujours pas fuck.


Nérylis - posté le 15/05/2016 à 10:04:24 (149 messages postés)

❤ 0

J'ai testé une trentaine de valeurs, plus quelques additions. Le résultat a été bon à chaque fois. On peut donc considérer que la formule est correcte. Merci du coup de pouce.

Par contre, pour le problème de l'Absorption, ça ne marche pas. J'ai mis ton script en-dessous des autres mais le problème demeure.


arttroy - posté le 15/05/2016 à 10:24:35 (2394 messages postés)

❤ 0

Just working

Citation:

en-dessous des autres



Citation:

Mon script pour corriger l'absorbtion doit être après Equipment Sets.



... On se relit bon sang on se relit... :clindoeil3

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


Nérylis - posté le 15/05/2016 à 11:01:22 (149 messages postés)

❤ 0

Oui, je l'ai mis après Equipment Sets.

Index du forum > Entraide > [RESOLU] [RPG Maker VX Ace] Pourcentages de résistances aux éléments

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 | 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