Einzelnen Beitrag anzeigen
Alt 24.01.2013, 17:29   #8 (permalink)
Moerderhoschi
Armed-Assault.de Team10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 38
Beiträge: 2.666
Standard

Zitat von Vienna Beitrag anzeigen

Es ist anzunehmen, dass sleep Zeiten bei den Clients unterschiedlich lang sein können.

Bei dieser Anforderung kommt es auf 1 Sekunde nicht an.

Zitat von Vienna Beitrag anzeigen

Code:
WetterNeu = "400 setOvercast 0.65;0 setRain 0";
publicVariable "WetterNeu";
Dieser Code bewirkt nur das innerhalb von 400 Sekunden das Wetter auf den Wert 0.65 gestellt wird. Was nach den 400 Sekunden passiert ist davon nicht mehr abgedeckt. Das Wetter wird sich wieder aendern und zwar auf jedem Client anders.

Das selbe beim Regen, ein einfaches 0 setrain 0 ohne schleife die es permanent bei diesem Wert haelt ist zwar moeglich jedoch wenn das Wetter sich verschlechtert wird es trotzdem anfangen zu regnen.

Zitat von Vienna Beitrag anzeigen

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
Diese Variante haelt das Wetter nicht konstant.

Auch hier wird nicht der weitere Verlauf des Wetters beruecksichtigt so das nach der umstellung des Wetters und nach einer Zeit X wieder auf jedem Client wilkuehr herschen wird.

Zitat von Wolkenbeisser Beitrag anzeigen

Ich gehe mal davon aus, dass wir hier von einer Abweichung von max. ein paar Sekunden reden, oder? Das Runterzählen der Sekunden - wenn dann einmal gestartet - sollte ja dann auf jeder Maschine ziemlich exakt die 400 Sekunden dauern (ich vermute hier wird die Systemuhr der jeweiligen Maschine verwendet).

Ich denke, dass es hier also höchstens vor Zählbeginn (aus übermittlungstechnischen Gründen wie Lags und so), oder evtl. nachher zu leichten Verzögerungen kommen kann.

Richtig, der Zeitunterschied ist hierbei so trivial so das es fuer deinen Anwendungszweck vollkommen vernachlaessigt werden kann.


Zitat von Wolkenbeisser Beitrag anzeigen

Trotzdem hast Du natürlich recht, dass bei Deiner Variante die Wetterzustände auf den Clients 'gleicher' sind. Je nach Art der zu übermittelnden Befehle kann das schon mal den Unterschied zwischen 'Leben' und 'Tod' eines Spielers ausmachen.

Das sehe ich anders.

Teste das Beispiel von Vienna mal im Zeitraffer durch, ich hatte nach der kompletten ausfuehrung des Codes den Zeitraffer aktiviert und nach 15 Minuten immer unterschiedliches Wetter bei 3 Testlaeufen.

Sobald die 400 sekunden abgelaufen sind wird das Wetter auf einen random Wert gesetzt (y setOvercast x). Bei 3 Versuchen hatte ich einen Overcast Wert von [0.19 | 0.05 | 0.72].

gruß
hoschi
__________________


Moerderhoschi ist offline