yoda
Vorlage von Marshall/Zeroy auf itoeunited.net
Danke an OLD MAN WITH GUN und Verni@hter für´s Testen!
Hi all!
Hier ist ein kleines Script, das -=FD=- geschrieben hat und mit dem man Fenster erstellen kann, die nach einer gewissen Beschädigung zerbrechen. Das Script folgt nach den Instruktionen. Bitte dran denken, das Script als _breakable_windows.gsc zu speichern.
Hier also nun, wie man das Ganze verwendet:
Wie man es einsetzt...
Erstelle einen trigger_damage-Brush in der selben Größe und Breite wie Dein Fenster, aber 1 Unit tiefer an der Vorder- und Rückseite.
Gib dem Trigger im Entity-Fenster (Taste "N") diese Werte:
Key: targetname
Value: windtrig
Erstelle Dein Fenster in seiner UNZERBROCHENEN Version und verwandle es in ein script_brushmodel.
Eine gute Textur dafür wäre "com_glass_clear"
Erstelle Dein Fenster nun in seiner ZERBROCHENEN Version und verwandle es in ein script_brushmodel.
Eine gute Textur dafür wäre "com_glass_shattered_inside_fb"
Drücke ESC, damit nichts mehr selektiert ist.
Markiere den Trigger und anschließend das UNZERBROCHENE Fenster und drücke die Taste "W" um beides miteinander zu verknüpfen. Drücke anschließend die Taste ESC um die Selektion wieder aufzuheben.
Markiere nun das UNZERBROCHENE Fenster und dann das ZERBROCHENE Fenster und drücke die Taste "W", um beides miteinander zu verknüpfen. Drücke anschließend die Taste ESC um die Selektion wieder aufzuheben.
Markiere das ZERBROCHENE Fenster und dann eins der kaputten Teile und drücke die Taste "W", um beides miteinander zu verknüpfen. Drücke anschließend die Taste ESC um die Selektion wieder aufzuheben.
Schiebe nun alle Brushes übereinander, so dass alle Fenster-Teile und der Trigger aufeinander liegen.
Damit ist die Arbeit mit den Brushes erledigt!
Kopiere dieses Script unter dem Namen _breakable_windows.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_breakable_windows.gsc" und "fx,props/car_glass_large" in Deine Zone-File ein.
Füge die Zeile
maps/mp/_breakable_windows::main();
in Deine Map-GSC-Datei ein.
Möchtest Du einen Sound-FX dazu, musst Du eine soundalias-Datei für Deine Map erstellen.
Wenn Du keinen Sound-FX möchtest (oder keine soundalias-Datei erstellen kannst) dann kommentiere diese Zeile aus (also // davor setzen):
self PlaySound("glass_break");
Das sollte so nun ok sein.
Man kann so viele Fenster einbauen, wie man möchte (getestet mit 70+), ohne daß man irgendwelche Nummern etc. anpassen muss.
Viel Spass!
Bitte immer Credit geben dort, wo es angebracht ist.
-=FD=-
Zerstörbare Fenster-Script:
// ---------------------------------------
// Zerstörbare Fenster Version 1.1 by -=FD=-
// Letztes Update: Freitag, 22. Februar 2008
// ---------------------------------------
//
// Dieses Script ermöglicht den Einbau von Fenstern, die nach einer gewissen beschädigung zerbrechen
// Ich habe versucht es so einfach wie möglich zu halten um die Nutzung zu vereinfachen.
// Es enthält einen “Zerbrochen”-Status für das Fenster (wie z. B. bei den Autos!)
// Man kann allerdings NOCH keine Granaten durch das Fenster werfen, um es zu zerbrechen…
// Um die Höhe der Beschädigung zu ändern, die das Fenster vertragen kann, musst Du den Wert bei 'targetdamage' anpassen.
// Credit an: Tally, der mir beim Einstieg ins Scripten geholfen hat.
// Credit an: noobCODmapper und Ghost Death für das Script auf modsonline.com, das mich hierzu inspiriert hat.
// Credit an: IW für dieses großartige Game und die Freigabe der Tools, so dass wir überhaupt damit arbeiten können!
main()
{
windfx = loadfx ("props/car_glass_large");
windtrigs = getentarray("windtrig","targetname");
for(i=0;i<windtrigs.size;i++)
{
windtrigs[i] thread dowindow(windfx);
}
}
dowindow(windfx)
{
targetdamage=80;
totaldamage=0;
WindowShattered=false;
WindowBroken=false;
self enablegrenadetouchdamage();
NormalState = getent(self.target,"targetname");
ShatteredState = getent(NormalState.target,"targetname");ShatteredState hide();
BrokenState = getent(shatteredState.target,"targetname");BrokenState hide();
while(!windowbroken)
{
self waittill ("damage", amount,attacker, direction_vec, point, type);
totaldamage+=amount;
if(totaldamage>targetdamage || getdamagetype(type)=="melee")
{
WindowBroken=true;
}
if(!WindowShattered)
{
NormalState delete();
ShatteredState show();
WindowShattered=true;
}
}
BrokenState show();
//self playsound("glass_break");
PlayFX(windfx, BrokenState.origin );
ShatteredState delete();
self delete();
}
getDamageType(type)
{
if(!isdefined(type)){return "unknown";}
type = tolower(type);
switch(type)
{
case "mod_melee":
case "mod_crush":
case "melee":
return "melee";
default:
return "other";
}
}
---
Direkt verlinken:
https://www.opferlamm-clan.de/wbb2/thread.php?threadid=10482
---
Danke an OLD MAN WITH GUN und Verni@hter für´s Testen!
Hi all!
Hier ist ein kleines Script, das -=FD=- geschrieben hat und mit dem man Fenster erstellen kann, die nach einer gewissen Beschädigung zerbrechen. Das Script folgt nach den Instruktionen. Bitte dran denken, das Script als _breakable_windows.gsc zu speichern.
Hier also nun, wie man das Ganze verwendet:
Wie man es einsetzt...
Erstelle einen trigger_damage-Brush in der selben Größe und Breite wie Dein Fenster, aber 1 Unit tiefer an der Vorder- und Rückseite.
Gib dem Trigger im Entity-Fenster (Taste "N") diese Werte:
Key: targetname
Value: windtrig
Erstelle Dein Fenster in seiner UNZERBROCHENEN Version und verwandle es in ein script_brushmodel.
Eine gute Textur dafür wäre "com_glass_clear"
Erstelle Dein Fenster nun in seiner ZERBROCHENEN Version und verwandle es in ein script_brushmodel.
Eine gute Textur dafür wäre "com_glass_shattered_inside_fb"
Drücke ESC, damit nichts mehr selektiert ist.
Markiere den Trigger und anschließend das UNZERBROCHENE Fenster und drücke die Taste "W" um beides miteinander zu verknüpfen. Drücke anschließend die Taste ESC um die Selektion wieder aufzuheben.
Markiere nun das UNZERBROCHENE Fenster und dann das ZERBROCHENE Fenster und drücke die Taste "W", um beides miteinander zu verknüpfen. Drücke anschließend die Taste ESC um die Selektion wieder aufzuheben.
Markiere das ZERBROCHENE Fenster und dann eins der kaputten Teile und drücke die Taste "W", um beides miteinander zu verknüpfen. Drücke anschließend die Taste ESC um die Selektion wieder aufzuheben.
Schiebe nun alle Brushes übereinander, so dass alle Fenster-Teile und der Trigger aufeinander liegen.
Damit ist die Arbeit mit den Brushes erledigt!
Kopiere dieses Script unter dem Namen _breakable_windows.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_breakable_windows.gsc" und "fx,props/car_glass_large" in Deine Zone-File ein.
Füge die Zeile
maps/mp/_breakable_windows::main();
in Deine Map-GSC-Datei ein.
Möchtest Du einen Sound-FX dazu, musst Du eine soundalias-Datei für Deine Map erstellen.
Wenn Du keinen Sound-FX möchtest (oder keine soundalias-Datei erstellen kannst) dann kommentiere diese Zeile aus (also // davor setzen):
self PlaySound("glass_break");
Das sollte so nun ok sein.
Man kann so viele Fenster einbauen, wie man möchte (getestet mit 70+), ohne daß man irgendwelche Nummern etc. anpassen muss.
Viel Spass!
Bitte immer Credit geben dort, wo es angebracht ist.
-=FD=-
Zerstörbare Fenster-Script:
// ---------------------------------------
// Zerstörbare Fenster Version 1.1 by -=FD=-
// Letztes Update: Freitag, 22. Februar 2008
// ---------------------------------------
//
// Dieses Script ermöglicht den Einbau von Fenstern, die nach einer gewissen beschädigung zerbrechen
// Ich habe versucht es so einfach wie möglich zu halten um die Nutzung zu vereinfachen.
// Es enthält einen “Zerbrochen”-Status für das Fenster (wie z. B. bei den Autos!)
// Man kann allerdings NOCH keine Granaten durch das Fenster werfen, um es zu zerbrechen…
// Um die Höhe der Beschädigung zu ändern, die das Fenster vertragen kann, musst Du den Wert bei 'targetdamage' anpassen.
// Credit an: Tally, der mir beim Einstieg ins Scripten geholfen hat.
// Credit an: noobCODmapper und Ghost Death für das Script auf modsonline.com, das mich hierzu inspiriert hat.
// Credit an: IW für dieses großartige Game und die Freigabe der Tools, so dass wir überhaupt damit arbeiten können!
main()
{
windfx = loadfx ("props/car_glass_large");
windtrigs = getentarray("windtrig","targetname");
for(i=0;i<windtrigs.size;i++)
{
windtrigs[i] thread dowindow(windfx);
}
}
dowindow(windfx)
{
targetdamage=80;
totaldamage=0;
WindowShattered=false;
WindowBroken=false;
self enablegrenadetouchdamage();
NormalState = getent(self.target,"targetname");
ShatteredState = getent(NormalState.target,"targetname");ShatteredState hide();
BrokenState = getent(shatteredState.target,"targetname");BrokenState hide();
while(!windowbroken)
{
self waittill ("damage", amount,attacker, direction_vec, point, type);
totaldamage+=amount;
if(totaldamage>targetdamage || getdamagetype(type)=="melee")
{
WindowBroken=true;
}
if(!WindowShattered)
{
NormalState delete();
ShatteredState show();
WindowShattered=true;
}
}
BrokenState show();
//self playsound("glass_break");
PlayFX(windfx, BrokenState.origin );
ShatteredState delete();
self delete();
}
getDamageType(type)
{
if(!isdefined(type)){return "unknown";}
type = tolower(type);
switch(type)
{
case "mod_melee":
case "mod_crush":
case "melee":
return "melee";
default:
return "other";
}
}
---
Direkt verlinken:
https://www.opferlamm-clan.de/wbb2/thread.php?threadid=10482
---
) auf Vorder- und Rückseite.
Zitat:
