[Tutorial] Zerstörbare Fenster *     |
yoda
Böser Admin
Dabei seit: 21.01.2004
Beiträge: 12.269

|
|
[Tutorial] Zerstörbare Fenster * |
 |
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
---
|
|
|
|
|
-tiger-
Steuerzahler

Dabei seit: 22.01.2008
Beiträge: 189

|
|
@Fussel,
Vielleicht hast du zuviel gelöscht, die Beispiel-Map funktioniert bei mir. Es gibt noch eine andere Möglichkeit Zerstörbare Fenster zu erstellen und zwar über script_exploder .
script_exploder beispiel
edit:
Wenn ein sound abgespielt werden soll, muss man in das fx-model folgende werte eintragen : - key: script_soundalias
- value: glass_break
__________________
Processor: Intel Core2 Quad Q6600 | Mainboard: ABIT IP35 | Grafikkarte: GeForce 9800 GTX | Arbeitsspeicher: 2 GB G-Skill | Netzteil: Be Quiet! Straight Power
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von -tiger-: 30.04.2008 12:52.
|
|
|
|
|
|
|
tach zusammen, ich habe mich an die anleitung gehalten bis auf die kaputten teile, die hab ich weggelassen, vielleicht bekomme ich ja deshalb die fehlermeldung: siehe screen.
im script ist nix geändert, hab es so übernommen.
kann jemand helfen?
p.s. ich habe 2 von bad man´s beispielfenster in der map, funktioniert wunderbar, nur wenn ich ein eigenes ohne "kaputte Stücke" mache geht es nicht.
__________________

Mein Verein bei KickerStar ist der FC KannNix
|
|
|
|
|
|
|
Siehe Punkt 4: Update Zone File
__________________

|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|