Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > besoin d'aide et oui encore
besoin d'aide et oui encore
Par souana le 28/8/2002 à 19:59:52 (#2047844)
void main()
{
object oPC = GetEnteringObject();
int nvalue = GetLocalInt(oPC, "NAGE");
if (nvalue = 1)
{
string Nage1 = "Vous voyer au nord une autre rive";
string Nage2 = "peut-etre pouvez vous nager jusqu'a la ";
DelayCommand(1.0,FloatingTextStringOnCreature(Nage1,oPC));
DelayCommand(3.0,FloatingTextStringOnCreature(Nage2,oPC));
}
else
{
string Nage3 = " Alors decider a prendre un bain!!!!";
DelayCommand(1.0,FloatingTextStringOnCreature(Nage3,oPC));
}
}
comment faire si on met une variable dans l'un des events du trigger celle ci sera automatiquement réinitialiser lorsque le PC rentre pour la seconde fois dans le trigger.....
:aide: merci de votre aide
Par Azharial del'Amrhyn le 28/8/2002 à 20:40:17 (#2048099)
Essaie ca :
void main()
{
object oPC = GetEnteringObject();
int nVal = GetLocalInt(oPC, "NAGE");
if (nVal == 1)
{
string sNage = "Phrase2";
DelayCommand(3.0,FloatingTextStringOnCreature(sNage,oPC));
}
else
{
string sNage = "Phrase1";
DelayCommand(1.0,FloatingTextStringOnCreature(sNage,oPC));
SetLocalInt(oPC, "NAGE", 1);
}
}
Par souana le 28/8/2002 à 21:20:01 (#2048420)
le tout c'est de savoir que quand on prend une valeur comme:
int nvalue = GetLocalInt(oPC, "NAGE");
cela retourne zéro.
void main()
{
object oPC = GetEnteringObject();
int nvalue = GetLocalInt(oPC, "NAGE");
if (nvalue == 0)
{
string Nage1 = "Vous voyer au nord une autre rive";
string Nage2 = "peut-etre pouvez vous nager jusqu'a la ";
DelayCommand(1.0,FloatingTextStringOnCreature(Nage1,oPC));
DelayCommand(3.0,FloatingTextStringOnCreature(Nage2,oPC));
SetLocalInt(oPC,"NAGE",1);
}
else
{
string Nage3 = " Alors decider a prendre un bain!!!!";
DelayCommand(1.0,FloatingTextStringOnCreature(Nage3,oPC));
}
}
voila le script marche y revient au même que le tien d'ailleur sauf l'ordre des phrases.
désolé de vous avoir poster ce sujet quich++, c'est venu tout seul pendant le repas......:doute:
Par souana le 28/8/2002 à 21:21:38 (#2048432)
Eeek
Par Kemay le 28/8/2002 à 22:22:20 (#2048812)
if( nvalue = 0)
Je suppose que tu veux tester si nvalue est égal à 0, à ce moment là il faut que tu remplaces cette ligne par:if( nvalue == 0)
Par souana le 29/8/2002 à 12:21:15 (#2052048)
editer/
oups en faite sur mon script j'avait bien nvalue == 0
je corrige ca desuite
Par Kemay le 29/8/2002 à 12:26:18 (#2052080)
"a = b" assigne la valeur b à la variable a
En gros si tu écris if(a = b) tu ne fais aucune vérification, si b vaut 0 le if sera toujours faux, sinon il sera toujours vrai.
Par souana le 29/8/2002 à 12:30:11 (#2052116)
donc le = assigne une valeur de droite a gauche
et le == signifie est egale a ....
ca me rappelle les bouquins que j'ai potasser sur le C et le C ++
ca revient c'est bon signe....:monstre:
Par Kemay le 29/8/2002 à 12:36:03 (#2052182)
ca revient c'est bon signe....:monstre:
Fais gaffe quand même, si dans un ascenceur tu appuies sur le bouton 4 pour aller au cinquième étage , c'est que ça revient un peu trop ;)
Par souana le 29/8/2002 à 19:58:38 (#2055701)
sinon je sait que les familiers, compagnon animals ou hechman..etc suive le PC mais est il possible de leurs faire faire des ActionJumpToLocation ?
j'ai éssayer dans un script qui fait traverser un plan d'eau, le PC.
la créature invoqué ou autre me sui par définition mais pas moyen de forcer son mouvement au bon moment.
est-ce faisable, si oui comment ?
ps: j'édite un exemple dans 5 minute...
void main()
{
object oPC = GetPCSpeaker();
object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION,oPC);// ma creature
object Iloc = GetObjectByTag("WP_NagePRS_O01");
string Nage4 = "AIIIIEEEE ces petite eraflures sont plus douloureuse que prevu....";
AssignCommand(oAnimal,ActionJumpToLocation(GetLocation(Iloc))));// le jump de l'animal
DelayCommand(3.0,AssignCommand(oPC,ActionJumpToLocation(GetLocation(Iloc))));
DelayCommand(6.0,FloatingTextStringOnCreature(Nage4,oPC));
DelayCommand(8.0,ApplyEffectToObject( DURATION_TYPE_INSTANT,EffectDamage( 2
,DAMAGE_TYPE_DIVINE),oPC,0.0f));
}
// l'animal compagnion ne fait le saut demander, il arrive par la suite forcer
// de suivre le PC !!!!
Par Azharial del'Amrhyn le 29/8/2002 à 23:54:28 (#2057441)
Exemple :
script "teleport_riviere"
void main()
{
JumpToObject(GetObjectByTag("le_tag_de_la_riviere"));
}
script qui lance tout ca :void main()
{
object oPC = GetLastUsedBy(); // ou GetEnteringObject() suivant le declenchement
DelayCommand(2.0, ExecuteScript("teleport_riviere", oPC));
object oAnimal = GetAssociate(ASSOCIATE_TYPE_SUMMONED,oPC);
DelayCommand(4.0, ExecuteScript("teleport_riviere", oAnimal));
}
Et la normalement, ta bestiole devrait suivre avec 2 sec de decalage.
Par souana le 30/8/2002 à 11:40:02 (#2059706)
j'ai préféré fair ca en un seul script.
JOL Archives 1.0.1
@ JOL / JeuxOnLine