Building Events: Unterschied zwischen den Versionen
Zeile 18: | Zeile 18: | ||
Aufgerufen werden die folgenden Funktionen: | Aufgerufen werden die folgenden Funktionen: | ||
− | + | <syntaxhighlight lang="javascript"> | |
function OnSleep() { | function OnSleep() { | ||
return true; | return true; | ||
} | } | ||
+ | </syntaxhighlight> | ||
Wird aufgerufen, sobald man die Schlafenszeit eingestellt hat. Liefert diese Funktion true zurück, so wird das Schlafengehen NICHT abgebrochen, sondern fortgesetzt. liefert sie false oder gar nichts, wird abgebrochen, allerdings nur *genau* ein mal. Man kann also das Schlafen gehen nur einmalig unterbrechen. | Wird aufgerufen, sobald man die Schlafenszeit eingestellt hat. Liefert diese Funktion true zurück, so wird das Schlafengehen NICHT abgebrochen, sondern fortgesetzt. liefert sie false oder gar nichts, wird abgebrochen, allerdings nur *genau* ein mal. Man kann also das Schlafen gehen nur einmalig unterbrechen. | ||
+ | <syntaxhighlight lang="javascript"> | ||
function OnGuard( guardshift, delay, who, guardshortname ) { | function OnGuard( guardshift, delay, who, guardshortname ) { | ||
return true; | return true; | ||
} | } | ||
+ | </syntaxhighlight> | ||
Wird direkt nach OnSleep erstmals aufgerufen (wenn nicht unterbrochen wurde), und danach jeweils am *Beginn* der Wache. delay gibt die Wachedauer in Stunden an (für alle 3 gleich), who enthält die CharacterID (-1, wenn keine Wache eingeteilt wurde). Sofern true zurückgeliefert wird, wird der Wachezyklus normal fortgesetzt, bei false wird er abgebrochen. | Wird direkt nach OnSleep erstmals aufgerufen (wenn nicht unterbrochen wurde), und danach jeweils am *Beginn* der Wache. delay gibt die Wachedauer in Stunden an (für alle 3 gleich), who enthält die CharacterID (-1, wenn keine Wache eingeteilt wurde). Sofern true zurückgeliefert wird, wird der Wachezyklus normal fortgesetzt, bei false wird er abgebrochen. | ||
− | + | <syntaxhighlight lang="javascript"> | |
function OnLeave() { | function OnLeave() { | ||
return true; | return true; | ||
} | } | ||
+ | </syntaxhighlight> | ||
Wird beim Verlassen des Lagers (Abbruch bei Straße und Dungeon, Weiterreisen bei Natur, Zimmer verlassen bei Herberge) aufgerufen. Wiederum kann mit return false; das "normale" Verlassen unterbrochen werden, während mit return true; ganz normal verlassen wird. | Wird beim Verlassen des Lagers (Abbruch bei Straße und Dungeon, Weiterreisen bei Natur, Zimmer verlassen bei Herberge) aufgerufen. Wiederum kann mit return false; das "normale" Verlassen unterbrochen werden, während mit return true; ganz normal verlassen wird. |
Version vom 9. Juli 2014, 23:17 Uhr
//TODO: Building Events allgemein beschreiben.
Camp Trigger
Damit ihr die Zeugen umsetzen könnt, habe ich das "Camp Scripting", das bereits für spezielle RouteEvents (zB AbandonedHostel, lawinencamp usw.) verfügbar war, jetzt generell für alle Camps verfügbar gemacht.
Grundsätzlich werden die BuildingEvents verwendet, um das "Gesamtskript" für ein Camp zu setzen, und zwar jeweils das ERSTE gefundene BuildingEvent mit korrektem Namen und dem Typ "skript".
Für Dungeons: campDungeon
Für Lager im Dorf auf der Straße (toll für nächtlichen Diebstahl ;)): campStreet
Für Lager in einer Herberge: campHostel
Für Lager auf der Karte, sofern KEIN spezielles Lager (zB besonderer Rastplatz / RouteEvent) eingestellt ist: campNature
Angesehen werden für die jeweiligen Events, in der hier angegebenen Reihenfolge:
Für Dungeons: ALL
Für Lager im Dorf: aktuelles Dorf + ALL
Für Lager in der Herberge: aktuelles Dorf + ALL
Für Lager in der Natur: Ausgangsdorf der Route, Zieldorf der Route und ALL
Aufgerufen werden die folgenden Funktionen:
function OnSleep() { return true; }
Wird aufgerufen, sobald man die Schlafenszeit eingestellt hat. Liefert diese Funktion true zurück, so wird das Schlafengehen NICHT abgebrochen, sondern fortgesetzt. liefert sie false oder gar nichts, wird abgebrochen, allerdings nur *genau* ein mal. Man kann also das Schlafen gehen nur einmalig unterbrechen.
function OnGuard( guardshift, delay, who, guardshortname ) { return true; }
Wird direkt nach OnSleep erstmals aufgerufen (wenn nicht unterbrochen wurde), und danach jeweils am *Beginn* der Wache. delay gibt die Wachedauer in Stunden an (für alle 3 gleich), who enthält die CharacterID (-1, wenn keine Wache eingeteilt wurde). Sofern true zurückgeliefert wird, wird der Wachezyklus normal fortgesetzt, bei false wird er abgebrochen.
function OnLeave() { return true; }
Wird beim Verlassen des Lagers (Abbruch bei Straße und Dungeon, Weiterreisen bei Natur, Zimmer verlassen bei Herberge) aufgerufen. Wiederum kann mit return false; das "normale" Verlassen unterbrochen werden, während mit return true; ganz normal verlassen wird.
Bitte beachtet jeweils, dass der Aufruf eines Dialogs IMMER asynchron verläuft, ihr könnt also Nicht "nach" dem startdlg ein return true; hinpacken, startdlg kehrt nämlich sofort wieder in die Ausführung zurück, selbst wenn der Dialog noch angezeigt wird. Ihr könnt aber zB beim OnLeave mit "leaveLocation()" das Lager verlassen, beachtet aber, dass anders als beim OnSleep diee Funktion OnLeave *beliebig oft* das Verlassen abbrechen kann, also vorsicht vor Endlosschleifen :).