World of Gothic Archiv > Neverwinter Nights
Gespräche
Seite 1 von 1  1 
04.04.2004, 17:26 #1
Jaay2266
Beiträge: 15
Gespräche
Hi!

Zum Toolset:
Wie kann ich das anstellen, dass ein NPC mir einmal nen Auftrag gibt und dann wenn ich ihn wieder anspreche, er etwas anderes sagt? Gibts dafür n Script, muss ich das selber schreiben oder gibts dafür nen Assistenten?

MFG
Jaay
04.04.2004, 17:52 #2
$tormRider
Beiträge: 208

Du klickst auf die erste Begrüßung und klickst rechts unten unter dem Register Text erscheint wenn... auf den Hut. Dann machst du ein häckchen neben Lokale Variable überprüfen und gehst auf weiter. Im oberen Feld gibst du den Namen der Variablen ein(kannst dir irgendeinen aussuchen) und im unteren Feld gibts du eine 0 ein.
Danach klickst du auf Hinzufügen und dann auf Weiter. Dort gibts du dann den Namen für das Script ein.
Dann gehst du auf die Zeile, in der der NPC den Auftrag gibt und klickst im Register Erfolgte Aktionen wieder auf den Hut. Dort dann auf Lokale Variable zuweisen und dann auf weiter. In das obere Feld gibst du wieder den Namen der Variablen ein, den du vorher schon benutzt hast. In das untere Feld gibst du diesmal eine 1 ein. Danach wieder auf Weiter und wieder einen Namen eingeben.
Danach gehst du auf die zweite Begrüßung und machst unter dem Register Text erscheint wenn... wieder das gleiche, wie bei der ersten Begrüßung, nur musst du diesmal nicht eine 0 sondern eine 1 eingeben.

Ich hoffe ich hab alles so beschrieben, dass man es auch versteht :D
04.04.2004, 18:36 #3
Jaay2266
Beiträge: 15

Danke. Aber da fällt mir gleich noch was ein.
Wie mach ich das, dass ein NPC auf mich zukommt und mich Anspricht wenn ich in ein Auslöserfeld trete?

Jay
04.04.2004, 20:39 #4
Brigand
Beiträge: 45

Dieses Script fügst du unter (onperception) bei der Kreatur ein:

void main()
{
object oPC = GetLastPerceived();
if (!GetIsPC(oPC)) return;
if (!GetLastPerceptionSeen()) return;
object oTarget;
oTarget = OBJECT_SELF;
AssignCommand(oTarget, ClearAllActions());
AssignCommand(oTarget, ActionStartConversation(oPC, "name der conversation"));
}

Effekt: Sobald der NPC den Spieler sieht, geht er auf ihn zu und spricht ihn an.
04.04.2004, 21:25 #5
$tormRider
Beiträge: 208

Wenn du aber willst, dass der NPC dich anspricht, wenn man auf einen Auslöser tritst(so wie es in deinem Post steht :D) muss das Skript noch ein bisschen geändert werden.

code\:
void main()
{
object oPC = GetEnteringObject();
object oTarget = GetObjectByTag("Kennzeichnung des NPCs");

if(GetIsPC(oPC))
{
AssignCommand(oTarget, ActionMoveToObject(oPC));
AssignCommand(oTarget, ActionStartConversation(oPC));
}



Dieses Skript musst du bei OnEnter beim Auslösers einfügen.

Wenn du willst, dass der NPC dich nur einmal anspricht musst du noch eine Variable einfügen

code\:
void main()
{
object oPC = GetEnteringObject();
object oTarget = GetObjectByTag("Kennzeichnung des NPCs");
int iVar = GetLocalInt(oPC, "Name der Variablen");

if((GetIsPC(oPC)) && (iVar == 0))
{
AssignCommand(oTarget, ActionMoveToObject(oPC));
AssignCommand(oTarget, ActionStartConversation(oPC));
SetLocalInt(oPC, "Name der Variablen", 1);
}
}

Jetzt wird auch überprüft, ob du den Auslöser schon mal betretten hast.
05.04.2004, 14:40 #6
Jaay2266
Beiträge: 15

Mensch, Danke. Woher wisst ihr das denn alles?
Gibts da irgendwo n superverständliches Tutorial, was auch
ich kapiere? (':)')
Seite 1 von 1  1