JeuxOnLineForumsPlusConnectés : 641 (sites) | 1045 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Problèmes pour retrouver un effect RSS
   
Répondre
Partager Outils Rechercher
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 

Problèmes pour retrouver un effect

J'ai fait un script gérant la fatigue qui a pour but de réduire les caractéristiques des pc lorsqu'ils commencent a fatiguer. (-1 de charisme après 36 h de veillée, -1 en intelligence l'heure suivant, -1 en sagesse l'heure d'après, etc...).

Quand le pc dors, il regagne les carac perdues, sauf s'il veille depuis très longtemp auquel cas il faut se reposer plusieurs fois.

Mon problème est que je n'arrive pas a récupérer les effect qui correspondent a la caractéristique voulue, mais seulement le type d'effect (par GetEffectType).

Donc pas moyen de repérer si tel effet décroit la force, si tel effet décroit le charisme, etc...

voici mon script :

Code PHP:

effect eEffect 
GetFirstEffect(oPC);
while(
GetIsEffectValid(eEffect))
{
    
nType GetEffectType(eEffect);
    
//La il me faudrais récupérer la charactéristique déchue par l'effet
    
eEffect GetNextEffect(oPC);

voila, si quelqu'un a une idée, en passant par le script commencé si dessus où en utlisant "la ruse" ^_^
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
helas...


moi, j'ai demande a Bioware un EffectDoCommand... mais bon, chui pas sur que la gestion des effects soit vraiemnt prevu pour nous tout de suite ^^;
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Bon bah moi j'avais fait un script pour simuler la fatigue, tu peux le retrouver dans le persistant... mais je crois qu'il est moins bien que ne le sera le tien (une fois qu'il marchera), par contre il a un avantage : il est très facile à utiliser et à customiser, de plus il est très léger pour l'ordi.
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
A priori, si tu fait marcher tout ton bazar dans un seul script (avec une fonction récurrente par exemple), tu peux conserver la référence sur ton effect au fur et à mesure pour pouvoir supprimer l'effet que tu veux à la fin, mais le script risque d'être un peu confus... A priori, il faudrait décentraliser le processus dans une bibliothèque où tu aurais une fonction pour chaque heure où tu applique un effect à peu près, chacune acceptant un effect de plus comme paramètre par rapport à la précédente... Avec une fonction se répétant fréquemment, tu pourrais conditionner la suppression des effets grâce à un local int positionné dans le OnRest....
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
g proposé un truc sur le script de fatige
tu pourras crer des objets, qui creaient les effets

pour récupérer les effets
tu fais une boucle sur GetFirstEffect
qui teste le createur
non ?
Lien direct vers le message - Vieux
Avatar de Iridian
Iridian
Roi
 
Avatar de Iridian
 
Et pourquoi pas tous simplement une variable qui t'indiquerai ou tu en est de tes effets ?
Ca me parait tellement simple comme solution que j'ai probablement du rater un épisode
*va relire le post*
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
Ben ct une très bonne idée au départ, mais malheureusement, on va avoir un problème pour rapatrier l'effect (et on, pas de AssignCommand puisque la fonction renvoie quelquechose

la seule solution serait de faire des ExecuteScript sur l'objet en question, mais je sens que ca va être LOURD....

Enfin bon je pense que j'ai pas le choix :/

ce qui me tue, c'est qu'on se prend la tête pour récupérer une variable toute bète qu'il faut juste récupérer, bioware aurais quand même pu nous donner la fonction adéquoite.....

JE VEUX LE SOURCE CODE Y_Y
Lien direct vers le message - Vieux
Avatar de Iridian
Iridian
Roi
 
Avatar de Iridian
 
pourquoi ne pas stocker la variable sur l'objet "oPJ" ???
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Euh Iridian, il n'existe pas de SetLocalEffect()....
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
Bien il faut stoquer 6 variables en tout, sur 6 objets différents.

De plus, on peut jamais stoquer sur un PC sans passer par un AssignCommand, puisqu'aucun script ne prend le pc comme OBJECT_SELF.
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Mais tu n'as qu'à faire une version void de l'EffectAbilityDecrease()+ApplyEffectToObject() et ensuite utiliser un AssignCommand(), je vois pas le problème ?
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
euh... oui désolé

J'était dans la lune
Lien direct vers le message - Vieux
Avatar de Iridian
Iridian
Roi
 
Avatar de Iridian
 
Bon je ne comprend décidément rien a tous cela, je vais essayer d'expliquer comment j'aurai essayé de faire :

-dernier repos + 36H :
j'applique l'effet 1 (mettons CHA-1)
je stocke "fatigue" à la valeur 36 sur le PJ

-dernier repos + 37H
"fatigue" = 36, je sais que je vais appliquer :
le premier effet (donc CHA -1) ET
le deuxième effet (ex : FOR-1)
je met "fatigue" a 37

-dernier repos +38H
"fatigue" = 36, je sais que je vais appliquer :
-effet 1,2 et 3
etc....

Au prochain repos je remet "fatigue" à 0

On met tous ca dans une fonction avec un switch sur "fatigue" qu'on rappel toute les heures (en n'oubliant pas d'incrémenter la variable même si on est pas à un seuil).

J'espere ne pas être trop a coté quand même
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Ben si malheureusement...
Le problème n'est pas de mettre l'effet, mais de le supprimer ensuite, de façon spécifique, sachant qu'on ne peut distinguer un EffectDecreaseStrength() d'un EffectDecreaseDexterity() (oui je sais qu'il n'y a qu'une fonction avec un paramètre !!)
Nota, tu n'as qu'à aller voir mon script pour voir comment j'ai résolu le problème de la fatigue, ça ressemble beaucoup à ce que tu propose.
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
Bien le problème n'est pas de retrouver l'effet que va donner notre effect, mais l'effect lui même, afin de lancer la fonction RemoveEffect.

Comment puije, avec ton résonnement, retrouver l'effect en lui même ?

C'est bien de savoir que notre pj a perdu 2 en force, encore faut il pouvoir lui rendre

EDIT : grrrrrr y m'enerve se Jedaï




Voila, un peu de chatting avec Ormus m'a permis de trouver ce qui vous mettais dans la mauvaise voie :

Créer un nouvel effect pareil que l'ancien N'EST PAS RECUPERER CET EFFECT
en d'autres thères :

eEffect1 = EffectSleep();
eEffect2 = EffectSleep();
on a:
eEffect1 != eEffect2;

voila, ct le truc a savoir
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Problèmes pour retrouver un effect
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 10h45.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite