Schneien in einer schneemap

steinacker
wie bekomme ich das eigentlich gebacken, dass es in einer wintermap auch schön schneit und eventuell auch etwas nebel hat
gibts da auch wieder ein effekt, wie beim regen, zum scripten
OLD MAN WITH GUN

Zitat:

Original von steinacker
wie bekomme ich das eigentlich gebacken, dass es in einer wintermap auch schön schneit und eventuell auch etwas nebel hat
gibts da auch wieder ein effekt, wie beim regen, zum scripten


Der Schnee ist ein Effekt, der wie jeder andere Effekt (Feuer, Rauch etc.) in die Map eingefügt wird.
Beim Nebel kommt es jetzt darauf an, ob du Nebelschwaden meinst, oder das die Sicht begrenzt ist.
Nebelschwaden wäre auch ein Effekt, genau wie der Schnee. Nebel, der die allgemeine Sicht begrenzt fügst du per Befehl in deine map.gsc ein
SetExpFog( <startDist>, <halfwayDist>, <red>, <green>, <blue>, <transition time> )
startDist = ab welcher Entfernung soll der Nebel beginnen
halfwayDist = Entfernung nach startDist, bei der der Nebel 50% erreicht hat
red, green, blue = Farbwerte für den Nebel (0.0 bis 1.0)
transition time = Übergangszeit in sec. (?) steht normalerweise auf 0

Edit:
Um mal ein Beispiel zu nennen:
Auf mp_bloc wurde der Effekt weather/snow_light_mp_bloc 3x plaziert (laut EffektsEd hat der Effekt einen Radius von 1500 Units)
Und es wurde 15x mal der Effekt weather/snow_wind eingefügt (laut EffektsEd hat dieser Effekt einen Radius von 200 Units)
steinacker

Zitat:

SetExpFog( <startDist>, <halfwayDist>, <red>, <green>, <blue>, <transition time> )

dann funzt das so ähhnlich wie beim awe mod beim UO
set awe_efog "1"
set awe_efog_mp_bocage "50 0.0017 0 0.5 0.5 0.5"

SetExpFog "50 0.0017 0.5 0.5 0.5 0"
so in etwa denke ich mal, oder brauch ich die klammern auch

da könnte man ja wieder ein kleines script erstellen und den serverAdmins eine Dvar geben (mapname_Fog =1) oder so damit die entscheiden können ob's schneien soll oder nicht, mit und ohne nebel

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
main()
{
	maps\mp\_load::main();
	maps\mp\mp_mapname_fx::main();//definiert den schneeEffect

///////////////////////////////////////////Nebel/////////////////////////////////
	if(getdvar("mapname_Fog") == "1")
		SetExpFog ("50 0.0017 0.5 0.5 0.5 0");

	else if(getdvar("mapname_Fog") == "0")
		SetExpFog ("");

	else
		SetExpFog ("50 0.0017 0.5 0.5 0.5 0");

///////////////////////////////////////////Schnee/////////////////////////////////
	if(getdvar("mapname_Snow") == "1")
		thread maps\createfx\mp_mapname_fx::Add_Snow();//fügt den ScheeEffect in die map

//other map_stuff

}



raw\maps\mp\mp_mapname_fx.gsc

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
main()
{

//Snow
	level._effect["snow"] = loadfx ("weather/snow_light_mp_bloc");

}



raw\maps\createfx\mp_mapname_fx.gsc

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
Add_Snow()
{
	ent = maps\mp\_utility::createOneshotEffect( "snow" );
	ent.v[ "origin" ] = ( X, Y, Z ); //koordinaten anpassen
	ent.v[ "angles" ] = ( 0, 0, 0 );
	ent.v[ "fxid" ] = "snow";
	ent.v[ "delay" ] = -1;

	ent = maps\mp\_utility::createOneshotEffect( "snow" );
	ent.v[ "origin" ] = ( X, Y, Z ); //koordinaten anpassen
	ent.v[ "angles" ] = ( 0, 0, 0 );
	ent.v[ "fxid" ] = "snow";
	ent.v[ "delay" ] = -1;

	ent = maps\mp\_utility::createOneshotEffect( "snow" );
	ent.v[ "origin" ] = ( X, Y, Z ); //koordinaten anpassen
	ent.v[ "angles" ] = ( 0, 0, 0 );
	ent.v[ "fxid" ] = "snow";
	ent.v[ "delay" ] = -1;
}

OLD MAN WITH GUN
So würde es aber auf der Map nie schneien, wenn die Variable gar nicht definiert wurde (also dann, wenn 95% der Admins, die die Map auf den Server packen, die Readme nicht lesen). Ich denke, es sollte so sein, das ohne Eingriff in die Serverconfig die Map per default Schnee und Nebel hat.

Die Zeilen 7 bis 15 in der mp_mapname.gsc würde ich so schreiben.

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
if(getDvar("mapname_Fog") == "" || getDvarInt("mapname_Fog") > 0)
  SetExpFog ("50, 400, 0.5, 0.5, 0.5, 0");

Ist kürzer (und die Kommas nicht vergessen)

Das gleiche bei den Zeilen 17-19

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
if(getDvar("mapname_Snow") == "" || getDvarInt("mapname_Snow") > 0)
  thread maps\createfx\mp_mapname_fx::Add_Snow();//fügt den SchneeEffect in die map