Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Problème avec les constantes (animations)
Problème avec les constantes (animations)
Par alpha is 1337 le 11/2/2003 à 9:14:10 (#3212626)
void main()
{
DelayCommand(5.0, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT));
}
Par eMRaistlin le 11/2/2003 à 9:48:09 (#3212754)
void main()
{
DelayCommand(5.0, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT,1.0,100.0));
}
Par AlphA da keech le 11/2/2003 à 9:57:11 (#3212798)
Mais là il va rester allongé 100sec, mais après il va se lever... lol! Moi je voudrai qu'il reste tout le temps allongé... peut-être en mettant 0.0 ? lol Je sais je suis chi*nt mais bon... :)
Et puis quand on lui parle il se lève ce c*n...
Je voudrais qu'on puisse lui parler avant qu'il s'écroule, et que après, on puisse plus... Ca doit être une histoire avec des "if" ca... Bon j'vais essayer de le faire ce script (mon premier... lol) et si vous pourriez me corriger mes erreurs après ca serai cool (parce que, y'aura bcp d'erreur de quiche à mon avis...)
[EDIT]
Bon j'ai essayé:
Dans le OnSpawn:
void main()
{
DelayCommand(5.0, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT,1.0,100.0));
}
void main()
{
// La je veux dire: si le PNJ n'est pas effondré par terre...
// Seulement je sais pas comment le dire autrement.
if(OBJECT_SELF != ANIMATION_LOOPING_DEAD_FRONT);
{
SpeakString("Salut!"); // Il dit salut.
}
else
{
// La je voudrai dire qu'il fait rien et la seule
// solution que j'ai trouvé c'est de rien mettre lol.
}
}
11/02/2003 10:18:46 : Erreur. 'ivrogne_test' nest pas compilé.
ivrogne_test.nss(8): ERREUR : "if" CONDITION CANNOT BE FOLLOWED BY A NULL STATEMENT.
Par Zatournavus le 11/2/2003 à 13:08:30 (#3213924)
Toutes les instructions de type If, For, While ne prenne pas de ;
De plus, ton IF effectue un comparaison fausse :
OBJECT_SELF est un Object
ANIMATION_.... est un Int (entier)
tu n'a pas le droit de comparer des données de type différent.
Tu devrait plutot teste une fonction qui regarde si ton personnage effectue l'action que tu souhaites (cette fonction doit renvoyer un Int ou un booleen). regarde les fonctions qui commence par Get.
Pour finir, si ton ELSE est vide, pas la peine de le mettre ;)
Le ELSE est optionnel dans une instruction IF
(je suis au boulot, et donc je n'ai pas NWN sous les yeux pour aider plus)
:merci:
Par Reyan le 11/2/2003 à 14:02:43 (#3214357)
en fait ce qui serait possible c'est mettre un marqueur sur ton PNJ au moment où il s'effondre, que tu pourrais vérifier après :) un variable quoi ^_^
dans le onspawn tu met :
void main()
{
DelayCommand(5.0, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT,1.0,100.0));
DelayCommand(5.0, SetLocalInt(OBJECT_SELF, "EFFONDRE", 2));
}
void main()
{
int nAterre = GetLocalInt(OBJECT_SELF, "EFFONDRE");
//la on recupere la valeur de la variable EFFONDRE
//pour pouvoir l'utiliser plus facilement :)
if(nAterre != 2)
{
ActionSpeakString("Eh .. sa.. sa...sallu .... u ... u t!");
}
}
void main()
{
SetLocalInt(OBJECT_SELF, "ETAT", 1);
}
void main()
{
int nEtat = GetLocalInt(OBJECT_SELF, "ETAT");
if(nEtat==1)
//si il va bien, il boit
{
FloatingTextStringOnCreature("Ha ha ha !", OBJECT_SELF, FALSE);
ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
SetLocalInt(OBJECT_SELF,"ETAT", 2);
}
if(nEtat ==2)
//si il va bien, mais qu'on a deja attendu un peu, il tombe
{
DelayCommand(3.0, ActionSpeakString("Oulla, ca t ... t ...tourne ..."));
SetLocalInt(OBJECT_SELF, "EFFONDRE", 2);
DelayCommand(5.0, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT,1.0,100.0));
DelayCommand(5.0, FloatingTextStringOnCreature("Boom !",OBJECT_SELF, FALSE));
}
}
void main()
{
int nEtat = GetLocalInt(OBJECT_SELF, "ETAT");
//la on recupere la valeur de la variable EFFONDRE
//pour pouvoir l'utiliser plusfacilement :)
if(nEtat !=3)
{
//si il va bien et qu'on lui parle, il tombe
ActionSpeakString("Eh .. sa.. sa...sallu .... u ... u t!");
SetLocalInt(OBJECT_SELF, "ETAT", 3);
DelayCommand(2.0, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT,1.0,100.0));
}
}
void main()
{
object oPerceived = GetLastPerceived();
if(GetIsPC(oPerceived))
SetLocalInt(OBJECT_SELF, "ETAT", 1);
}
Par AlphA da keech le 12/2/2003 à 4:09:06 (#3219357)
JOL Archives 1.0.1
@ JOL / JeuxOnLine