World of Gothic Archiv > NWN-Hilfe
Habe Probleme mit "SetCommandable()" !
Seite 1 von 1  1 
10.07.2002, 20:18 #1
Fantasyelf
Beiträge: 36
Habe Probleme mit "SetCommandable()" !
Wann setzt man "SetCommandable()" ein und wann "ActionDoCommand(SetCommandable())" ? Funktioniert das auch mit dem PC, weil ich dem PC sagen möchte, was er tun soll, und vom Player nicht dabei gestört werden soll ?
10.07.2002, 20:28 #2
Gawain15
Beiträge: 1.084

ActionDoCommand sagt ja das es in der Action Queue abgearbeitet werden soll... wenn du keine hast brauchste das ja auch nicht.

Was genau willst du mit dem Spieler machen?

SetCommandable ist AFAIK dafür zuständig die Actionqueue zu unterbrechen um andere Aktionen bei "aussergewöhnlichen" Ereignissen auszuführen... du kannst den Spieler nicht einfach "einfrieren", nur stoppen mit ClearAllActions
10.07.2002, 20:34 #3
Fantasyelf
Beiträge: 36

Ich möchte, das der Spieler am Anfang, wenn er den Auslöser betritt, etwas sagt und zwischendurch die Gegend untersucht, da er nicht weiß wo er ist. Sozusagen eine Sequenz in der Grafikengine, wo der Spieler nur zuguckt.

Und warum steht beim Leah-Quest hintereinander:
ActionDoCommand(SetCommandable(TRUE));
SetCommandable(FALSE);
10.07.2002, 20:51 #4
Gawain15
Beiträge: 1.084

TRUE = 1, ja, wahr
FALSE = 0, nein, unwahr

Also warum das so da steht kann ich dir nicht sagen, aber das ist ein und der selbe Befehl... Du kannst den Spieler keinen RandomWalk Befehl geben, du kannst ihn nicht einmal Steuern. Du kannst allerdings das Script aus dem Scriptesammlungs Thread nehmen damit der Spieler etwas sagt sobald er das Spiel betritt.
10.07.2002, 22:57 #5
Fantasyelf
Beiträge: 36

Den PC kann man steuern, z.B. wenn er einen Auslöser betritt:

object oPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC);
object oTruhe=GetObjectByTag("Chest");
ClearAllActions();
AssignCommand(oPC,ActionSpeakString("Wo bin ich?"));
AssignCommand(oPC,ActionMoveToObject(oTruhe,FALSE,1.0));
Assigncommand(oPC,ActionInteractObject(oTruhe));

Ich möchte aber, das er dabei vom Spieler nicht gestört wird, z.B. von einem Mausklick des Spielers an eine andere Position.
10.07.2002, 23:01 #6
Gawain15
Beiträge: 1.084

hm mal mit AssignCommand(oPC, ActionDoCommand(SetCommandable(False)));

am Anfang der Actionqueue probiert?
10.07.2002, 23:19 #7
Fantasyelf
Beiträge: 36

Es funktioniert. Danke für Deinen Tipp.

Jetzt kann ich sogenannte "Zwischensequenzen" in der Spielgrafik erstellen.

Bin gerade dabei, ein Dorf richtig lebendig wirken zu lassen.
z.B.:

- Leute gehen mittags in die Kneipe und abends wieder nach Hause
- die Wirtin verteilt Biere an ihre Gäste, die ein Bier fordern
- Leute gehen arbeiten
- usw.

Deshalb würde ich gerne wissen, was ganz genau fDistance und fDuration bei ActionForceMoveToObject bedeuten.
11.07.2002, 12:10 #8
Gawain15
Beiträge: 1.084

Theoretisch könnte man den Spieler wenn er das Spiel betritt seine gesamte Ausrüstung ablegen lassen und er kann nichts dagegen tun und ihn dann anschließend von Server kicken, aber sowas machen wir ja nicht... oder doch? :) Man könnte dann aber auch eine Sequenz erstellen wo der Spieler gefangen genommen wird und er dann wieder ohne Ausrüstung irgendwie rauskommen muß... wäre mal ganz interessant.

Also bei den beiden Sachen kann ich auch nur raten, logisch wäre aber das die Kreatur zu dem Gegenstand/Wegpunkt nur fduration lang läuft und dann aufhört hinzu laufen oder nur fdistance nahe herangeht... aber probieren geht über studieren.
11.07.2002, 12:29 #9
Fantasyelf
Beiträge: 36

Na ja, dann werde ich mal die fDurations herausfinden müssen, damit die NPC's exakt den ganzen Weg laufen. Das könnte bei 10-20 Dorfbewohnern mit je 3-6 Wegen eine Weile dauern. Ich will gar nicht daran denken, wenn ich das für eine Stadt machen muß.
Aber wenn die NPC's mit ActionMoveToObject auch in Häuser rein oder raus gehen können, würde mir das sehr viel Zeit sparen.
11.07.2002, 12:38 #10
Gawain15
Beiträge: 1.084

du musst fduration und fdistnce nicht setzen, die gehen automaitsch wohin du willst... du kannst übrigens einen Wegpunkt in eine andere Area (das innere eines Hauses z.B.) setzen und die Kreaturen benutzen Gebietsübergänge um dort hinzugelangen.
11.07.2002, 12:44 #11
Fantasyelf
Beiträge: 36

Das ist gut, das erspart mir eine Menge Zeit. Damit rückt der Traum einer "lebenden" Stadt schon näher.
Seite 1 von 1  1