Zufallswaffen bei Rundenbeginn

In diesem Tutorial erkläre ich, wie man in seiner Counter-Strike: Source Karte an einer beliebigen Stelle eine von mehreren, vorher definierten Waffen zufällig erscheinen (spawnen) lässt. Dazu benötigen wir einen Auslöser (ein trigger_once oder in unserem Fall ein logic_auto), einen logic_case für die zufällige Auswahl und für jede Waffe jeweils ein env_entity_maker, ein point_template und das weapon_*-Entity selbst.

Die Waffen

Erstelle die Waffen, aus denen sich nachher der Zufall eine heraussuchen soll, als normales weapon_*-Entity. Du kannst sie auch gleich mit voller Munition spawnen lassen. Wir geben diesen dann entsprechende Namen wie „deagle“, „m4a1“, „awp“ oder so.

Die Templates

Jetzt benötigen wir für jede Waffe ein point_template und am besten wieder mit passenden Namen wie „temp_deagle“, „temp_m4a1“, „temp_awp“ und so weiter. Außerdem belegen wir das erste Template (also nicht das erste Entity, sondern in jedem point_template-Entity das Template 1) mit den entsprechenden Waffennamen „deagle“, „m4a1“, „awp“ und so weiter.

Der Entity-Maker

Jetzt brauchen wir für alle späteren Fallunterscheidungen des logic_case ein env_entity_maker, wo dann auch die Waffe gespawnt wird. Dort stellen wir nur den Namen („maker1a“, „maker1b“ und so weiter) und das Point_template To Spawn mit den Namen „temp_deagle“, „temp_m4a1“, „temp_awp“ und so weiter ein.

Der Auslöser

Damit sich unsere zufällige Waffe zu Rundenbeginn spawnt, setzen wir in unsere Map ein logic_auto und gehen in seine Outputs-Optionen. Jetzt fügen wir einen Output mit folgenden Einstellungen hinzu:

  • My output named: On Map Spawn (nach jedem Laden der Karte und nach jedem Rundenstart wird getriggert)
  • Targets Entities named: „case1“ (Ziel ist der logic_case)
  • Via this Input: PickRandom (zufällige Auswahl eines Outputs des logic_case)
  • After a delay in seconds of: 0 (ohne Verzögerung)

Die Zweigstelle

Wir erstellen gleich neben dem logic_auto ein logic_case mit dem Namen „case1“, der alle möglichen Fälle verwaltet. Für jeden Case stellen wir einen beliebigen Namen ein (zum Beispiel „1“, „2“ und so weiter) (ist unwichtig, entscheidend sind die Output-Einstellungen) und fügen dem Entity Outputs hinzu:

  • My output named: OnCase1 (im Falle von Fall 1 passiert…)
  • Targets Entities named: „maker1a“ (Ziel von Fall 1 ist der env_entity_makers 1)
  • Via this Input: ForceSpawn (spawnt das verlinkte Template des env_entity_maker)
  • After a delay in seconds of: 0 (ohne Verzögerung)

Für jede mögliche Waffe müsst ihr also einen case-Namen geben und in den Outputs oben stehende Liste abarbeiten (nur halt mit „OnCase2“/„maker1b“, „OnCase“/„maker1c“ usw.).

Bemerkungen

Ich habe übrigens die Namensformatierung (maker1b = im ersten Zufallsgenerator der zweite mögliche Fall) so gewählt, da man ja vermutlich nicht nur eine Zufallswaffe in seinem Level haben möchte, sondern mehrere. Jetzt kann man sie nämlich „maker2“, „maker3“ und so weiter benennen. Als Auslöser für zusätzliche Zufallswaffengeneratoren braucht man nur das eine logic_auto, das man dann mit neuen Outputs zu den - pro Zufallswaffengeneratoren einen - logic_case erweitert.

Ich hoffe, dass das Tutorial verständlich genug war und dass ihr alles hinbekommen habt. Falls etwas nicht funktioniert, geht das Tutorial nochmal Zeile für Zeile durch, schaut ob alle Input/Output-Verbindungen funktionieren oder meldet euch als allerletzte Lösung im Forum.

Die Verwendung aller Dokumente einschließlich der Abbildungen ausschließlich zu nichtkommerziellen Zwecken. Verbreitung des Dokuments auf Speichermedien, (insbesondere auf CD-ROMs als Beilage zu Zeitschriften und Magazinen oder sog. "Mission-Packs" etc.) ist untersagt.
 
counter_strike_source/tutorials/zufallswaffen.txt · Zuletzt geändert: 2009/11/30 13:14 von Adrian_Broher