Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Recherche script "adorateur"
Recherche script "adorateur"
Par Zariel le 21/1/2003 à 22:28:23 (#3071626)
J'ai vu dans plusieurs modules des NPC se prosternant devant une statue ou une éfigie.
Quelqu'un sait ou je peut le trouver ou le connait ?
Merci.
Par Jaha Effect le 21/1/2003 à 22:36:42 (#3071685)
Jaha Effect :D
Par Zariel le 21/1/2003 à 22:57:36 (#3071849)
Juste une chose encore, un truc tout bête que je ne retrouve plus. Comment faire parler un personnage qui marche ? Un vieillard parlant tout seul par exemple.
Par RAT le 21/1/2003 à 22:58:06 (#3071857)
Tu dois mettre cela dans le onspawn de tes npc:
Premier script :
void prier_loop ()
{
ActionPlayAnimation( ANIMATION_LOOPING_MEDITATE, 1.0, 8.0);
ActionDoCommand( prier_loop() );
}
void main()
{
ActionDoCommand(prier_loop());
}
Et deuxième, je pense que c'est plus celui qui t'interresse:
void prier_loop ()
{
ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP, 1.0,10.0);
ActionDoCommand( prier_loop() );
}
void main()
{
ActionDoCommand(prier_loop());
}
il faut peut être mettre un AssignCommand(OBJECT_SELF,.....) mais je ne pense pas.
Voilouu :)
Par Zariel le 21/1/2003 à 22:58:41 (#3071862)
Sinon, quelq'un sait pour ma 2eme question, j'avais le script mais je l'ai paumé :(
Par Jaha Effect le 22/1/2003 à 3:13:22 (#3073116)
Dans le OnPerception de ton PNJvoid main()
{
if(GetIsPC(GetLastPerceived()))
{
SignalEvent(OBJECT_SELF,EventUserDefined(200));
}
}
Dans le OnUserDefine de ton PNJvoid main()
{
int nDice = d10 (1);
float fSpeed = 1.0;
float fSeconds = 1.5;
switch(GetUserDefinedEventNumber())
{
case 200:
{
if(!IsInConversation(OBJECT_SELF))
{
if (nDice == 1)
{
SpeakString("Qu'est ce que j'ai fait de ce sort!");
PlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, fSpeed, fSeconds);
ActionRandomWalk ();
}
if (nDice == 2)
{
SpeakString("non, c'est pas encore ca!");
PlayAnimation(ANIMATION_FIREFORGET_READ, fSpeed, fSeconds);
ActionRandomWalk ();
}
if (nDice == 3)
{
SpeakString("Mais qui a range cette bibliotheque!");
PlayAnimation(ANIMATION_FIREFORGET_READ, fSpeed, fSeconds);
ActionRandomWalk ();
}
if (nDice == 4)
{
SpeakString("C'est epuisant a ranger cette bibliotheque!");
PlayAnimation(ANIMATION_LOOPING_PAUSE_TIRED, fSpeed, fSeconds);
ActionRandomWalk ();
}
if (nDice == 5)
{
SpeakString("Cool, j'ai retrouve mon parchemin d'invocation d'elementaux!");
PlayAnimation(ANIMATION_FIREFORGET_VICTORY1, fSpeed, fSeconds);
ActionRandomWalk ();
}
if (nDice == 6)
{
SpeakString("Que fait ce manuel de Dracologie ici, c'est pas sa place !");
PlayAnimation(ANIMATION_FIREFORGET_READ, fSpeed, fSeconds);
ActionRandomWalk ();
}
if (nDice == 7)
{
SpeakString("Voyons voir, ca va ou les receuils de poesie Elfique!");
PlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_RIGHT, fSpeed, fSeconds);
ActionRandomWalk ();
}
if (nDice == 8)
{
SpeakString("*Crie* Quel est le con qui a laisse une mimique dans la bibliotheque!");
PlayAnimation(ANIMATION_LOOPING_TALK_FORCEFUL, fSpeed, fSeconds);
ActionRandomWalk ();
}
if (nDice == 9)
{
SpeakString("hehehe un parchemin de stase temporelle!");
PlayAnimation(ANIMATION_LOOPING_TALK_LAUGHING, fSpeed, fSeconds);
ActionRandomWalk ();
}
if (nDice == 10)
{
SpeakString("arf, Playboy, Harve changera jamais decidement!");
PlayAnimation(ANIMATION_LOOPING_TALK_LAUGHING, fSpeed, fSeconds);
ActionRandomWalk ();
}
DelayCommand(12.0,ClearAllActions());
DelayCommand(24.0,SignalEvent(OBJECT_SELF,EventUserDefined(200)));
}
else
{
DelayCommand(12.0,SignalEvent(OBJECT_SELF,EventUserDefined(200)));
}
}
}
}
Vala :)
Jaha Effect :D
Par Zariel le 22/1/2003 à 8:18:16 (#3073465)
Trés marrant ce monologue :D
Par Megilindir le 22/1/2003 à 9:43:43 (#3073741)
Tu lances un script dans le OnUserDefine mais c'est quoi la différence avec lancer un dialogue avec phrases aléatoires ? (Dans le cas où le pnj n'a rien d'autre à dire que ces phrases là.)
Et en plus, on peut mettre les accents dans le dialogue, pas dans le script (ben quoi ? c'est hyper important les accents :maboule: )
Par RAT le 22/1/2003 à 10:12:24 (#3073883)
Tu le tapes dans blocs note ou dans word enfin n'importe quel editeur de texte et tu fais un copier coller.
Voilà, tu auras les accents.
Par Jaha Effect le 22/1/2003 à 12:06:43 (#3074619)
Provient du message de Megilindir
Petite question bête à propos du script de Jaha.
Tu lances un script dans le OnUserDefine mais c'est quoi la différence avec lancer un dialogue avec phrases aléatoires ? (Dans le cas où le pnj n'a rien d'autre à dire que ces phrases là.)
Et en plus, on peut mettre les accents dans le dialogue, pas dans le script (ben quoi ? c'est hyper important les accents :maboule: )
Heu si je me trompe pas il m'a demandé quelqu'un qui parle tout seul... un dialogue implique d'être deux :)
Bon là l'histoire du OnUserDefine permet d'économiser du CPU, le monologue ne démarrera que lorsque le PNJ aura vu un PC (OnPerceive) et relancera le scripte toute les 6 secondes a la manière d'un OnHeartBeat.
Jaha Effect :D
Par Jedaï le 22/1/2003 à 12:47:11 (#3074901)
sisi tu peux en mettre des accents dans les scripts. C'est plus chiant et plus long mais c'est possible.
Tu le tapes dans blocs note ou dans word enfin n'importe quel editeur de texte et tu fais un copier coller.
Voilà, tu auras les accents.
Tu peux également utiliser la zone du filtre des fonctions, moi c'est ce que je fais, et puis si j'ai beaucoup d'accent j'ai plus qu'à copier-coller à partir du script lui-même.:D
Par RAT le 22/1/2003 à 12:51:48 (#3074948)
Merci jedaï:)
Par Megilindir le 22/1/2003 à 14:05:53 (#3075596)
Heu si je me trompe pas il m'a demandé quelqu'un qui parle tout seul... un dialogue implique d'être deux
Je pensais à un truc du style :
void main()
{
DelayCommand(5.0, ActionStartConversation(OBJECT_SELF));
}
Et dans le dialogue du perso mettre toutes les phrases à la suite, avec dans la condition d'exécution :
int StartingConditional()
{
return Random(x) == 0;
}
(x est bien entendu remplacé par un chiffre)
Et dans action conséquente de chaque phrase un script qui vérifie si le pj est encore là et si c'est le cas renvoit au dialogue.
Il me semble que ça fait pareil que le script de Jaha, mais comme je suis pas très doué, je voulais savoir s'il y a une différence quelconque entre les 2 méthodes ou si c'est pareil.
Vi je sais, c'est une question un peu inutile.
Par Jaha Effect le 22/1/2003 à 14:36:30 (#3075880)
Provient du message de Megilindir
Je pensais à un truc du style :
void main()
{
DelayCommand(5.0, ActionStartConversation(OBJECT_SELF));
}
Et dans le dialogue du perso mettre toutes les phrases à la suite, avec dans la condition d'exécution :
int StartingConditional()
{
return Random(x) == 0;
}
(x est bien entendu remplacé par un chiffre)
Et dans action conséquente de chaque phrase un script qui vérifie si le pj est encore là et si c'est le cas renvoit au dialogue.
Il me semble que ça fait pareil que le script de Jaha, mais comme je suis pas très doué, je voulais savoir s'il y a une différence quelconque entre les 2 méthodes ou si c'est pareil.
Vi je sais, c'est une question un peu inutile.
Heu la différence saute aux yeux, ils te faut 50 scriptes, conditions d'execution et tout et tout, moi je fait ça en deux petits scriptes ;)
Jaha Effect :D
JOL Archives 1.0.1
@ JOL / JeuxOnLine