World of Gothic Archiv
Alle Beiträge von Spheres
Seite 1 von 1  1 
31.07.2002, 10:05 #1
Spheres
Beiträge: 4
Aktionen verzögern - Aktionen verzögern
HILFE!
Weiss jemand wie man eine Aktion verzögert ausführen kann?<br>
Mein Problem: Ich möchte, dass der PC ein Fass mit Schwarzpulver anzündet und dieses aber erst nach ein paar Sekunden explodiert.
Leider fliegt mir das Ding immer sofort um die Ohren :(
<br><br>
Und wenn ich schon am Fragen bin:<br>
Ich möchte, dass nachdem dieses Fass explodiert ist, ein bestimmter Gebietsübergang an einen anderen Ort führt als zuvor. Kann man einen Gebietsübergang via Script anpassen, dass ein neuer Zielpunkt gewählt wird?
<br><br>
Ich bin für jede Hilfe dankbar.
31.07.2002, 13:22 #2
Spheres
Beiträge: 4
Aktionen verzögern - mal probieren
Ahnung von Scripten? Das ist was zum essen oder? ;)

Fragt mich nicht wie man ein neues Script schreibt, aber mehr oder weniger kann ich verschiedene Bestehende zusammen pasten. So auch dieses. Ich glaube aber den ActionWait() habe ich da schon drinn. Aber ich werde es mal heute Abend mit dem DelayCommand versuchen...

Zum Thema Wegpunkt: Ich habe mal etwas in den Foren gesucht. Bin ich auf dem Richtigen Weg wenn ich versuche mit CreateObject einen Wegpunkt im Script zu erstellen?

Übrigens finde ich es cool, dass man hier so schnell eine Antwort bekommt! Muss ich an dieser Stelle echt mal sagen!
04.08.2002, 11:54 #3
Spheres
Beiträge: 4
Variable setzen ohne Gespräch - Variable setzen ohne Gespräch
Hallo

Nach einem Tag vergebens probieren, gebe ich auf.
Kann mir jemand sagen ob ich eine bezw. mehrere Variable(n) ausserhalb von einem Gespräch setzen kann?

Mein Problem ist folgendes: Nachdem der PC ein Feuer gelegt hat, rennen die Wachen zum Feuer um es zu löschen. Sobald das Feuer gelegt ist, sollte eine Variable gesetzt werden, damit ich diese bei einem Gespräch mit den Wachen abfragen kann um zu verhindern, dass mich diese freundlich grüssen, wärend sie dabei sind das Feuer zu löschen. Ebenso sollte ich diese Variable auch in einer anderen Locatin noch zur verfügung haben, damit ich dort ein anderes WP Ziel setzen kann.

Folgenden Befehl habe ich schon probiert, funktioniert aber nicht. Vermute dass diesr nur in einem Gespräch funktioniert?

SetLocalInt(GetNextPC(), "iFireQuest", 1);
04.08.2002, 17:03 #4
Spheres
Beiträge: 4
Variable setzen ohne Gespräch - so lege ich das Feuer...
Bei onUse des Objects (z.B. Kiste oder Heuballen) einfügen:

void main()
{
object oArea = GetArea(OBJECT_SELF);
object oPC = GetLastUsedBy();
string sTorchTag = "NW_IT_TORCH001";


if (GetLocalInt(GetPCSpeaker(), "iSoldierQuest") == 0)
{

AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, SpeakString("Wie unvorsichtig einen Heuballen in einem Raum mit Schwarzpulver zu lagern!", TALKVOLUME_TALK));


if (GetTag(GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC)) == sTorchTag ||
GetTag(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC)) == sTorchTag )
{
// Animation Feuer entfachen
AssignCommand(oPC,ClearAllActions());
AssignCommand(oPC,ActionMoveToObject(OBJECT_SELF,FALSE,0.5));
AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW));

// Rauch
effect eSmoke = EffectVisualEffect(VFX_FNF_SMOKE_PUFF);
DelayCommand(0.2,ApplyEffectToObject(DURATION_TYPE_INSTANT,eSmoke,OBJECT_SELF));

AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, SpeakString("Jetzt aber nichts wie weg!", TALKVOLUME_TALK));


// Erstes Feuer entzuenden
DelayCommand(1.0,ExecuteScript("sdtarmor_f01", oArea));

// Zweites und Drittes Feuer entzuenden
DelayCommand(2.0,ExecuteScript("sdtarmor_f02", oArea));

// Viertes Feuer entzuenden
DelayCommand(4.0,ExecuteScript("sdtarmor_f03", oArea));

// Fuenftes Feuer entzuenden
DelayCommand(5.0,ExecuteScript("sdtarmor_f04", oArea));

// Sechstes Feuer entzuenden und Explosion
DelayCommand(6.0,ExecuteScript("sdtarmor_f05", oArea));

// Explosionsspuren
DelayCommand(8.5,ExecuteScript("sdtarmor_f06", oArea));

// Wachen gehen loeschen
DelayCommand(10.0,ExecuteScript("sdtarmor_f07", oArea));

}
}
}

Beispiel für Script sdtarmor_f01:

void main()
{

location FireLoc = GetLocation (GetObjectByTag ("Feuer01"));
CreateObject (OBJECT_TYPE_PLACEABLE, "plc_flamemedium", FireLoc);

}


Dadurch wird am Platz wo das Object in diesem Falle die Kiste steht ein Feuer-Object erstellt. Man kann so verzögert z.B nach einer Explosion auch Brandspuren positionieren.

Irgendwo im Forum gibt es auch noch ein Script mit einem explodierenden Pulverfass, das man gut kombinieren kann.

Um Feuer, Brandspuren oder Schutt an einem freien Platz zu positionieren, muss man einfach einen Wegpunkt anstelle eines Objectes als Position dafür benutzen.

Ich hoffe das ganze ist einigermassen verständlich...
Und wer kann mir jetzt MEINE Frage beantworten?
Seite 1 von 1  1