Bienvenue visiteur !
|

Statistiques
Liste des membres
Contact
Mentions légales
316 connectés actuellement
31144526 visiteurs depuis l'ouverture
1629 visiteurs aujourd'hui

Partenaires









Tous nos partenaires
Devenir partenaire
|
Nérylis -
posté le 11/05/2016 à 20:12:41 (149 messages postés)
| | 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)
| | 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)
| | 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 : http://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)
| | 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)
| | 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)
| | 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 :
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)
| | 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)
| | 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)
| | 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)
| | 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 :
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)
| | 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)
| | Arf comme ça ça sera un peu plus précis :
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 :
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)
| | 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)
| Just working | Citation:
Citation: Mon script pour corriger l'absorbtion doit être après Equipment Sets. |
... On se relit bon sang on se relit... 
|
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)
| | 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


|
|
|