Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 11.02.2011, 17:42   #1 (permalink)
Armed-Assault.de Team MG Hoschi
500 Beiträge1000 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 27
Beiträge: 1.754
Standard Day & Weather Script

Day & Weather Script

by Moerderhoschi


Ich habe vor zwei Wochen ein Script geschrieben damit auf allen Clients, auch bei JIP, die selbe Tageszeit sowie Wetter herrscht.

Sehr nuetzlich ist dieses Script bei Snipermissionen wo auf allen Clients der selbe Wind ( richtung und staerke) herrscht. Kleine boehen sind noch mit drin im Wind (find ich auch realistischer) aber die Hauptwehrichtung und Staerke bleiben gleich.

UPDATE VERISION 1.2 - 01.12.2012
  • script optimierung
  • zwei templates angefuegt

DOWNLOAD: Day&WeahterScript v1.2

Init.sqf
Code:
////////////////////////////
// START DAY&WEATHER SCRIPT
////////////////////////////
execVM "Day&WheaterScript\DW_init.sqf";
DW_init.sqf
Code:
/*===============================================================================================
Day&Weather Script - by Moerderhoschi
Armed-Assault.de
Version: 1.2
Date: 30.11.2012
===============================================================================================*/

//////////////////////////////////////////////////
// DEFINE VARIABLES
//////////////////////////////////////////////////
_p1 = 1;
_p2 = 1;

if (isMultiplayer) then
{
	_p1 = paramsArray select 0;
	_p2 = paramsArray select 1;
};

//////////////////////////////////////////////////
// GLOBAL WIND SETTINGS
//////////////////////////////////////////////////
if (isServer) then
{
	if (isNil "MdhDwWx") then
	{
		MdhDwWx = (switch (_p2) do
		{
			case 1: {(-10+(random 20))};
			case 2: {((-0.5)+(random 1))};
			case 3: {(-1+(random 2))};
			case 4: {(-2.5+(random 5))};
			case 5: {(-5+(random 10))};
			case 6: {(-10+(random 20))};
		});
	
		publicvariable "MdhDwWx";
	};

	if (isNil "MdhDwWy") then
	{
		MdhDwWy = (switch (_p2) do
		{
			case 1: {(-10+(random 20))};
			case 2: {((-0.5)+(random 1))};
			case 3: {(-1+(random 2))};
			case 4: {(-2.5+(random 5))};
			case 5: {(-5+(random 10))};
			case 6: {(-10+(random 20))};
		});
	
		publicvariable "MdhDwWy";
	};

//////////////////////////////////////////////////
// SERVER DAYTIME SETTINGS
//////////////////////////////////////////////////
	switch (_p1) do
	{
		case 1: {skiptime (ceil random 96)};
		case 2: {setDate [2020, 7, 25, 4, 0]};
		case 3: {setDate [2020, 7, 25, 5, 0]};
		case 4: {setDate [2020, 7, 25, 12, 0]};
		case 5: {setDate [2020, 7, 25, 20, 0]};
		case 6: {setDate [2020, 7, 25, 1, 0]};
		case 7: {setDate [2020, 7, 20, 1, 0]};
	};

//////////////////////////////////////////////////
// SERVER WEATHER AND RAIN SETTINGS
//////////////////////////////////////////////////
	if (isNil "MdhDwAktWeather") then
	{
		switch (_p2) do
		{
			case 1:	{MdhDwAktWeather = random 1};
			case 2: {MdhDwAktWeather = 0};
			case 3: {MdhDwAktWeather = 0.25};
			case 4: {MdhDwAktWeather = 0.5};
			case 5: {MdhDwAktWeather = 0.75};
			case 6: {MdhDwAktWeather = 1};	
		};
		
		0 setOvercast MdhDwAktWeather;
		0 setrain MdhDwAktWeather;
		publicvariable "MdhDwAktWeather";
	};
};

//////////////////////////////////////////////////
// WAITUNTIL PLAYER EXISTS
//////////////////////////////////////////////////
if (!isDedicated) then
{
	waitUntil {!(isNull player)};
	waitUntil {player == player};
	waitUntil {!isNil"MdhDwAktWeather"};
};

//////////////////////////////////////////////////
// CLIENT WEATHER SETTINGS
//////////////////////////////////////////////////
	sleep 1;
	0 setOvercast MdhDwAktWeather;
	sleep 1;

//////////////////////////////////////////////////
// CLIENT WETAHER SETTINGS FOR LONG TIME
//////////////////////////////////////////////////
	36000 setOvercast MdhDwAktWeather;

//////////////////////////////////////////////////
// PERMANENT FORCED CLIENT WIND AND RAIN SETTINGS
//////////////////////////////////////////////////
while {!isNil"MdhDwAktWeather"} do
{	
	setwind [MdhDwWx,MdhDwWy,true];
	3 setrain MdhDwAktWeather;
	sleep 1;
};
Description.ext
Code:
//////////////////////////////////////////////////
// DAY&WEATHER SCRIPT PARAMETERS
//////////////////////////////////////////////////
class Params
{
    class DayTime
    {
		//paramsArray[0]
		title = "Time Of Day";
        values[] = {1, 2, 3, 4, 5, 6, 7};
        texts[] = {"Random", "Early Morning", "Morning", "Noon", "Sundown", "Night with Full Moon", "Dark Night"};
        default = 1;
	};
	
	class Weather
    {
		// paramsArray[1]
        title = "Weather:";
        values[] = {1, 2, 3, 4, 5, 6};
        texts[] = {"Random", "Clear", "Partly Cloudy", "Cloudy", "Overcast", "Storm"};
        default = 1;
	};
};
Angehängte Dateien
Dateityp: rar Day&WeahterScript.rar (5,2 KB, 157x aufgerufen)

Geändert von Moerderhoschi (01.12.2012 um 17:09 Uhr). Grund: update v1.2
Moerderhoschi ist offline   Mit Zitat antworten
Alt 11.02.2011, 18:44   #2 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Was mir beim Überfliegen des Skripts aufgefallen ist:
Das is schreibt man klein
Cyborg11 ist offline   Mit Zitat antworten
Alt 11.02.2011, 18:45   #3 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Psychobastard
 
Registriert seit: 16.09.2008
Ort: Lausitz
Alter: 27
Beiträge: 1.130
Psychobastard eine Nachricht über ICQ schicken Psychobastard eine Nachricht über Skype™ schicken
Standard

tja dann können wir das script wohl verwerfen....
__________________

Psychobastard ist offline   Mit Zitat antworten
Alt 11.02.2011, 18:48   #4 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Mir ist aufgefallen, dass es ArmA anscheinend egal ist, da ein While auch groß geschrieben funktioniert.
Wie das natürlich mit den is Abfragen ist, ka.
Ist aber kein guter Programmierstil und in Programmiersprachen wirst du so um die 100 Fehler bekommen.
Cyborg11 ist offline   Mit Zitat antworten
Alt 11.02.2011, 18:52   #5 (permalink)
Armed-Assault.de Team MG Hoschi
500 Beiträge1000 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 27
Beiträge: 1.754
Standard

in ArmA is die groß oder kleinschreibung egal, IsServer funktioniert genauso wie isserver usw.
Moerderhoschi ist offline   Mit Zitat antworten
Alt 11.02.2011, 18:54   #6 (permalink)
Xeno - The domino prince
500 Beiträge1000 Beiträge2.500 Beiträge
 
Registriert seit: 03.01.2008
Beiträge: 3.829
Xeno eine Nachricht über ICQ schicken Xeno eine Nachricht über Skype™ schicken
Standard

Zitat von Cyborg11 Beitrag anzeigen

Was mir beim Überfliegen des Skripts aufgefallen ist:
Das is schreibt man klein

Das ist mir gänzlich neu...

Aber was anderes, Hoschi...

Code:
if (paramsArray select 1 == 2) then {setwind [DW_w1x,DW_w1y,true]};
if (paramsArray select 1 == 0) then {setwind [DW_w2x,DW_w2y,true]};
if (paramsArray select 1 == 3) then {setwind [DW_w3x,DW_w3y,true]};
if (paramsArray select 1 == (0.5)) then {setwind [DW_w4x,DW_w4y,true]};
if (paramsArray select 1 == (0.75)) then {setwind [DW_w5x,DW_w5y,true]};
if (paramsArray select 1 == 1) then {setwind [DW_w6x,DW_w6y,true]};
Solche Konstrukte sind nicht so gut. Performance, etc.

Besser:
Code:
setwind (switch (paramsArray select 1) do {
	case 2: {[DW_w1x,DW_w1y,true]};
	case 0: {[DW_w2x,DW_w2y,true]};
	case 3: {[DW_w3x,DW_w3y,true]};
	case 0.5: {[DW_w4x,DW_w4y,true]};
	case 0.75: {[DW_w5x,DW_w5y,true]};
	case 1: {[DW_w6x,DW_w6y,true]};
});
Vorteil: Viel Schreibarbeit gespart
Aber wichtiger, bei Deinem if if if Ablauf wird wirklich jede Bedingung aller if Konstrukte geprüft, auch wenn bereits die erste Bedingung (== 2) eingetreten ist.
Das switch springt raus sobald ein case wahr ist.

Du könntest es sogar noch anders machen (noch mehr optimieren), da sich der Wert von paramsArray select 1 niemals während einer Mission ändern wird und entsprechend ein Array erstellen, z.B. mit _windarray = [DW_w6x,DW_w6y,true]; und später setWind _windarray;

Xeno

Geändert von Xeno (11.02.2011 um 18:58 Uhr).
Xeno ist offline   Mit Zitat antworten
Alt 11.02.2011, 18:55   #7 (permalink)
Armed-Assault.de Team MG Hoschi
500 Beiträge1000 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 27
Beiträge: 1.754
Standard

wunderboar Xeno, danke dir, wird dann von mir gaendert
Moerderhoschi ist offline   Mit Zitat antworten
Alt 12.02.2011, 11:21   #8 (permalink)
Armed-Assault.de Team MG Hoschi
500 Beiträge1000 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 27
Beiträge: 1.754
Standard Update version 1.1

Update auf Version 1.1 mit den Verbesserungsvorschlaegen von Xeno.

DW_Init.sqf
Code:
veralteten code entfernt

Geändert von Moerderhoschi (04.01.2013 um 22:15 Uhr).
Moerderhoschi ist offline   Mit Zitat antworten
Alt 12.02.2011, 11:27   #9 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von TeRp
 
Registriert seit: 02.04.2003
Ort: San Francisco
Beiträge: 1.850
Standard

Juchu, reduzierte publicVariablen-Anzahl!
Sehr schön!
__________________

TeRp ist offline   Mit Zitat antworten
Alt 12.02.2011, 11:40   #10 (permalink)
Armed-Assault.de Team MG Hoschi
500 Beiträge1000 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 27
Beiträge: 1.754
Standard

Zitat von TeRp Beitrag anzeigen

Juchu, reduzierte publicVariablen-Anzahl!
Sehr schön!

Nukular! Hab doch gesagt ich setze deine Ratschlaege mit um
Moerderhoschi ist offline   Mit Zitat antworten
Alt 01.12.2012, 17:14   #11 (permalink)
Armed-Assault.de Team MG Hoschi
500 Beiträge1000 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 27
Beiträge: 1.754
Standard

UPDATE VERISION 1.2 - 01.12.2012
  • script optimierung
  • zwei templates angefuegt

update findet sich im Startpost.
Moerderhoschi ist offline   Mit Zitat antworten
Alt 02.12.2012, 09:42   #12 (permalink)
50 Beiträge
 
Benutzerbild von TraX
 
Registriert seit: 20.06.2009
Alter: 40
Beiträge: 97
Standard

Danke Moerderhoschi

ich wünsche euch einen super schönen zweiten Advent
Miniaturansicht angehängter Grafiken
day-weather-script-gg.jpg  
__________________

Geändert von TraX (02.12.2012 um 11:18 Uhr).
TraX ist offline   Mit Zitat antworten
Alt 02.12.2012, 10:07   #13 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 41
Beiträge: 1.225
Standard

Zitat von TraX Beitrag anzeigen

ich wünsche euch einen superschönen zweiten Advent

Wieviel Adventstage hat denn Dein Kalender?
Buliwyf ist offline   Mit Zitat antworten
Alt 02.12.2012, 10:29   #14 (permalink)
50 Beiträge
 
Benutzerbild von TraX
 
Registriert seit: 20.06.2009
Alter: 40
Beiträge: 97
Standard

oh ersten Advent, es war gestern doch zu viel
__________________
TraX ist offline   Mit Zitat antworten
Antwort

Stichworte
day, weather, wind


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Beta-Patch für OpA erschienen det99 Community 1420 19.12.2012 17:52
vergangene Zeit in einem Script Psychobastard Editing & Scripting 2 10.10.2010 15:46
marker über script erzeugen hypercop Editing & Scripting 2 28.08.2010 22:40
Improved Bullet Cam Script miromanu Editing & Scripting 3 21.08.2010 01:01
Bomb-Cam Script IntelQ9550Reaktor Editing & Scripting 3 02.08.2010 13:49


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107