Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > [script] Probleme avec un script de spawn
[script] Probleme avec un script de spawn
Par shadoh le 16/11/2002 à 15:00:05 (#2575102)
J'ai récemment essayé de creer un script de spawn pour les besoins de mon module mais le probleme suivant se pose :
Lorsque j'enregistre mon script, j ai le message suivant :
16/11/02 14:56:05 : Erreur. 'spawn_loup_hiver' nest pas compilé.
spawn_loup_hiver.nss(16): ERREUR : DECLARATION DOES NOT MATCH PARAMETERS
// Spawn de loups personnalises aux WP definis
///////////////////////////////////////////////////////////////////////////////////////////////////
void main()
{
int nRandom = Random(3);
int nObjectType = OBJECT_TYPE_CREATURE;
int bUseAppearAnimation = TRUE;
object oActionSubject = GetObjectByTag("InvisibleObject");
string sTemplate = "louphivernal";
location lLocation1 = GetLocation(GetWaypointByTag("wp_loup1"));
location lLocation2 = GetLocation(GetWaypointByTag("wp_loup2"));
location lLocation3 = GetLocation(GetWaypointByTag("wp_loup3"));
//////////////////////////////////////////////////////////////////////////////////////////////////
if (nRandom == 1)
{
AssignCommand(oActionSubject, CreateObject(nObjectType,sTemplate,lLocation1,bUseAppearAnimation));
}
else if (nRandom == 2)
{
AssignCommand(oActionSubject, CreateObject(nObjectType,sTemplate,lLocation2,bUseAppearAnimation));
}
else
{
AssignCommand(oActionSubject, CreateObject(nObjectType,sTemplate,lLocation3,bUseAppearAnimation));
}
}
____________________________________________________
Ce script se declancherait sur le on Death d'un loup que j'ai créé. Il assignerait la commande de creation d'un loup avec le resref "louphivernal" à un objet invisible que j'ai posé sur mon area. Mais malheureusement impossible de le compiler. Alors si quelqu'un pouvait m'expliquer ce qui ne fonctionne pas ça serait sympa.
Merci d'avance.
Par Stan Kley le 16/11/2002 à 15:58:29 (#2575407)
Par Tynril le 16/11/2002 à 16:10:35 (#2575466)
Il te faut créer une nouvelle fonction qui copie CreateObject mais sans retour :)// Spawn de loups personnalises aux WP definis
///////////////////////////////////////////////////////////////////////////////////////////////////
void VoidCreateObject(nObjectType,sTemplate,lLocation,bUseAppearAnimation) {
CreateObject(nObjectType,sTemplate,lLocation3,bUseAppearAnimation);
}
void main()
{
int nRandom = Random(3);
int nObjectType = OBJECT_TYPE_CREATURE;
int bUseAppearAnimation = TRUE;
object oActionSubject = GetObjectByTag("InvisibleObject");
string sTemplate = "louphivernal";
location lLocation1 = GetLocation(GetWaypointByTag("wp_loup1"));
location lLocation2 = GetLocation(GetWaypointByTag("wp_loup2"));
location lLocation3 = GetLocation(GetWaypointByTag("wp_loup3"));
//////////////////////////////////////////////////////////////////////////////////////////////////
if (nRandom == 1)
{
AssignCommand(oActionSubject, VoidCreateObject(nObjectType,sTemplate,lLocation1,bUseAppearAnimation));
}
else if (nRandom == 2)
{
AssignCommand(oActionSubject, VoidCreateObject(nObjectType,sTemplate,lLocation2,bUseAppearAnimation));
}
else
{
AssignCommand(oActionSubject, VoidCreateObject(nObjectType,sTemplate,lLocation3,bUseAppearAnimation));
}
}
Par shadoh le 16/11/2002 à 17:50:43 (#2575980)
Néanmoins j'ai toujours une erreure qui me dit ceci :
16/11/02 18:00:47 : Erreur. 'spawn_loup_hiver' nest pas compilé.
spawn_loup_hiver.nss(4): ERREUR : INVALID DECLARATION TYPE
____________________________________________________
EDIT : j'ai re-écrit le script comme ceci :
// Spawn de loups personnalises aux WP definis
////////////////////////////////////////////////////////////////////////////////////
void VoidCreateObject()
{
int nRandom = Random(3);
int nObjectType = OBJECT_TYPE_CREATURE;
int bUseAppearAnimation = TRUE;
string sTemplate = "louphivernal";
location lLocation1 = GetLocation(GetWaypointByTag("wp_loup1"));
location lLocation2 = GetLocation(GetWaypointByTag("wp_loup2"));
location lLocation3 = GetLocation(GetWaypointByTag("wp_loup3"));
if (nRandom == 1)
{
CreateObject(nObjectType,sTemplate,lLocation1,bUseAppearAnimation);
}
else if (nRandom == 2)
{
CreateObject(nObjectType,sTemplate,lLocation2,bUseAppearAnimation);
}
else
{
CreateObject(nObjectType,sTemplate,lLocation3,bUseAppearAnimation);
}
}
////////////////////////////////////////////////////////////////////////////////////
void main()
{
object oActionSubject = GetObjectByTag("InvisibleObject");
AssignCommand(oActionSubject, VoidCreateObject());
}
Ca s'enregistre correctement. Pourriez vous me dire si cela fonctionnera ?
Par Jedaï le 16/11/2002 à 20:57:52 (#2576952)
Néanmoins, j'ai récemment eu le cas de quelqu'un chez qui une commande comparable mais avec ActionDoCommand() plantait, alors...:maboule:
Par shadoh le 16/11/2002 à 21:03:39 (#2576977)
Merci encore pour vos précieux conseils :).
JOL Archives 1.0.1
@ JOL / JeuxOnLine