World of Gothic Archiv > NWN-Hilfe
Sitzende Wache
Seite 1 von 1  1 
10.09.2002, 16:30 #1
Vuje
Beiträge: 14
Sitzende Wache
Ich wollte gerne eine Stadtwache erschaffen, die man dabei überrascht, daß sie sich ausruht..ggf. pennt. Also habe ich mir gedacht ein OnSpawn zu erstellen, womit die Wache mit ActionRest sich ausruht. Da ich aber sehr wenig Ahnung habe, wie so ein script eigentlich aussehen muss...hier die frage: wer kann mir helfen und eventuell die vorhergehensweise erklären, wie sowas gemacht wird, das wäre fett. Danke

vuje
10.09.2002, 16:47 #2
Shamba
Beiträge: 37

Damit eine Kreatur schläft, folgendes bei OnSpawn einfügen:

void main()
{ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectSleep(), OBJECT_SELF);
}

Hab' das mal aus der Scriptsammlung von Gawain rauskopiert ;)

Findest du hier, falls du noch was wissen willst. Stehen schon schön viele und vor allem brauchbare Dinge drin:

http://forum.gamesweb.com/forums/ne...threadid=168214
10.09.2002, 16:55 #3
Vuje
Beiträge: 14

Danke für den Tip. Aber kann ich dann noch die Wache ansprechen und einen Dialog führen. Am besten wäre es wenn man die Wache anspricht, einen Dialog führt und, nach knapp ner minute nach Ende des Dialogs, die Wache sich wieder hinsetzt und weiterdöst.
Ich muss sagen, daß ich das in meiner Rübe schon alles vorstellen kann, aber etwas aus der Theorie ins Machbare umzusetzen klappt bei mir noch nicht, leider.

Dein Link will nicht so richtig...da wird das Fenster geöffnet, um auf den Thread hier zu antworten.

vuje
10.09.2002, 17:18 #4
therealjoker
Beiträge: 48

Hmm, probiers mal so (Habs noch nicht getestet, mein Neverwinter Nights schmiert zur Zeit immer ab):
code\:

void main()
{
object oNPC=OBJECT_SELF;
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectSleep(), oNPC);
object oPC=GetFirstPC();
if(GetDistanceToObject(oPC)<=3.0)
{
RemoveEffect(oNPC, EffectSleep());
}
if((!IsInConversation(oNPC)) && (GetFirstEffect(oNPC)!=EffectSleep()))
{
ActionWait(60.0);
ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectSleep(), oNPC));
}
}


Immer wenn der Spieler 3m oder weniger von der Wache entfernt ist, wacht die Wache auf und solange sie nicht im
Gespräch mit dem Spieler ist, schläft sie nach einer Minute auch wieder ein.


___________________________

"Kein Alkohol ist auch keine Lösung!"
-Campino, Die Toten Hosen[/font]
10.09.2002, 17:20 #5
Shamba
Beiträge: 37
oops
So, hier der richtige Link:
http://forum.gamesweb.com/forums/sh...threadid=153410

Das mit der Umsetzung meiner Ideen klappt leider auch nicht. Deshalb gucke ich hier sehr viel nach irgendwelchen Lösungen, obwohl einige bei mir dann auch nicht laufen :(
Kann dir da leider auch nicht weiterhelfen, da ich nicht skripten kann. Ich versuche es ja, aber bisher ist da noch nichts brauchbares bei rausgekommen ...
10.09.2002, 17:44 #6
therealjoker
Beiträge: 48

Scripten ist doch gar nicht so schwer. Die Hauptsache dabei ist aber immer üben, üben und nochmals üben. Nur so kann man's erlernen.
10.09.2002, 17:49 #7
Shamba
Beiträge: 37

Hehe, das sagt sich so leicht! Wenn bei mir kein Script läuft, weiß ich auch nicht was nun richtig und was falsch war! ;)
Wüsste ich z.B. wo der Fehler liegt, könnte ich durch ausprobieren ja vielleicht mal eine richtige Lösung finden, aber ich schreibe ständig irgendwas um, ergänze oder lösche Teile und irgendwie ändert sich an den Handlungen der NPC's nichts. Sie bleiben immer da stehen wo ich sie hingestellt habe ...
11.09.2002, 08:26 #8
Vuje
Beiträge: 14

Ich habe es versucht...doch leider klappt es nicht.
Aber vielleicht, habe ich auch mein Problem nicht richtig erläutert.
Aber erstmal, was passiert: Ich komme in eine neue Gegend. Fange direkt vor den Toren der Stadt (noch außerhalb) an. Direkt vor dem Tor ist diese Wache. Wenn ich die oben genannten scripts verwende, liegt die Wache zwar dort, man kann sie aber nicht ansprechen.

Was ich mir vorgestellt habe ist folgendes: Eine Wache sitz vor dem Tor und döst (nach dem Motto, wie viele Bürger im Stadtzentrum machen, wenn man die Viertel nicht gesäubert hat. Die sitzen da und warten. Wenn ich nun meine Wache so platziere, daß es aussieht, sie würde sich gegen die Mauer lehnen, und dabei immer wieder ein "...zzz..." über dem Kopf erscheint (evtl. als Heartbeat?), hat man den Eindruck, daß sie sich ausruht, bzw. schläft.) So, nun möchte ich aber, daß man einen Dialog mit ihr startet, wenn man die Wache anspricht. Dabei sollte sie schon aufstehen. Nach Beendigung des Dialogs, soll sie, am besten verzögert, sich wieder hinsetzen und weiterdösen.

Ist sowas denn überhaupt möglich? Ich habe nämlich die Motivation verloren weiter zu basteln, solange ich diese verdammte Wache nicht hinkriege.

Tja...soweit mein Problem. Wäre nett wenn jemand ne Lösung parat hat.

vuje

psch werd mal im erten Kapitel gucken, was für ein Script das "sitzende Volk" hat.
11.09.2002, 08:27 #9
Vuje
Beiträge: 14

so...nun habe ich endlich diese smileys abgeschaltet.
11.09.2002, 09:49 #10
Shamba
Beiträge: 37
ich versuchs mal ...
So, ich hab mir das mal angeguckt. Kann selber zwar nicht so richtig skripten, was man auch daran sieht, das meine eigenen Skripts nie laufen, aber egal.
So, wenn du das hier (aus Scriptsammlung) im onheartbeat der Wache einfügst, setzt sie sich auf den Boden und es sieht auch so aus als wenn sie vor sich hin dösen würde (damit sie sich gleich hinsetzt, fügst du das gleiche Skript ohne die Zeile ActionWait(7.0); am besten noch in OnSpawn ein). Die 7.0 im OnHeartbeat kannst du ruhig erhöhen, damit die Wache sich nicht schon nach 7 Sekunden nach dem Gespräch wieder hinsetzt, sondern erst nach z.B. 40.0 Sek.
Wenn man die Wache anspricht, steht sie auf und redet mit einem, danach setzt sie sich halt wieder auf den Boden.

void main()
{
if(Random(3) == 0 && IsInConversation(OBJECT_SELF) == FALSE)
{
SpeakOneLinerConversation();
}
if(IsInConversation(OBJECT_SELF) == FALSE)
{
ActionWait(7.0);
ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS,1.0,4000.0);
}
}

So, leider konnte ich keine Lösung finden, wie man das "...zzz..." einbauen kann. Ich habe eine andere Wache daneben gestellt, die mit dem Befehl ActionDoCommand ... der schlafenden Wache die Wörter zuweist. Das klaptt auch. Es erscheint dann immer ein "...zzz..." über dem Kopf der sitzenden Wache. Leider auch wenn man sich mit ihr im Gespräch befindet! Also auch nicht Sinn der Sache.
Ich habe auch versucht einfach ActionSpeakString ins OnHeatrbeat der sitzenden Wache einzufügen, geht aber auch nicht. Der Heartbeat wird erst ausgeführt, wenn die Wache nicht mehr sitzt, d.h. also auch erst wenn man mit ihr redet ...
Also wenn du auf das "...zzz..." verzichten kannst, versuch es mal so wie oben beschrieben.
11.09.2002, 11:39 #11
Elessar
Beiträge: 495

Für das zzzz gibt es nen effeckt, snore heisst der glaube ich. Das Problem beim letzt geposteten Schlafscript ist, dass man den Effeckt nicht einfach ein RemoveEffect mit der Art des Effeckts in der Klammer hintun kann, sondern man muss durch sämtliche Effeckte auf dem Objekt scrollen und sich den Schlafeffeckt heraussuchen und diesen dann löschen...
Ich bin momentan in der Schule, kann dir frühstens heute Abend ein Script liefern...
Seite 1 von 1  1