Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Une porte ne donnant sur rien ! ?
Une porte ne donnant sur rien ! ?
Par Etienne le 15/12/2002 à 10:15:09 (#2791370)
Dans mes cités je met une porte standard ptStand_[Cite] au tag de PTSTAND_[CITE]
J'ai créer un PNJ al_PROPRIO_H (propriétaire humain)
Et sur l'événement OnOpen, je fais se charger ce PNJ.
le BlueRef de ce PNJ a un dialogue standard.
Comme ça les 50 portes on une réaction.
Quand la conversation est finis le PNJ Proprio est détruit
Mais voilà le problème // Ca c'est le OnOpen de la porte standart de Prades
void main()
{
object oPORTE = OBJECT_SELF;
object oPJ = GetEnteringObject(); // cette instruction ne marche pas
if (GetTag(oPORTE) == "pt_StardartPrades") {
object oArea = GetArea(oPORTE);
vector vPosition = GetPosition(oPORTE);
float fOrientation = GetFacing(oPORTE);
location la = Location( oArea, vPosition, fOrientation);
object oPNJ = CreateObject(OBJECT_TYPE_CREATURE, "al_proprietaire_", la);
// cette partie là ne fonctionne donc pas.
AssignCommand(oPJ,ClearAllActions());
AssignCommand(oPNJ,ClearAllActions());
AssignCommand(oPNJ,ActionMoveToObject(oPJ));
AssignCommand(oPNJ,ActionStartConversation(oPJ));
}
DelayCommand(10.0,AssignCommand(oPORTE, ActionCloseDoor (oPORTE)));
}
Avez-vous une idée de comment reconnaître mon PJ dans ce script.
Merci
Par Jedaï le 15/12/2002 à 12:39:55 (#2792212)
// Ca c'est le OnOpen de la porte standart de Prades
void main()
{
object oPORTE = OBJECT_SELF;
//Si ca ne marche pas, essaie GetLastOpener()
object oPJ = GetLastOpenedBy();
//Je ne connait pas cette porte mais son tag n'est-il pas plutôt "pt_StandartPrades"
if (GetTag(oPORTE) == "pt_StardartPrades") {
//Ici je n'ai pas compris l'intérêt d'utiliser trois instructions pour faire
//ce qu'une seule fait aussi bien :
location la = GetLocation(oPORTE);
object oPNJ = CreateObject(OBJECT_TYPE_CREATURE, "al_proprietaire_", la);
// cette partie là ne fonctionne donc pas.
AssignCommand(oPJ,ClearAllActions());
AssignCommand(oPNJ,ClearAllActions());
AssignCommand(oPNJ,ActionMoveToObject(oPJ));
AssignCommand(oPNJ,ActionStartConversation(oPJ));
}
DelayCommand(10.0,AssignCommand(oPORTE, ActionCloseDoor (oPORTE)));
}
Par Etienne le 15/12/2002 à 13:00:56 (#2792424)
Effectivement, trois instructions pour une, ce doit être de la poésie. :maboule:
Merci de ton aide.
;)
JOL Archives 1.0.1
@ JOL / JeuxOnLine