Script Funken schlagen

Verni@hter
Moin,


wollt mal wissen wie das Script ausschaut mit dem man Funken machen kann also zb. an einer Hochspannungsleitung.
Private Grob
Ganz einfach. Koordinaten im Radianten suchen, dann in deiner fx Datei:

level._effect["sparks"] = loadfx ("fx/props/radio_sparks_smoke.efx");
maps\mp\_fx::loopfx("sparks", (x, y, z), s);

x y z sind die Koordinaten, s die Zeit in Sekunden, in der der Effekt wiederholt wird, z.B. 1

Grüße
Private Grob
(Micka)
Verni@hter
Dank Dir!


Jetzt bräuchte ich nur noch den Sound das es sich auch elektrisch anhört. Habe folgenes in einer anderen Map gefunden.

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:
spawnWorldFX()
{
	//call the appropriate effect for the appropriate "targetname"
	//use these "targetname" on script_origin entities in Radiant to place the effect in the map

	sparks = getentarray ("electricSpark","targetname");
	craters = getentarray ("craterSmoke","targetname");
	smokeBanks = getentarray ("smoke1","targetname");
	chimneys = getentarray ("chimneySmoke", "targetname");
	smallBlgFires = getentarray ("smallBlgFire","targetname");
	medBlgFires = getentarray ("medBlgFire","targetname");
	firePlaces = getentarray ("firePlace", "targetname");

	//sparks
	for( i = 0 ; i < sparks.size ; i++ ) 
	{
		sparks[i] thread maps\mp\_fx::loopfx("small_metalhit", sparks[i].origin, 0.2);
		sparks[i] playloopsound ("electric_spark");
	}




nur leider weiß ich jetzt nicht was man im Radianten machen muss damit man auch sound an dieser Stelle hört.
Private Grob
Ist ganz einfach. Mal Schritt für Schritt (gültig für eine Soundquelle):

Im Radianten:

Da wo der Sound ertönen soll machst du ein script_model und läßt es rot, also kein Xmodel auswählen!. Dann gibst du ihm den Key targetname und als Value sparks. Das war es schon an Mapping Arbeit.

In deine Haupt GSC kommt folgende Zeile:

getent ("sparks","targetname") playloopsound ("sparks");

In die soundaliases CSV kommt:

sparks,,misc/sparks.wav,1,,,,,50,300,voice,,,looping,,mp_deinMapname

Und in den Ordner sound/misc kommt die sparks.wav (Download der Wav Datei)

Kannst dir alles auch nochmal in meiner Map Vossennack, Germany ansehen. Allerdings ist der Targetname da nicht sparks sondern draht.

Grüße
Private Grob
(Micka)
Verni@hter
Habs grad irgendwie anders hinbekommen


im Radianten:

sript orgin

Key: targetname

Value: electricSpark


mp_testmap_fx.gsc



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

code:
1:
2:
3:
main()

level thread spawnWorldFX();



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

code:
1:
2:
3:
4:
5:
6:
precacheFX()
{
level._effect["sparks"] = loadfx ("fx/props/radio_sparks_smoke.efx");
      maps\mp\_fx::loopfx("sparks", (2304, -3232, -392), 1);
level._effect["small_metalhit"] = loadfx ("fx/impacts/small_metalhit.efx");
}




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:
spawnWorldFX()
{
	//call the appropriate effect for the appropriate "targetname"
	//use these "targetname" on script_origin entities in Radiant to place the effect in the map

	sparks = getentarray ("electricSpark","targetname");
	

	//sparks
	for( i = 0 ; i < sparks.size ; i++ ) 
	{
		sparks[i] thread maps\mp\_fx::loopfx("small_metalhit", sparks[i].origin, 0.2);
		sparks[i] playloopsound ("electric_spark");
	}
}





mp_testmap.gsc

maps\mp\mp_testmap_fx::main();

mp_testmap.csv

electric_spark,,misc/espark.wav,0.8,,,,,50,500,auto,streamed,,looping,,mp_t
estmap,,,,,,,,

Da habe ich dann gleich komische Funken mit sound aber werde deine variante mal probieren.

Edir. habs mal editiert hatte was vergessen reinzuschreiben.
bangingbernie
Mmmh, da war Grob ja schneller Augenzwinkern Aber man könnte doch auch, wie oben beschrieben, ein script_origin mit Key + Value erstellen?

Edit: Toll, jetzt sind beide schneller; hat sich ja dann erledigt Zunge raus
Private Grob
@energun222

Der Vorteil von deiner Lösung ist, das du jetzt ohne weiteren Script Aufwand mehrere Stellen machen kannst wo der Sound abgespielt wird. Das ereichst du mit der Zeile:

sparks = getentarray ("electricSpark","targetname");

Probier es einfach mal aus, müßte funktionieren.

Grüße
Private Grob
(Micka)
bangingbernie
Geht natürlich noch einfacher, ohne das script_origin einzubauen, compilieren und das Script ausführen zu lassen.

In der testmap_fx.gsc wie gehabt

precacheFX()
{
level._effect["sparks"] = loadfx ("fx/props/radio_sparks_smoke.efx");
level._effect["small_metalhit"] = loadfx ("fx/impacts/small_metalhit.efx");

maps\mp\_fx::loopfx("sparks", (2304, -3232, -392), 1);

aber dann noch

maps\mp\_fx::soundfx("electric_spark", (2304, -3232, -392));
}

In der mp_testmap.gsc brauchst Du jetzt nichts aufzurufen; in der mp_testmap.csv wie gehabt den Sound aufrufen + die wav.Datei einfügen.

Einfach.

LG
Bernie
Verni@hter
@ bangingbernie


du meinst es also so als wenn man eine Oil Lamp einsetzt?
bangingbernie
Ja, oder Feuer etc.

Man braucht nur das Vorladen der Effekte (precache); dann den/die Effekt(e) und den Sound mit Koordinaten + natürlich das Aufrufen des Sounds in der csv.Datei mit Angabe der Quelle (wenn der Sound schon im Game ist, dann ist das Einfügen der wav.Datei unnötig).

Ich hab's gerade ausprobiert; funktioniert einwandfrei.
Verni@hter
gut mit sound habe ich es gerade probiert funzt

maps\mp\_fx::loopfx("sparks", (2304, -3232, -392), 1);
maps\mp\_fx::loopfx("sparks", (-264, -264, -280), 1);

level._effect["small_metalhit"] = loadfx ("fx/impacts/small_metalhit.efx");

maps\mp\_fx::soundfx("electric_spark", (2304, -3232, -392));
maps\mp\_fx::soundfx("electric_spark", (-264, -264, -280));


wie man ja sieht ist unten das für Sound was auch funzt aber oben das mit den Funken ist jetzt richtig komisch. Habe jetzt 2 verschiedene Funken drin ist aber das selbe Script. Ich glaub mein Avatar spiegelt grad meine Situation wieder. smile


hier ein Bild




wie man ja sieht ist es einmal mit Rauch und einmal ohne und genauso ist es mit den Funken einmal grober Funken und einmal Striche
bangingbernie
Ohne Script sieht das bei mir so aus:



Habe nur in der fx.gsc die Koordinaten angegeben + csv.Datei etc. für Sound.