Einzelnen Beitrag anzeigen
Alt 24.01.2013, 11:57   #6 (permalink)
Vienna
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Es ist anzunehmen, dass sleep Zeiten bei den Clients unterschiedlich lang sein können. So würde ich für MP den Wetter-Takt beim Server/Host regeln und den jeweiligen Wetterbefehl mit publicVariable senden. Das hat auch den Vorteil, dass so zufälliges Wetter erstellt werden kann.

Beim Server/Host den "Wetterbefehl" als Text in in die globle Variable WetterNeu verfassen, und mit publicVariable an den Auslöser senden. z.B:
Code:
WetterNeu = "400 setOvercast 0.65;0 setRain 0";
publicVariable "WetterNeu";
Der (mehrfach!) Auslöser dient bei jedem Spieler als Empfänger für die Wetterbefehle:
Code:
Auslöser:
Achse A und B: 0
Aktivierung  : Keiner | Mehrfach
Bedingung    : not isNil "WetterNeu"
Bei Akt.     : call compile WetterNeu; WetterNeu = NIL
In der Bei Akt. Befehlszeile des Auslösern wandelt compile den Text auf Code um und führt den Code mit call aus. WetterNeu = NIL entfernt die Variable samt Befehlstext und der Auslöser ist für einen neuen Befehl bereit.

Hier noch ein Beispiel für begrenztes zufälliges Wetter:
Code:
 
_wolken   = format["%1 setOvercast %2;", floor((random 300)+200), floor((random 50)+50)/100];
_regen    = format["%1 setRain %2;",     floor((random 400)+300), floor((random 40)+10)/100];
WetterNeu = _wolken + _regen;
publicVariable "WetterNeu";

Wolken: Zeitraum 200-500, Stärke 0,5 - 1,0
Regen : Zeitraum 300-700, Stärke 0,1 - 0,5
Es ist natürlich auch möglich zuerst nur die Wolken zu senden und nach einiger Zeit dann den Regen.

Geändert von Vienna (24.01.2013 um 13:46 Uhr).
Vienna ist offline