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 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 angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
|
main()
level thread spawnWorldFX(); |
|
Code 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 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

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
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.
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.