Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > comment une créature emmet-elle un son...
comment une créature emmet-elle un son...
Par Morethil le 3/11/2002 Ã 0:02:25 (#2465993)
Quelqu'un pourrait il m'expliquer comment ça fonctionne ?
Voilà ce que j'ai fait :
- J'ai crée un trigger.
- J'ai créer un son que j'ai disposé sur la map, et j'ai décoché la case "actif" sur le son
- J'ai ma créature pas loin.
Ensuite j'ai mis un Scripte sur le OnEnter du trigger (le OnPerception de la créature n'allait pas car les PJ sont visible de trop loin)
Le scripte :
void main()
{
//Ma créature
object oCreature = GetNearestObjectByTag("tag_creature");
//c'est le nom du fichier de son (avec le tag du son crée ça ne
//marchait pas)
string sAboie = "as_an_dogbark5";
//Le PJ qui va déclancher le trigger
object oMoveTo = GetEnteringObject();
//L'endroit d'où viens la créature, et ou elle va retourner
object oNiche = GetWaypointByTag("WP_de_creature");
//Un jeton interne au trigger pour qu'il ne s'active qu'une
//seule fois
int iTalk = GetLocalInt(OBJECT_SELF,"Talk_Once");
//Les conditions (si jamais activé et oMoveTo = PJ)
if (GetIsPC(oMoveTo) && (iTalk==0))
{
//Les conséquences
// Poser le jeton sur le trigger
SetLocalInt(OBJECT_SELF,"Talk_Once",1);
// Commande retardée d'1s (La créature va vers le PJ en
//courrant)
DelayCommand(1.0f, AssignCommand(oCreature,
ActionMoveToObject(oMoveTo, TRUE)));
//Commande retardée de 1+4s (la créature emmet le son)
DelayCommand(5.0f, AssignCommand(oGorgone, PlaySound
(sAboie)));
//Commande retardée de 5+3s (La créature retourne a la
//niche en marchant)
DelayCommand(8.0f, AssignCommand(oGorgone,
ActionMoveToObject(oNiche)));
//Commande retardé de (8+3s (la créature fait s'oriente dans
//le sens de son waypoint)
DelayCommand(11.0f,ActionDoCommand(SetFacing(GetFacing
(oNiche))));
}
}
Voilà . Mon probleme se situe au niveau du son. Je l'entend bien, mais après que la créature soit retourné a sa niche.
Je ne sait même pas si c'est mon scripte qui le lance.
Si vous pouviez juste me donner une petite leçon sur les son :)
Merci d'avance.
Par Morethil le 3/11/2002 Ã 21:33:39 (#2472864)
Donc si vous avez déja réussit a faire emettre un son par une créature à partir d'un scripte, je veux bien que vous m'expliquiez comment vous avez fait. Oui, je sait, la réponse doit etre simple :)
A+
Par mobidique le 3/11/2002 Ã 23:41:20 (#2473998)
Par Jedaï le 4/11/2002 à 0:05:26 (#2474166)
Mais alors pourquoi elle retarde !!! :confus:
Par Morethil le 4/11/2002 Ã 8:00:17 (#2475070)
Par mobidique le 4/11/2002 Ã 10:07:18 (#2475432)
Par Morethil le 4/11/2002 Ã 10:49:31 (#2475607)
DelayCommand(5.0f, SoundObjectPlay(oAboie));
Et cette fois ca ne marche pas du tout. Je n'entend rien.
Pour cette ligne la j'ai définit le son comme un objet (c'est ce qui était indiqué par aurora), avec pour referance le ("Tag") de l'objet son. (GetNearestObjectByTag, etc)
Entre ça et ce que j'avais fait precedament j'ai essayé avec le AssignCommand (oGorgone, etc. mais ca ne donnait rien non plus. Donc j'ai supposé que le son était joué directement (et non a travers une créature, puisqu'il était directement nommé comme objet.
Juste pour repréciser ce qu'il y avait avant :
DelayCommand(5.0f, AssignCommand(oGorgone, PlaySound
(sAboie)));
La reference sAboie était définie a partir du nom du fichier du son que je cherchait. sAboie = "fichier_son_x";
Si vous voyez ce qui cloche, moi je seche.
Par eMRaistlin le 4/11/2002 Ã 11:16:03 (#2475750)
Et cette fois ca ne marche pas du tout. Je n'entend rien.
Pour cette ligne la j'ai définit le son comme un objet (c'est ce qui était indiqué par aurora), avec pour referance le ("Tag") de l'objet son. (GetNearestObjectByTag, etc)
Et bien entendu, tu as positionné un son sur l'area avec le toolset ? Ou alors, tu fais un createobject ?
Par Morethil le 4/11/2002 Ã 12:53:57 (#2476474)
JOL Archives 1.0.1
@ JOL / JeuxOnLine