Thema: Objekt & Scenariocalls beim Speichern. Do Aug 26, 2010 8:22 pm
Hallo alle miteinander.
Die Engine ruft bekanntlich verschiedene Funktionen im Scenarioscript und in Objektscripten selbstständig auf, wie etwa RelaunchPlayer() oder Initialize(). Nun suche ich eine solche Funktion die beim Speichern aufgerufen wird. Sprich, sobald der Spieler speichert wird diese Funktion aufgerufen und es wird z.B. ein Sound abgespielt oder eine Nachricht ausgegeben. Falls es eine globale Funktion gibt die das gesamte Prozedere beim Speichern zuständig ist wäre ich ebenfalls dankbar wenn diese genannt würde.
ClonkGeist Brigadegeneral
Anmeldedatum : 23.01.10
Thema: Re: Objekt & Scenariocalls beim Speichern. Fr Aug 27, 2010 12:56 pm
Sowas gibt es nicht. Es gibt nur "RemovePlayer(int iPlayer)". Du kannst aber, um vor dem Speichern aufzurufen, EliminatePlayer und SurrenderPlayer überladen.
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Objekt & Scenariocalls beim Speichern. Fr Aug 27, 2010 2:13 pm
RemovePlayer, EliminatePlayer und SurrenderPlayer haben doch nichts mit dem Speichern zu tun Oo.
Du könntest Log überladen und "Spiel wird gespeichert" bzw "Spiel wieder aufgenommen" (oder so) abfangen. Nicht schön, aber möglich.
ClonkGeist Brigadegeneral
Anmeldedatum : 23.01.10
Thema: Re: Objekt & Scenariocalls beim Speichern. Fr Aug 27, 2010 2:32 pm
EliminatePlayer speichert den Spieler. SurrenderPlayer speichert auch den Spieler. Und RemovePlayer wird aufgerufen, wenn der Spieler entfernt wird und das passiert nach dem speichern.
Wenn da jetzt anders gemeint war, hab ich das falsch verstanden.
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Objekt & Scenariocalls beim Speichern. Fr Aug 27, 2010 10:44 pm
@Limeox: Ich hab das jetzt mal so gemacht, nur um zu testen ob es funktioniert. Eine Holzhütte ist vorhanden.
Code:
global func Log(string szMessage) { if(szMessage == "Spiel wird gespeichert...") FindObject(HUT2)->Explode(30);
return(_inherited()); }
Eig. müsste doch nun eine Holzhütte explodieren wenn ich speichere. Jedenfalls tut sie es wenn ich
Code:
Log("Spiel wird gespeichert...");
in der Kommandozeile eingebe. Aber beim Speichern tut sie es nicht. Die Message die beim Speichern im Log kommt ist "Spiel wird gespeichert...", da bin ich sicher. Hab ich etwa die falsche Funktion überladen?
Gurkenglas Oberst
Anmeldedatum : 04.01.09
Thema: Re: Objekt & Scenariocalls beim Speichern. Fr Aug 27, 2010 10:58 pm
Die meisten Logs werden ohne den Umweg über Log() in den Log geschrieben... den Log auslesen geht so einfach auch nicht. Der einzige Weg wäre, das Szen von einem Dedi hosten zu lassen, den den Logstream lesen zu lassen und bei einem Spiel wird gespeichert... einen Input ins Spiel zu tun, der dann im Script eine Reaktion hervorruft.
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Objekt & Scenariocalls beim Speichern. Fr Aug 27, 2010 11:09 pm
Hm, okay. Andere Frage: Ist es möglich die Engine eine Spielerdatei speichern zu lassen ohne den Spieler zu eliminieren? Also einen Befehl der den Speichervorgang auslöst?
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Objekt & Scenariocalls beim Speichern. Sa Aug 28, 2010 12:29 am
Nein, das geht nicht. Du kannst bestenfalls Werte per SetPlrExtraData setzen, aber die werden wimni auch nur dann permanent gespeichert wenn das Spiel beendet oder der Spieler eliminiert wird .
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Objekt & Scenariocalls beim Speichern. Sa Aug 28, 2010 12:41 am
Limeox schrieb:
Du kannst bestenfalls Werte per SetPlrExtraData setzen, aber die werden wimni auch nur dann permanent gespeichert wenn das Spiel beendet oder der Spieler eliminiert wird .
Jop das die gespeichert werden muss die Spielerdatei gespeichert werden. Nun, damit ist das Thema abgeschlossen, außer jemand weiß noch was tolles dazu.