Regen einbauen (2)

bangingbernie
Das Script von Rasta ist schon gut, aber leider regnet es auch in den Häusern.

Hier das Script mit den minimalen Änderungen (FETT geändert):

main()
{

level.rain1 = loadfx ("fx/misc/rain_heavy_cloudtype.efx");

thread rain1();
}

rain1()
{
zufall = RandomInt(200);

while(1)
{
players = getentarray("player", "classname");

if(players.size > 0)
{
max_nodes = 20;
max_nodes_per_player = max_nodes/players.size;

for(ii=0;ii<max_nodes_per_player;ii++)
{
for(i = 0; i < players.size; i++)
{
player = players[i];

if(isAlive(player))
{
x= 350-randomfloat(700);
y= 350-randomfloat(700);

pos = player.origin +(x,y,200) ;
trace = bulletTrace(pos,pos +(0,0,-250), true, undefined);

if(trace["fraction"] != 1) playfx(level.rain1,trace["position"]);
wait 0.05;
}
}
}
}

wait 0.05;
}
}

==============================================

Das war rain1.gsc (in maps/mp)

==============================================

Wenn man ab und zu auch Regentropfenplatscher auf dem Boden sehen will, kann man das mit der rain2.gsc machen:

main()
{

level.rain2 = loadfx ("fx/misc/rain_splash.efx");

thread rain2();
}

rain2()
{
zufall = RandomInt(200);

while(1)
{
players = getentarray("player", "classname");

if(players.size > 0)
{
max_nodes = 20;
max_nodes_per_player = max_nodes/players.size;

for(ii=0;ii<max_nodes_per_player;ii++)
{
for(i = 0; i < players.size; i++)
{
player = players[i];

if(isAlive(player))
{
x= 350-randomfloat(700);
y= 350-randomfloat(700);

pos = player.origin +(x,y,200) ;
trace = bulletTrace(pos,pos +(0,0,-250), true, undefined);

if(trace["fraction"] != 1) playfx(level.rain2,trace["position"]);
wait 0.05;
}
}
}
}

wait 0.05;
}
}

==============================================

Das war rain2.gsc (in maps/mp)

==============================================

Jetzt noch in der deine_map.gsc folgendes einfügen:

maps\mp\rain1::main();
maps\mp\rain2::main();

Und schon geht's.

Gruss
Bernie

ralf221
hi!
das ist auch nicht änderbar soweit ich weiss.leider!dieses problem ist aber bei einigen 3d programmen.gruss ralf
bangingbernie
Vielleicht war das nicht klar; es regnet jetzt nicht mehr in den Häusern cool
Verni@hter
Das muss ich gleich mal ausprobieren kann man das so in die gsc übernehmen wie es hier steht?
Verni@hter
Ansich ist das ne gute Sache funktioniert auch aber:

Den Regen sieht man nur unter DirectX 9 aber das Wasserplatschern sieht man auch unter DirectX7 aber kein regen und es geht doch sehr stark auf die FPS. Es muss doch machbar sein das man den Regen auch unter DirectX 7 sieht. Ich kann mich errinnern das es eine Karte gibt wo man den Regen und das Wasserplatschern auch unter DirectX7 gesehen hat das einzigste Problem war dort das es halt überall geregnet hat. Es wäre doch vom Vorteil für die, die mit DirectX7 spielen weil die doch dann freie Sicht haben wobei die, die mit DirectX9 spielen eine eingeschränkte sich haben durch den Regen.
OLD MAN WITH GUN

Zitat:

Original von energun222
Es wäre doch vom Vorteil für die, die mit DirectX7 spielen weil die doch dann freie Sicht haben wobei die, die mit DirectX9 spielen eine eingeschränkte sich haben durch den Regen.

Hast du es unter DX7 schon mal auf Moskow, Leningrad, Stalingrad oder Rostow schneien sehen? Da hat man mit DX7 auch Vorteile gegenüber DX9.
bangingbernie
Mmmmh, daran hab' ich nicht gedacht; spiele immer unter DirextX9. Schade...

Wenn man nur die Wasserplatscher sieht, muss eben die rain2.gsc weggelassen werden.

Unter DirectX7 geht's immer mit dem bisherigen Script von Rasta; muss man nur die .efx-Datei austauschen, aber dann regnet's wieder in den Häusern.
Verni@hter

Zitat:

Original von OLD MAN WITH GUN

Zitat:

Original von energun222
Es wäre doch vom Vorteil für die, die mit DirectX7 spielen weil die doch dann freie Sicht haben wobei die, die mit DirectX9 spielen eine eingeschränkte sich haben durch den Regen.

Hast du es unter DX7 schon mal auf Moskow, Leningrad, Stalingrad oder Rostow schneien sehen? Da hat man mit DX7 auch Vorteile gegenüber DX9.


Ich wollte damit auch nur sagen das es eine Karte gibt wo es auch unter DirectX7 regnet wo es aber leider überall regnet und für Leute die es denoch einbauen möchten das diese dann dieses Wasserplatschern weglassen sollten ist schon sehr verwirrend wenn es platschert aber kein Regen zu sehen ist.
Necromonga
Erstmal n kurzes Hallo von mir.Bin wie ihr sehen könnt n NOOB.
Was solls.Jeder fängt mal klein an.ätsch.

Zur meiner frage,ich bekomme in der console diese Fehlermeldung.
Was hab ich bei den 2 rain gsc`s falsch gemacht?

******* script compile error *******
Could not find script 'maps/mp/rain1': (file 'maps/mp/mp_nordstadt.gsc', line 3)
maps\mp\rain1::main();
*
************************************
writing to: H:\Call of Duty 2\servercache.dat
Error during initialization:
script compile error
(see console for details)
Zordiac
Du hast in Deinem main/maps/mp Ordner keine rain1.gsc

In Deiner mp_nordstadt.gsc wird in Zeile 3 die rain1.gsc aufgerufen aber nicht gefunden.

maps\mp\rain1::main();


PS: Wenn Du Dir Deine Fehlermeldung genau durchließt, dann erklärt sich das ganz von alleine. Da steht fast genau das drin, was ich Dir in eigenen Worten geschrieben habe.
bangingbernie
Nachstehend nochmal eine rain.gsc, die sowohl unter dx7 als auch unter dx9 funktioniert....meistens Augenzwinkern

Falls es bei Euch in den Häusern ab und zu regnet, könnt Ihr mal mit dem FETT markierten Wert spielen (höher):

main()
{

level.rain = loadfx ("fx/misc/rain_heavy.efx");

thread rain();
}

rain()
{
zufall = RandomInt(100);

while(1)
{
players = getentarray("player", "classname");

if(players.size > 0)
{
max_nodes = 20;
max_nodes_per_player = max_nodes/players.size;

for(ii=0;ii<max_nodes_per_player;ii++)
{
for(i = 0; i < players.size; i++)
{
player = players;

if(isAlive(player))
{
x= 350-randomfloat(700);
y= 350-randomfloat(700);

pos = player.origin +(x,y,200) ;
trace = bulletTrace(pos,pos +(0,0,2000), true, undefined);

if(trace["fraction"] != 1) playfx(level.rain,trace["position"]);
wait 0.05;
}
}
}
}

wait 0.05;
}
}

Dann natürlich in Eurer meine_map.gsc einfügen (Beispiel):

main()
{
maps\mp\_load::main();
maps\mp\rain::main();
ambientPlay("ambient_mp_mat4");

setExpFog(0.0002, 0.5, 0.5, 0.5, 0);

game["allies"] = "british";
game["axis"] = "german";
game["attackers"] = "allies";
game["defenders"] = "axis";
game["british_soldiertype"] = "africa";
game["german_soldiertype"] = "africa";

setcvar("r_glowbloomintensity0","1");
setcvar("r_glowbloomintensity1","1");
setcvar("r_glowskybleedintensity0",".25");

DX7



DX9

Necromonga
Hab den Fehler gefunden.Die rain.gsc war schon richtig in dem Ordner,nur das der Name "mp_rain.gsc" war.Einfach das mp weg.Und es funktionert.

Allerdings hör ich kein regensound.
bangingbernie
Regensound hast Du auch nur, wenn Du das entsprechende "ambient" wählst.

Hier mal ein Beispiel:

deine_map.gsc in maps/mp ->

main()
{
maps\mp\_load::main();
maps\mp\rain::main();
ambientPlay("ambient_deine_map");

usw.

deine_map.csv (excel-Datei) in soundaliases ->

Mit Editor öffnen und folgendes eintragen:

#Ambiance
ambient_deine_map,,ambient/amb_newvillers_RainHvy.mp3,0.3,,,,,,,local,strea
med,,looping,,deine_map

Und schon hast Du Deinen Regensound.
MagicHansi
Ich hätt noch ne Frage:

Wenn ich bei meiner Karte in den ersten stock gehe und aus dem Fenster schaue, hört der regen auf.
Da das nicht sehr realistisch ist würde ich gern wissen was man ändern muss, das es überall regnet
bangingbernie
Du musst mit folgendem Wert (FETT)experimentieren:

trace = bulletTrace(pos,pos +(0,0,2000), true, undefined);

Das ist der Wert der Z-Achse, an dem der Regen spawnt.

Kommt darauf an, wie hoch/niedrig Deine Gebäude sind (Minus-Wert geht auch).

Bernie