[Tutorial] per Auslöser Effekt mit Sound

-tiger-
In diesem Tutorial geht es darum einen oder mehre Effekte mit Sound per Auslöser zu starten. Im Grunde ist es die gleiche Vorgehensweise wie bei dem [Tutorial] Zerstörbare Fenster * Ich habe nur die _breakable_windows.gsc etwas umgeschieben.


HD Video


Erstellt ein Prefab so wie es eine Zeile weiter unten sehen könnt. Wenn ihr Brushes verwendet müsst ihr es dann auf skript_brushes umstellen. Bei skript_brushes ist es sogar besser weil man da den Objekten verschiedene Kollision und auch Player Schaden zuweisen kann. Durch das skipt wird nur der Aktuelle Zustand angezeigt und der Rest ausgeblendet.



Erstellt eine _expl_pump.gsc mit folgenden inhalt.

_expl_pump.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:
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:
main()
{
gasfx1 = loadfx ("explosions/aerial_explosion");
gasfx2 = loadfx ("fire/gas_pump_fire");
gastrigs = getentarray("firetrig","targetname");
for(i=0;i<gastrigs.size;i++)
{
gastrigs[i] thread dogasow(gasfx1,gasfx2);
}
}

dogasow(gasfx1,gasfx2)
{
targetdamage=1000;
totaldamage=0;
gasowShattered=false;
gasowBroken=false;
self enablegrenadetouchdamage();
NormalState = getent(self.target,"targetname");
ShatteredState = getent(NormalState.target,"targetname");ShatteredState hide();
BrokenState = getent(shatteredState.target,"targetname");BrokenState hide();
while(!gasowbroken)
{
self waittill ("damage", amount,attacker, direction_vec, point, type);
totaldamage+=amount;
if(totaldamage>targetdamage || getdamagetype(type)=="explosion")
{
gasowBroken=true;
}
if(!gasowShattered)
{

ShatteredState show();
NormalState delete();
gasowShattered=true;
}
}
BrokenState show();
self playsound ("explo_metal_rand");
BrokenState playloopsound ("fire_metal_large");
PlayFX(gasfx1, BrokenState.origin);
PlayFX(gasfx2, BrokenState.origin);
ShatteredState delete();
self delete();
}

getDamageType(type)
{
if(!isdefined(type)){return "unknown";}
type = tolower(type);
switch(type)
{
case "mod_explosion":
case "mod_crush":
case "explosion":
return "explosion";
default:
return "other";
}
}



Nun fügt in eure mp_map.gsc über der Zeile maps\mp\_load::main(); das
ein:

maps\mp\_expl_pump::main();

Und unter "Update Zone File" muss noch das mit rein:
code:

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

code:
1:
rawfile,maps/mp/_expl_pump.gsc

Marvin
Hi,

Erstmal schön das Tutorial, aber da scheint was zu fehlen. geschockt

Bei "Update Zone File" muss noch das mit rein:

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

code:
1:
rawfile,maps/mp/_expl_pump.gsc



Das ist dafür um das script lauffähig zu kriegen. Augenzwinkern

mfg Marvin
-tiger-
geschockt oh das habe ich glatt vergessen, danke Marvin für den Tip. Daumen hoch
Marvin

Zitat:

Original von -tiger-
geschockt oh das habe ich glatt vergessen, danke Marvin für den Tip. Daumen hoch


Aber immer doch, kein Problem. Augenzwinkern

mfg Marvin
-tiger-
Könnte man das Skript nicht so umschreiben das bei der Explosion und dann bei der Flame ein Player Schaden ist?
Marvin
Hmm, Sorry! damit kenne ich mich nicht aus. Keinen Plan?

Marvin