Aller en bas
Hermoni
Hermoni
Membre

Nombre de messages : 1042
Localisation : Quelque part entre la cuisine et le clavier.
Distinction : - Hermomo' le Chat. Noir et sarcastique mais chat tout de même é_è [Shamu' :3]
Poisson 2018 [Amal']
Rat de mon zoo sur le thème des rats [Ministre de la Culture]
Date d'inscription : 07/09/2015

[script] Soucis de perte d'information d'un module à un autre Empty [script] Soucis de perte d'information d'un module à un autre

Mar 5 Sep 2017 - 21:44
Hello, désolé pour le titre pas clair car je savais pas comment résumer le soucis.

J'utilise deux modules qui me permettent d'ajouter des formules aux états qui sont actif.
Le 1er permet de rajouter une formule de dégât à l'état (pour en faire un dot quoi, comme une brûlure), et qui conserve l'information du lanceur de l'état pour faire ce calcul.
Spoiler:


Le second permet diverses formules, et pour cet état je lui fait modifier les états actif (je vire le 1er etat pour en mettre un autre qui lui aussi a une formule de dégat).
Spoiler:

Sauf qu'en faisant ça le 1er perd l'information de qui avait posé le 1er état. Du coup impossible de faire fonctionner ma formule de dégât sur le 2nd état vu que l'information des stats du lanceur originel sont perdues.

Du coup, si quelqu'un saurait comment je pourrais modifier ça pour que ces informations restent.
Car ça me permettrait certains effets comme un poison aggravé si on le relance.
Ashala
Ashala
Membre

Nombre de messages : 546
Age : 32
Localisation : L'Antre-Deux-Mondes.
Distinction : "A une araignée au plafond" [Nowa]
Date d'inscription : 09/06/2016

[script] Soucis de perte d'information d'un module à un autre Empty Re: [script] Soucis de perte d'information d'un module à un autre

Mar 5 Sep 2017 - 22:34
Que veux-tu faire exactement avec ces deux plugins ? Tu as parlé de poison aggravé, tu veux donc qu'après un premier état "poison", il empire et le dot aussi ?

En gros, tu voudrai que le nouveau ait encore en mémoire les données du lanceur de sort pour calculer la formule, c'est bien ça ?
Tu as un exemple de ton code pour voir comment tu l'utilises ?

-> Si c'est ainsi la solution est peut-être juste de stocker les informations concernant les stats du lanceurs dans une variable et de la ressortir pour le passage au second état.
Hermoni
Hermoni
Membre

Nombre de messages : 1042
Localisation : Quelque part entre la cuisine et le clavier.
Distinction : - Hermomo' le Chat. Noir et sarcastique mais chat tout de même é_è [Shamu' :3]
Poisson 2018 [Amal']
Rat de mon zoo sur le thème des rats [Ministre de la Culture]
Date d'inscription : 07/09/2015

[script] Soucis de perte d'information d'un module à un autre Empty Re: [script] Soucis de perte d'information d'un module à un autre

Mar 5 Sep 2017 - 23:44
En gros oui, l'idée c'est d'avoir un état "évolutif".
Le soucis d'enregistrer dans des variables certaines données c'est que soit ça ferait foirer le multi-dot (j'y avais pensé à faire un seul dot dont la formule est fonction d'une variable qui s'incrémente, mais en cas de multi-dot ça marcherait pas), soit ça poserait soucis si plusieurs dot sont lancés par divers personnages (genre moi j'en mets un sur l'ennemi, lui en met un sur un de mes personnage).

Normalement si j'ai bien pigé, le 1er plugin enregistre pour chaque état concerné qui est le lanceur. Mais lors de l'ajout via le second le lanceur originel n'est pas repris (aucune idée de c'que ça prend exactement, mais tout est mit à 0 du coup).
Du coup faudrait juste que la pose du 2nd état soit fait par le même, mais aucune idée de comment ainsi.


Code:
<formula:(4*(a.level+10)+a.mat*5-b.mdf*2)*0.3>
<state damage modifier: defender>
if (this.item().damage.elementId === 3) {
  b.removeState(8)
}
if (this.item().damage.elementId === 2) {
  b.removeState(8)
  b.addState(44)
}
return d
</state damage modifier>

Voila à quoi ça ressemble dans le 1er dot (une brûlure).
La 1ère ligne c'est la formule qui gère le dégat à la fin du tour (oui, ma formule est compliquée).

Le reste c'est le 2eme plugin qui en gros si on prend une attaque d'eau ça vire la brulure, si on lance une attaque de feu ça renforce le dot de la brûlure en changeant l'état par l'état 44 qui lui aura une formule plus puissante.
Ashala
Ashala
Membre

Nombre de messages : 546
Age : 32
Localisation : L'Antre-Deux-Mondes.
Distinction : "A une araignée au plafond" [Nowa]
Date d'inscription : 09/06/2016

[script] Soucis de perte d'information d'un module à un autre Empty Re: [script] Soucis de perte d'information d'un module à un autre

Mer 6 Sep 2017 - 7:54
C'est pas forcément la solution, prend ça plutôt comme un cheminement de pensée pour qu'on puisse tout les deux continuer à réfléchir sur comment optimiser ça :

Tu prends le plugin d'Hime suivant : Formula effect
Il permet juste d'écrire du js directement dans les notetag des compétences (et de récupérer directement les valeurs a et b au lancement).
Je te le conseille car lorsque j'essayais de récupérer les valeurs d'a et b par un call d'event commun initié par une compétence, ils étaient devenu undefined entre temps...

Tu crée deux variables : celle avec l'ID "X" qui stockera a.level, "Y" pour a.mat et b.mdf tu n'en aura pas besoin en toute logique.

Du coup, dans la -compétence- (pas l'état !) qui lance la première altération tu met :

Code:
<formula effect>
$gameVariables.setValue(X, a.level);
$gameVariables.setValue(Y, a.mat);
</formula effect>

En remplaçant bien sûr X et Y

(Et à partir de là je pars en réflexion totale car j'ai juste tilté pour le problème rencontré [script] Soucis de perte d'information d'un module à un autre 339251 )

puis tu va à la page du state 44 et tu remplaces a.level et a.mat par V[X] et V[Y] dans la formule héritée du premier plugin.
Si tu avais besoin de réutiliser le state 44 seul, il suffit d'en créer une instance différente avec la formule initiale.

Après, vient le problème du multiple dot, comme tu l'avais dis. Ca devient tout de suite plus dense, mais c'est pas impossible:

Pour ça, tu récupères la valeur de b.isActor() et de b.index() de la même façon. Ensuite il te reste à mettre un double if dans le formula effect (une pour l'actor lancée, puis pour le lanceur)... Ça fait beaucoup de variables par contre, un couple par combinaison d'Actor et d'ennemi lanceur...

Pour éviter de remplacer l'état par un autre, tu vérifie que l'acteur est toujours affecté par l'état avec isStateAffected(stateId)
A partir de là tu peux soit empêcher de "réaffecter" l'état. Soit le combiner avec une autre instance de l'état si le lanceur b.index était différent... Soit, pourquoi pas, rallonger l'état de base avec resetStateCounts(stateId)

Hypothèse, je peux totalement me gourrer :
Je pense que si il y a un reset des données qu'utilise le plugin, ce n'est pas inhérent au plugin lui-même. Le système de base de RM a l'air de vouloir clairement nettoyer ses variables usuelles lorsqu'il en a l'occasion. Du coup, à moins de partir sur une solution totalement différente, je pense qu'il faudra automatiquement sauvegarder ces valeurs dans une variable :/
Hermoni
Hermoni
Membre

Nombre de messages : 1042
Localisation : Quelque part entre la cuisine et le clavier.
Distinction : - Hermomo' le Chat. Noir et sarcastique mais chat tout de même é_è [Shamu' :3]
Poisson 2018 [Amal']
Rat de mon zoo sur le thème des rats [Ministre de la Culture]
Date d'inscription : 07/09/2015

[script] Soucis de perte d'information d'un module à un autre Empty Re: [script] Soucis de perte d'information d'un module à un autre

Mer 6 Sep 2017 - 18:43
Merci pour le coup de patte.
En fait après réflexion je pense que je vais rester "simple", car j'avais un peu oublié un truc : Les ennemis n'ont PAS de lvl, donc je serais obligé de leur créer des attaques et statuts spécifiques (j'ai mis un moment à faire ma formule de dégât pour mes personnages donc je vais pas la changer).
Du coup ça évite certains soucis. Après du coup ya le cas où il y aurait plusieurs personnages jouable qui utilisent le même dot mais je pense pas laisser cette possibilité (ou sinon je ferais un état pour chacun).

En tout cas la 1ère partie, de mettre dans des variables résout mon problème principal^^
Ashala
Ashala
Membre

Nombre de messages : 546
Age : 32
Localisation : L'Antre-Deux-Mondes.
Distinction : "A une araignée au plafond" [Nowa]
Date d'inscription : 09/06/2016

[script] Soucis de perte d'information d'un module à un autre Empty Re: [script] Soucis de perte d'information d'un module à un autre

Mer 6 Sep 2017 - 19:08
Ah mais les ennemis -peuvent- avoir des lvl grâce aux plugins de Yanfly ou Hime xD
M'enfin, ravie d'avoir pu t 'aider quoiqu'il en soit, bonne continuation !
Hermoni
Hermoni
Membre

Nombre de messages : 1042
Localisation : Quelque part entre la cuisine et le clavier.
Distinction : - Hermomo' le Chat. Noir et sarcastique mais chat tout de même é_è [Shamu' :3]
Poisson 2018 [Amal']
Rat de mon zoo sur le thème des rats [Ministre de la Culture]
Date d'inscription : 07/09/2015

[script] Soucis de perte d'information d'un module à un autre Empty Re: [script] Soucis de perte d'information d'un module à un autre

Mer 6 Sep 2017 - 19:13
Ouais, mais c'est pas le genre de truc que j'ajouterais. J'ai jamais été particulièrement fan des ennemis qui montent en lvl.
En tout cas j'pense que ça m'aidera sur d'autres sorts que j'avais pas encore mis en place^^
Contenu sponsorisé

[script] Soucis de perte d'information d'un module à un autre Empty Re: [script] Soucis de perte d'information d'un module à un autre

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