World of Gothic Archiv > NWN-Hilfe
Problem mit Trigger und NPC
Seite 1 von 1  1 
08.07.2002, 20:06 #1
Kal Ort Por
Beiträge: 12
Problem mit Trigger und NPC
Moin,

das folgende habe ich aus einem Tutorial übernommen, nur leider funktioniert es nicht besonders :)

Ich habe einen Trigger mit

OnEnter-Ereigniss

void main()
{
object oNPC = GetObjectByTag("NPC_COLLIAS");
object oPC = GetEnteringObject();
if(GetIsPC(oPC) &&
GetLocalInt(oPC,"Dlg_Init_" + GetTag(oNPC)) == FALSE &&
!IsInConversation(oNPC))
{
AssignCommand(oPC,ClearAllActions());
AssignCommand(oNPC,ClearAllActions());
AssignCommand(oNPC,ActionMoveToObject(oPC));
AssignCommand(oNPC,ActionStartConversation(oPC));
}
}

OnExit-Ereigniss

void main()
{
string sTag = "NPC_COLLIAS";
object oExit = GetExitingObject();
if(GetTag(oExit) == sTag)
{
AssignCommand(oExit,ClearAllActions());
AssignCommand(oExit,ActionMoveToObject(GetNearestObjectByTag("WP_RETURN_" + sTag)));
}
}

Beim NPC OnSpawn ist folgendes noch drin

SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT)
(wobei ich das nicht ganz verstehe, da das Event nirgends abgefragt wird)

Und bei der ersten Begrüßung des NPCs steht folgendes

void main()
{
SetLocalInt(GetPCSpeaker(), "Dlg_Init_" + GetTag(OBJECT_SELF), TRUE);
}

So, folgendes sollte passieren: NPC kommt zum Spieler und fängt an zu quasseln. Nach dem Gespräch haut der NPC wieder ab zu einem bestimmten Punkt.
Folgendes passiert aber: NPC rennt zum Spieler und das wars.

Hat jemand so ein Script schonmal selber gebaut? Oder erkennt jemand den Fehler?

bye bye
Kal
08.07.2002, 20:51 #2
Gawain15
Beiträge: 1.084

Also ich hab es eben gerade mal mit einem eigenen Script probiert und ich bin schon soweit das mich der NPC anspricht allerdings geht er nicht zum Wegpunkt... ich bin der Sacheauf der Spur, schaff das heute noch.
09.07.2002, 09:12 #3
Lord Xerxes
Beiträge: 42

Das mit dem Ansprechen würde ich genauso machen.
Damit der NPC am Ende des Gesprächs zurück zu seinem Wegpunkt geht, einfach am Ende des Gesprächs in Action ausführen ein script reinsetzen, was so aussehen müßte:
void main()
{
object oNPC = GetObjectByTag("NPC_COLLIAS");

AssignCommand(oNPC,ClearAllActions());
AssignCommand(oNPC,ActionMoveToObject(GetNearestObjectByTag("WP_RETURN_" + sTag)));
}

Hab ich jetzt mal so aus dem Kopf geschrieben. Ich hoffe, ich hab keinen Fehler gemacht.
/e ach ja, und im Trigger wird dann natürlich kein onexit script benötigt
09.07.2002, 10:26 #4
Kal Ort Por
Beiträge: 12

Hmm, das klingt gut. Ich werd das mal ausprobieren und dann bescheid geben
09.07.2002, 10:32 #5
Gawain15
Beiträge: 1.084

aber du musst den sTag noch definieren glaub ich. Also halt dein NPC.
09.07.2002, 10:52 #6
Kal Ort Por
Beiträge: 12

Klasse, das funktioniert so. Jetzt muss ich den NPC nur noch beibringen, das er, wenn er zurück gegangen ist, nicht die Hauswand anschaut, sondern sich wieder umdreht.
Ich hab gedacht der NPC orientiert sich an der Richtung des Wegpunktes, das tut er aber leider nicht.

Aber trotzdem danke danke
09.07.2002, 11:12 #7
Gawain15
Beiträge: 1.084

Kuck dir mal den Befehl "SetFacing" an... nur mal so ein Tip :)
09.07.2002, 11:29 #8
Kal Ort Por
Beiträge: 12

Manchmal ist es einfacher als man denkt :)

Danke
Seite 1 von 1  1