World of Gothic Archiv
> NWN-Hilfe Problem mit Trigger und NPC |
|
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 |
||
|