Ca existe pas OnActived non ?
De toutes façon, tous les problèmes de ce genre se traite de la même façon : on utilise les variables locales à un objet.
Il s'agit de variables qu'on attache à un objet bien particulier grâce aux fonctions :
SetLocalInt(), SetLocalFloat(), SetLocalString(), SetLocalLocation() et SetLocalObject().
Ces 5 fonctions ont les mêmes paramètres : SetLocalTruc( objet auquel on attache la variable(object), nom de la variable (string), valeur de la variable(du type spécifié par Truc));
Exemple :
//Ce code attache une variable entière au PC qui est
//en train de parler, de nom "bFirstTalk" et de valeur 1
//il s'agit d'un script sur une "action conséquente" dans une discussion
void main() {
object oPC = GetPCSpeaker();
SetLocalInt( oPC, "bFirstTalk", 1 );
}
Maintenant, il faut pouvoir récupérer ces variables à partir d'un autre script, ceci se fait avec les fonctions :
GetLocalInt(), GetLocalFloat(), GetLocalString(), GetLocalLocation() et GetLocalObject().
Ces 5 fonctions ont toutes les mêmes arguments : GetLocalTruc( objet auquel est attaché la variable à récupérer(object), nom de la variable à récupérer(string);
Elles renvoient la valeur de la variable du nom et du type spécifié attaché à l'objet spécifié. (Les fonctions SetLocal*() ne renvoient rien)
Exemple :
//Ce code se trouve sur une autre branche de la discussion du
//script précédent, cette fois-ci il s'agit d'une "condition d'exécution"
//ce script va vérifier que le PJ a déjà parlé au moins une fois au PNJ
int StartingConditional() {
object oPC = GetPCSpeaker();
//Attention, la casse du nom de variable est importante
return ( GetLocalInt( oPC, "bFirstTalk" ) );//n'oublions pas que
//toute valeur différente de 0 est considéré comme "VRAI" en NWScript
}
Avec ces renseignements, tu devrais être en mesure de faire ce que tu veux, sinon, demandes de l'aide.