Community-Tutorials (Source)

Waffen triggern

Waffen triggern

Autor: DrSilence
Downloads: Beispielmap, VideoTutorial

Um was es eigentlich geht:
In diesem Tutorial möchte ich Euch heute mal zeigen wie man einen Trigger baut der auf Gegenstände reagiert; wo normale Trigger versagen/schwächeln.

Beispiel:
Ich wollte mal einen „Opferbrunnen“ basteln der, je nach weggeworfener Waffe, ein Ereignis Triggert. z.B. bessere Waffe spawnen, Geheimtür öffnen, usw.

Problem:
Keiner der Source-Engine bekannten Trigger reagieren auf Waffen.

Nach langem überlegen und testen kam ich auf eine Lösung die genau das erfüllte was ich wollte:
Einen Trigger der auf Waffen reagiert und sogar unterscheidet welche Waffe.

Prinzip:
Es wird eine Waffe erstellt. Dieser Waffe wird eine kleiner Würfel (1 Unit,func_physbox_multiplayer) mit einer unauffälligen Textur (tools/toolsnodraw) geparentet. Der Würfel liegt genau in der Waffe. Durch das Parenten mit der Waffe, klebt diese Box immer genau „in“ der Waffe
und ist für die Spieler unsichtbar, kann aber Trigger auslösen (Flags: physics objects gesetzt). Der Clou: würde man normaler weise mit einem filter_activator_class prüfen „Bist du eine weapon_ak47?“ funzt zwar nicht da wir bei jeder Waffe als Klasse nur „func_physbox_multiplayer“ haben, aber durch den Namen dieser Box können wir die Waffen unterscheiden. DerClou ( die 2te), packt man alles in ein point_template spawn jede so erzeugte Waffe automatisch mit seiner eig. kleinen „Triggerbox“.

Hinweis:
Eigentlich funzt das in allen SourceGames, ich habe mich aber in meinem Tutorial auf CSS konzentriert.
Die Bilder und das Video wurden mit einer geänderten FGD erstellt, wundert Euch bitte nicht wenn einige Bilder nicht ganz dem „Original“ gleichen (z.B. werden einige Outputs rot dargestellt usw.), oder ihr findet keine „weapon_“ Entities. Bei den Outputs hilft leider nur eine „bessere“ FGD, aber bei den Waffen könnt ihr auch einfach ein „light“ setzen und auf z.B. weapon_ak47 umbennen.

Vorraussetzungen:
Etwas logisches Verständnis,
pro Waffe:
1x weapon_*
1x point_template
1x phys_box_multiplayer
1x filter_activator_name


Raumerstellen:

• Raum erstellen
• Spawnpunkte erstellen
• Licht erstellen

image001.png

Waffenspawner:
• Waffe erstellen (weapon_ak47)
• Waffe bennen (targetname Waffe_ak47)

image003.png

• Einen Block erstellen 1 Unit Groß mit Textur TOOLS/NODRAW
• Block zu einem func_physbox_multiplayer machen
• Box benennen targetname physbox_ak47
• Box auf Waffe parenten
image005.png

• point_template erstllen
• bennen template_ak47
• templates einstellen (Waffe_ak47, physbox_ak47)
image007.png

• Button erstellen output OnTrigger template_ak47 forcespawn
image009.png

Triggerfeld:
• Filter_activator_name erstellen bennen targetname filter_ak47
• Filtername Waffe_ak47

image011.png

• Licht erstllen bennen targetname licht, initally dark hacken setzen
image013.png

• Triggerzone erstellen textur tools/toolsnodraw
• Triggerzone auf physik objekte einstellen
image015.png

• Filter auf filter_ak47 einstellen
image017.png

• Trigger Output einstellen:
image019.png

So ich hoffe das Prinzip wurde verstanden und freue mich schon auf die kommenden Maps die evntl Waffentriggern ...

MfG DrSilence :)