De/Counter-Strike: Global Offensive/Game Modes/Wingman: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (TheBlokker moved page CS:GO Game Modes:de/Wingman to CS:GO Game Modes/Wingman:de: Change Lang)
(Improved translation. Updated formatting/links.)
Line 2: Line 2:
{{back|Counter-Strike: Global Offensive Level Creation:de}}
{{back|Counter-Strike: Global Offensive Level Creation:de}}
[[File:Csgo icon wingman.png|left|link=]]
[[File:Csgo icon wingman.png|left|link=]]
'''Wingman'''(intern: <code>'''scrimcomp2v2'''</code>) ist ein [[game name:de|Spielmodus]] in {{game name:de|csgo|name=Counter-Strike: Global Offensive}}.
'''Wingman''' (intern: <tt>'''scrimcomp2v2'''</tt>) ist ein [[CS:GO Game Modes:de|Spielmodus]] in {{csgo|4}}.


Hier erfahren Sie, wie Sie eine Wettbewerbskarte dafür modifizieren und wie das alles funktioniert.
Hier erfahren Sie, wie Sie eine Wettkampf-Karte dafür modifizieren und wie es funktioniert.


Eine Karte wird im Wingman-Spielmodus mit den Befehlen {{ent:de|game_type|0}}, {{ent:de|game_mode|2}} und <code>[[Map (ConCommand):de|map]] <mapname></ gestartet. code>, oder alles in einem: <code>map <mapname> scrimcomp2v2</code>.
Eine Karte wird im Wingman-Spielmodus mit den Befehlen <code>game_type 0; game_mode 2; [[Map (ConCommand):de|map <mapname></code> gestartet, oder kürzer: <code>map <mapname> scrimcomp2v2</code>.
{{clr}}
{{clr}}
__TOC__
__TOC__
Line 12: Line 12:
== Beschreibung des Spielmodus ==
== Beschreibung des Spielmodus ==
{| class="standard-table" style="float:right;"
{| class="standard-table" style="float:right;"
|+ Entscheidende ([[CFG:de|CFG]]) Unterschiede
|+ Entscheidende Unterschiede in der [[CFG:de|CFG]]
! Eigenschaften !! {{csgo mode:de|comp}} Wettbewerbsfähig !! {{csgo mode:de|wingman}} Wingman
! Eigenschaft !! {{csgo mode:de|comp}} Wettkampf !! {{csgo mode:de|wingman}} Wingman
|-
|-
| ''Spieler pro Mannschaft'' || 5 || 2
| ''Spieler pro Mannschaft'' || 5 || 2
|-
|-
| Das Beste von || 30 || 16
| Best Of || 30 || 16
|-
|-
| Rundenzeit in Minuten || 1:55 || 1:30
| Rundenzeit in Minuten || 1:55 || 1:30
Line 26: Line 26:
|}
|}
Technisch gesehen entspricht dieser Spielmodus fast dem Spielmodus {{csgo mode:de|Competitive}}.
Technisch gesehen entspricht dieser Spielmodus fast dem Spielmodus {{csgo mode:de|Competitive}}.
Die Ereignisse am Ende der Runde sind gleich, was bedeutet, dass dieser Spielmodus mit [[func_bomb_target:de|Bombenstandorten]], [[hostage_entity:de|Geiseln]] oder keiner von ihnen gespielt werden kann.
Die Ereignisse, die eine Runde beenden, sind identisch, was bedeutet, dass dieser Spielmodus sowohl mit [[func_bomb_target:de|Bombenorten]] als auch [[hostage_entity:de|Geiseln]] gespielt werden kann.
Die entscheidenden Unterschiede sind die Datei [[CFG:de|CFG]] des Spielmodus (siehe Tabelle rechts) und [[maxplayers:de|Maximale Spielerzahl]].
Die entscheidenden Unterschiede sind die [[CFG:de|CFG]]-Datei des Spielmodus (siehe Tabelle rechts) und [[maxplayers]].


Offiziell spielt sich der Spielmodus wie folgt ab:
Offiziell wird der Spielmodus wie folgt gespielt:
* Zwei Teams von zwei [[player:de|Spieler]] spielen ein Match in einer Wettbewerbsfähige Umgebung.
* Zwei Teams von zwei [[player:de|Spielern]] spielen ein Match in einer Wettkampf-Umgebung.
* Es gibt eine zugängliche [[func_bomb_target:de|Bombenstandorten]].
* Es gibt einen zugänglichen [[func_bomb_target:de|Bombenort]].


== Hinzufügen von Wingman-Unterstützung zu einer Karte ==
== Wingman-Unterstützung auf Wettkampf-Karten ==


Jede {{csgo mode:de|Comp}}-Karte kann modifiziert werden, um {{csgo mode:de|Wingman}} auf die gleiche Weise wie Cobblestone, Inferno, Nuke, Overpass, Vertigo und Train zu unterstützen.
Jede {{csgo mode:de|Comp}}-Karte kann modifiziert werden, sodass sie {{csgo mode:de|Wingman}} auf die gleiche Weise wie ''Cobblestone'', ''Inferno'', ''Nuke'', ''Overpass'', ''Vertigo'' und ''Train'' unterstützt.
Diese Karten sind eigentlich zu groß für Wingman, aber wenn sie in Wingman gestartet werden, werden die Spawnpunkte und Buyzones bei Bedarf "verschoben" und es gibt Blocker, die den spielbaren Bereich auf nur eine Bombsite beschränken.
Diese Karten sind eigentlich zu groß für Wingman, doch wenn sie in Wingman gestartet werden, werden die Spawnpunkte und Kaufzonen bei Bedarf "verschoben" und es gibt Blockaden, die den bespielbaren Bereich der Karte auf nur einen Bombenort beschränken.
Wie dies geschehen kann, wird in den folgenden Abschnitten erläutert.
Die folgenden Abschnitte behandeln, wie Kartenersteller dies reproduzieren können.


{{important:de|Wenn Sie Ihre Karte für Wingman so entwerfen, dass keine Spawn-Verschiebung oder -Blockierung durchgeführt werden muss, benötigen Sie dieses Tutorial nicht.}}
{{important:de|Für Karten, auf denen für Wingman keine Spawnpunkte verschoben oder Blockaden aktiviert werden müssen, ist diese Anleitung irrelevant.}}
{{note:de|''de_nuke'' unterstützt Wingman nicht wirklich, stattdessen verwendet Valve eine andere Karte, ''de_shortnuke'', die buchstäblich die Hälfte von ''de_nuke'' ist und nur aus den Innenteilen für Bombenstandort B besteht, die spart Ressourcen.}}
{{note:de|''de_nuke'' unterstützt Wingman eigentlich nicht, stattdessen verwendet Valve eine andere Karte, ''de_shortnuke'', die nur die Hälfte von ''de_nuke'' enthält, nämlich nur die Innenbereiche für Bombenort B.}}


=== Skripterstellung ===
=== Skripterstellung ===
Line 52: Line 52:
function EnableWingman()
function EnableWingman()
{
{
       // überprüft den Spielmodus und -typ und das aktuelle Spiel
       // überprüft den Spielmodus und -typ des aktuellen Spiels
       local nMode = ScriptGetGameMode();
       local nMode = ScriptGetGameMode();
       local nType = ScriptGetGameType();
       local nType = ScriptGetGameType();


       // type 0, mode 0 = Casual
       // type 0, mode 0 = Gelegenheitsspiel
       // type 0, mode 1 = Wettkampf
       // type 0, mode 1 = Wettkampf
       // type 1, mode 0 = Wettrüsten
       // type 1, mode 0 = Wettrüsten
Line 64: Line 64:




if (nMode == 2 && nType == 0) // Wenn wir 2v2 laufen, mach Sachen
if (nMode == 2 && nType == 0) // Wenn 2v2 läuft, tu Dinge
{
{
  EntFire("spawnpoints.standard", "SetDisabled", 0, 0);
  EntFire("spawnpoints.standard", "SetDisabled", 0, 0);
Line 74: Line 74:
else
else
{
{
  EntFire("buyzone.2v2", "Disable", 0, 0); // Deaktivieren Sie 2v2-Kaufzonen
  EntFire("buyzone.2v2", "Disable", 0, 0); // 2v2-Kaufzonen deaktivieren
  EntFire("navblocker.2v2", "UnblockNav", 0, 0);
  EntFire("navblocker.2v2", "UnblockNav", 0, 0);
}
}
Line 80: Line 80:
  }
  }
</syntaxhighlight>
</syntaxhighlight>
{{bug:de|Die hervorgehobene Zeile hat nicht den beabsichtigten Effekt, da <code>SetEnabled</code> keine gültige Eingabe für [[func_buyzone:de|func_buyzone]] ist.}}
{{bug:de|Die hervorgehobene Zeile hat nicht den beabsichtigten Effekt, da <code>SetEnabled</code> kein gültiger Input für {{ent|func_buyzone}} ist.}}
|}
|}
Um in Wingman Spawn-Punkte zu verschieben oder Bereiche '''nur''' zu blockieren, muss unsere Karte [[CS:GO Game Modes:de#Spielmodus-abhängige Ereignisse|den aktuellen Spielmodus erkennen]], was [[VScript:de|VScript]] erfordert.
Um '''nur in Wingman''' Spawnpunkte zu verschieben oder Bereiche zu blockieren, muss unsere Karte [[CS:GO Game Modes:de#Spielmodus-abhängige Ereignisse|den aktuellen Spielmodus erkennen]], was [[VScript:de|VScript]] erfordert.
Glücklicherweise hat Valve bereits ein VScript erstellt, das dies tut (rechts zu sehen) und es für jede Karte verfügbar gemacht, sodass Sie keinen Code schreiben müssen.
Glücklicherweise hat Valve bereits ein VScript erstellt, das dies tut (rechts zu sehen) und da es für jeden verfügbar ist, muss kein Code geschrieben werden.
{{note:de|Ein eigenes Skript zu erstellen ist ebenfalls eine Option; aber vergessen Sie nicht, benutzerdefinierte Skripte in die Karte zu packen, wenn Sie [[CSGO Map Publish Tool:de|veröffentlichen]]]!}}
{{note:de|Es kann auch ein eigenes Skript erstellt werden, aber vergessen Sie nicht, diese vor der [[CS:GO Map Publish Tool:de|Veröffentlichung]] zur Karte zu packen!}}
Erstellen Sie zum Ausführen dieses Skripts eine ''[[logic_script:de|logic_script]]''-Entität in Ihrer Map und nennen Sie sie '''script.2v2'''.
Erstellen Sie zum Ausführen dieses Skripts ein {{ent|logic_script}} in der Karte mit dem [[targetname]] '''script.2v2''' (frei wählbar).
Setzen Sie die Eigenschaft <code>Entity Scripts</code> auf <code>2v2/2v2_enable.nut</code>.
Setzen Sie die Eigenschaft <code>Entity Scripts</code> auf <code>2v2/2v2_enable.nut</code>.


Dann machen Sie ein ''[[logic_auto:de|logic_auto]]'' mit folgendem [[output:de|output]]:
Erstellen Sie dann ein ''[[logic_auto:de|logic_auto]]'' mit folgendem [[output:de|output]]:
{| {{OutputsTable|sortable=0}}
{| {{OutputsTable|sortable=0}}
| [[Image:io11.png]] || OnMapSpawn || script.2v2 || RunScriptCode || EnableWingman() || 0 || No
| [[Image:io11.png|link=]] || OnMapSpawn || script.2v2 || RunScriptCode || EnableWingman() || 0 || No
|}
|}


In jeder Runde führt dies die Funktion <code>EnableWingman</code> aus, die [[I/O:de|E/A]]-Ereignisse an benannte Entitäten in unserem Level abfeuert, je nachdem, in welchem Spielmodus wir uns befinden.
In jeder Runde führt dies die Funktion <code>EnableWingman</code> aus, die [[I/O:de|E/A]]-Ereignisse an bestimmte, benannte Entitäten in unserem Level auslöst, je nachdem, welcher Spielmodus läuft.
Aus diesem Grund müssen alle folgenden Entitätsnamen genau wie im obigen VScript sein, sonst funktioniert es nicht.
Aus diesem Grund müssen alle folgenden Entitätsnamen genau wie im obigen VScript sein, sonst funktioniert es nicht.


=== Spawnpunkte und Kaufzonen ===
=== Spawnpunkte und Kaufzonen ===


Wählen Sie zuerst alle normalen Spawn-Punkte (sowohl [[info_player_counterterrorist:de|CT]] als auch [[info_player_terrorist:de|T]]) aus, die im normalen klassischen Modus verwendet werden, und ändern Sie ihre Namen in '''spawnpoints.standard' ''. Das Skript wird diese in Wingman deaktivieren.
Wählen Sie zuerst alle Spawnpunkte beider Teams an, die im normalen klassischen Modus verwendet werden sollen, und ändern Sie ihre Namen in '''spawnpoints.standard'''. Das Skript wird diese in Wingman deaktivieren.


Erstellen Sie nun mindestens zwei Spawnpunkte für jedes Team, das in Wingman verwendet werden soll.
Erstellen Sie nun mindestens zwei Spawnpunkte für jedes Team, die in Wingman verwendet werden sollen. In den offiziellen Valve-Karten gibt es 4 pro Team.
In den offiziellen Valve-Karten verwenden sie 4 für jedes Team.
Wählen Sie alle an, nennen Sie sie '''spawnpoints.2v2''' und setzen Sie <code>Enable by default?</code> auf <code>No</code>.
Wählen Sie alle aus, nennen Sie sie '''spawnpoints.2v2''' und setzen Sie <code>Standardmäßig aktivieren?</code> auf <code>Nein</code>.


Wenn sich diese Spawns nicht bereits in einer [[func_buyzone:de|Kaufzonen]] befinden, erstellen Sie eine für sie, wählen Sie das Team aus und nennen Sie es '''buyzone.2v2'''. Machen Sie dasselbe für das andere Team.
Wenn sich diese Spawns nicht bereits in einer {{ent:de|func_buyzone}} befinden, erstellen Sie eine für sie, wählen Sie das Team aus und nennen Sie es '''buyzone.2v2'''. Tun Sie dasselbe für das andere Team.
{{bug:de|
{{bug:de|
Setze alle Buyzones auf Start Enabled! In Valves Skript aktiviert <code>EnableWingman()</code> niemals eine Buyzone in allen Spielmodi, da <code>"SetEnabled"</code> keine gültige Eingabe für [[func_buyzone:de|func_buyzone]] ist. Das Skript ist dennoch nützlich, da es die Wingman-Kaufzone bei Bedarf <code>Disable</code>.
Alle Kaufzonen müssen standardmäßig aktiviert sein! In Valves Skript wird durch <code>EnableWingman()</code> niemals eine Kaufzone aktiviert, unabhängig vom Spielmodus. Grund ist, dass <code>"SetEnabled"</code> kein gültiger Input für {{ent:de|func_buyzone}} ist. Das Skript ist dennoch nützlich, da es die Wingman-Kaufzone bei Bedarf deaktiviert.
Außerdem deaktiviert das Skript nicht die Standard-Kaufzonen in Wingman, da davon ausgegangen wird, dass sie sich außerhalb des spielbaren Bereichs befinden. Wenn dies ein Problem ist, schreiben Sie Ihr eigenes Skript und beheben Sie es oder finden Sie eine andere Lösung.
Außerdem deaktiviert das Skript nicht die Standard-Kaufzonen in Wingman, da möglicherweise gar keine Verschiebungen stattfinden sollen. Wenn dies ein Problem ist, muss ein eigenes Skript geschrieben oder eine andere Lösung gefunden werden.
}}
}}


=== Blockieren des spielbaren Bereichs ===
=== Blockieren des spielbaren Bereichs ===


[[Image:Toolswrongway.png|thumb|192px|Die <code>tools/wrongway</code> [[tool texture:de|Texturentool]] ist nur für Spieler in der Nähe des Ursprungs der Entität sichtbar, auf die dieses Material angewendet wird.]]
[[Image:Toolswrongway.png|thumb|192px|Die <code>tools/wrongway</code> [[tool texture:de|Tool-Textur]] ist nur für Spieler in der Nähe des Ursprungs derjenigen Entität sichtbar, auf der diese Textur ist.]]
Das Spiel kann so funktionieren, wie es jetzt ist, aber Sie möchten wahrscheinlich, dass nur eine [[func_bomb_target:de|Bombenstandorten]] erreichbar ist.
Das Spiel läuft im aktuellen Zustand, aber wahrscheinlich soll nur ein [[func_bomb_target:de|Bombenort]] erreichbar sein.
Erstellen Sie dazu einige [[Clippinsel]]e mit der Textur „tools/toolsclip“ an den Stellen, an denen die [[player:de|Spieler]] nicht hinkommen sollen.
Erstellen Sie dazu einige [[Clip texture|Clip-Brushes]] mit der Textur <code>tools/toolsclip</code> an den Stellen, an denen die [[player:de|Spieler]] blockiert werden sollen.
Wandeln Sie sie in ''[[func_brush:de|func_brush]]es'' um und nennen Sie sie '''brush.blocker'''.
Wandeln Sie diese in ''[[func_brush:de|func_brush]]es'' um und nennen Sie sie '''brush.blocker'''.
Setzen Sie <code>Start disabled</code> auf <code>Yes</code> und das Skript aktiviert sie nur in Wingman.
Setzen Sie <code>Start disabled</code> auf <code>Yes</code> und das Skript aktiviert sie nur in Wingman.


Sie können sogar mehr davon machen und die coole Textur <code>tools/wrongway</code> verwenden, um den Spielern zu signalisieren, dass sie nicht durch diese unsichtbare Wand gehen können. Es verblasst sogar mit der Entfernung! Für diese Pinsel möchten Sie normalerweise ihre <code>Solidity</code> auf <code>Never Solid</code> setzen, wenn sie sich bereits in einem größeren '''brush.blocker''' befinden, da ihre Kollision auch nicht benötigt wird Es sollte auch keine Probleme geben.
Sie können sogar mehr daraus machen und die coole Textur <code>tools/wrongway</code> verwenden, um den Spielern zu signalisieren, dass es eine unsichtbare Wand gibt. Es verblasst sogar mit zunehmender Entfernung! Für diese Brushes ist es eine gute Angewohnheit, deren <code>Solidity</code> auf <code>Never Solid</code> zu setzen, wenn sie sich bereits innerhalb eines größeren '''brush.blocker'''s befinden, da überlappende Kollisionen unnötig sind.


=== Navigationsnetze blockieren ===
=== Navigationsnetze blockieren ===


Jetzt werden die '''brush.blocker'''s großartige Arbeit beim Blockieren von Spielern leisten, aber [[bot]]s könnten immer noch versuchen, durch die Blocker zu gehen.
Jetzt werden die '''brush.blocker'''s wunderbar Spieler blockieren, aber möglicherweise werden [[Bot:de|Bots]] weiterhin an diesen Blockaden verzweifeln.


Erstellen Sie ''[[func_nav_blocker:de|func_nav_blocker]]'' Brush Entities innerhalb der '''brush.blocker'''s mit der <code>tools/toolstrigger</code> Textur und nennen Sie sie ''''navblocker.2v2'''.
Erstellen Sie {{ent:de|func_nav_blocker}} Entitäten innerhalb der '''brush.blocker''' mit der Textur <code>tools/toolstrigger</code> und nennen Sie sie '''navblocker.2v2'''.
Das VScript feuert schließlich <code>BlockNav</code> auf diese Entitäten in Wingman oder <code>UnblockNav</code> in allen anderen Spielmodi ab und informiert die Bots, ob ihr Bereich blockiert ist oder nicht.
Das VScript feuert in Wingman schließlich <code>BlockNav</code> an diese Entitäten oder <code>UnblockNav</code> in allen anderen Spielmodi und informiert dadurch die Bots, ob ein Bereich blockiert ist oder nicht.
{{tip:de|Wenn Bots weiterhin versuchen, durch die Blocker zu gehen, ist der ''func_nav_blocker'' möglicherweise zu eng und blockiert keine [[Nav Mesh:de|Nav Mesh]]-Bereiche. Verwenden Sie zur Visualisierung den Cheat {{ent:de|nav_edit|1}}. Von Navigationsblockern blockierte Bereiche sind [[Nav Mesh Editing#Area Attributes:de|marked]] mit einem <span style{{=}}color:cyan>Cyan Rectangle</span> entlang der Umrandung.}}
{{tip:de|Wenn Bots weiterhin versuchen, durch die Blocker zu gehen, ist der <tt>func_nav_blocker</tt> möglicherweise zu schmal und blockiert keine [[Nav Mesh:de|Nav Mesh]]-Bereiche. Verwenden Sie zur Visualisierung den Cheat {{ent|nav_edit|1}}. Von Navigationsblockern blockierte Bereiche sind [[Nav Mesh Editing#Area Attributes:de|markiert]] mit einem <span style{{=}}color:cyan>cyanfarbenen Rechteck</span> entlang der Umrandung.}}


== Testen und Hochladen ==
== Testen und Hochladen ==


Um eine Karte im Wingman-Modus zu spielen, geben Sie die Befehle {{ent:de|game_type|0}} und {{ent:de|game_mode|2}} in die Konsole ein und geben Sie dann den <code>[[Map (ConCommand):de|map]]</code> Befehl ein, um auf Ihre Karte zuzugreifen.
Um eine Karte im Wingman-Modus zu spielen, geben Sie die Befehle <tt>game_type 0; game_mode 2</tt> in die Konsole ein und geben Sie dann den <tt>[[Map (ConCommand):de|map]]</tt>-Befehl ein, um die Karte zu laden.


Wenn Sie die Karte in den Workshop hochladen, stellen Sie sicher, dass Sie „Wingman“ in der Liste der Spielmodi auswählen, damit die Leute dies auswählen können, wenn sie die Karte über die Registerkarte „Workshop“ im Spiel öffnen.
Wenn Sie die Karte in den Workshop hochladen, stellen Sie sicher, dass Sie ''Wingman'' in der Liste der Spielmodi ausgewählt haben, damit andere Nutzer den Modus beim Start der Karte über das Hauptmenü auswählen können.
'''Fertig!'''
'''Fertig!'''



Revision as of 17:28, 21 June 2022

English (en)Deutsch (de)Русский (ru)Translate (Translate)
Counter-Strike: Global Offensive Level Creation:de
Csgo icon wingman.png

Wingman (intern: scrimcomp2v2) ist ein Spielmodus in Counter-Strike: Global Offensive Counter-Strike: Global Offensive.

Hier erfahren Sie, wie Sie eine Wettkampf-Karte dafür modifizieren und wie es funktioniert.

Eine Karte wird im Wingman-Spielmodus mit den Befehlen game_type 0; game_mode 2; [[Map (ConCommand):de|map <mapname> gestartet, oder kürzer: map <mapname> scrimcomp2v2.

Beschreibung des Spielmodus

Entscheidende Unterschiede in der CFG
Eigenschaft CS:GO/CS2 Wettkampf Wettkampf CS:GO/CS2 Wingman Wingman
Spieler pro Mannschaft 5 2
Best Of 30 16
Rundenzeit in Minuten 1:55 1:30
Freezetime in Sekunden 15 10
Maximales Geld $16000 $8000

Technisch gesehen entspricht dieser Spielmodus fast dem Spielmodus CS:GO/CS2 Wettkampf Wettkampf. Die Ereignisse, die eine Runde beenden, sind identisch, was bedeutet, dass dieser Spielmodus sowohl mit Bombenorten als auch Geiseln gespielt werden kann. Die entscheidenden Unterschiede sind die CFG-Datei des Spielmodus (siehe Tabelle rechts) und maxplayers.

Offiziell wird der Spielmodus wie folgt gespielt:

  • Zwei Teams von zwei Spielern spielen ein Match in einer Wettkampf-Umgebung.
  • Es gibt einen zugänglichen Bombenort.

Wingman-Unterstützung auf Wettkampf-Karten

Jede CS:GO/CS2 Wettkampf Wettkampf-Karte kann modifiziert werden, sodass sie CS:GO/CS2 Wingman Wingman auf die gleiche Weise wie Cobblestone, Inferno, Nuke, Overpass, Vertigo und Train unterstützt. Diese Karten sind eigentlich zu groß für Wingman, doch wenn sie in Wingman gestartet werden, werden die Spawnpunkte und Kaufzonen bei Bedarf "verschoben" und es gibt Blockaden, die den bespielbaren Bereich der Karte auf nur einen Bombenort beschränken. Die folgenden Abschnitte behandeln, wie Kartenersteller dies reproduzieren können.

File:Important template.gif Wichtig: Für Karten, auf denen für Wingman keine Spawnpunkte verschoben oder Blockaden aktiviert werden müssen, ist diese Anleitung irrelevant.

Template:Note:de

Skripterstellung

csgo/scripts/vscripts/2v2/2v2_enable.nut
// Diese Funktion wird von der Karte OnMapSpawn aufgerufen

function EnableWingman()
{
       // überprüft den Spielmodus und -typ des aktuellen Spiels
       local nMode = ScriptGetGameMode();
       local nType = ScriptGetGameType();

       // type 0, mode 0 = Gelegenheitsspiel
       // type 0, mode 1 = Wettkampf
       // type 1, mode 0 = Wettrüsten
       // type 1, mode 1 = Zerstörung
       // type 1, mode 2 = Deathmatch
       // usw. 


	if (nMode == 2 && nType == 0)								// Wenn 2v2 läuft, tu Dinge
	{
	  EntFire("spawnpoints.standard", "SetDisabled", 0, 0);
	  EntFire("spawnpoints.2v2", "SetEnabled", 0, 0);
	  EntFire("brush.blocker", "Enable", 0, 0);
	  EntFire("buyzone.2v2", "SetEnabled", 0, 0);
	  EntFire("navblocker.2v2", "BlockNav", 0, 0);
	}
	else
	{
	  EntFire("buyzone.2v2", "Disable", 0, 0);				// 2v2-Kaufzonen deaktivieren
	  EntFire("navblocker.2v2", "UnblockNav", 0, 0);
	}
  
 }
Icon-Bug.pngFehler:Die hervorgehobene Zeile hat nicht den beabsichtigten Effekt, da SetEnabled kein gültiger Input für func_buyzone ist.  [todo getestet in ?]

Um nur in Wingman Spawnpunkte zu verschieben oder Bereiche zu blockieren, muss unsere Karte den aktuellen Spielmodus erkennen, was VScript erfordert. Glücklicherweise hat Valve bereits ein VScript erstellt, das dies tut (rechts zu sehen) und da es für jeden verfügbar ist, muss kein Code geschrieben werden. Template:Note:de Erstellen Sie zum Ausführen dieses Skripts ein logic_script in der Karte mit dem targetname script.2v2 (frei wählbar). Setzen Sie die Eigenschaft Entity Scripts auf 2v2/2v2_enable.nut.

Erstellen Sie dann ein logic_auto mit folgendem output:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn script.2v2 RunScriptCode EnableWingman() 0 No

In jeder Runde führt dies die Funktion EnableWingman aus, die E/A-Ereignisse an bestimmte, benannte Entitäten in unserem Level auslöst, je nachdem, welcher Spielmodus läuft. Aus diesem Grund müssen alle folgenden Entitätsnamen genau wie im obigen VScript sein, sonst funktioniert es nicht.

Spawnpunkte und Kaufzonen

Wählen Sie zuerst alle Spawnpunkte beider Teams an, die im normalen klassischen Modus verwendet werden sollen, und ändern Sie ihre Namen in spawnpoints.standard. Das Skript wird diese in Wingman deaktivieren.

Erstellen Sie nun mindestens zwei Spawnpunkte für jedes Team, die in Wingman verwendet werden sollen. In den offiziellen Valve-Karten gibt es 4 pro Team. Wählen Sie alle an, nennen Sie sie spawnpoints.2v2 und setzen Sie Enable by default? auf No.

Wenn sich diese Spawns nicht bereits in einer {{ent:de}} is deprecated. Use {{ent}} instead.

befinden, erstellen Sie eine für sie, wählen Sie das Team aus und nennen Sie es buyzone.2v2. Tun Sie dasselbe für das andere Team.
Icon-Bug.pngFehler:

Alle Kaufzonen müssen standardmäßig aktiviert sein! In Valves Skript wird durch EnableWingman() niemals eine Kaufzone aktiviert, unabhängig vom Spielmodus. Grund ist, dass "SetEnabled" kein gültiger Input für {{ent:de}} is deprecated. Use {{ent}} instead.

ist. Das Skript ist dennoch nützlich, da es die Wingman-Kaufzone bei Bedarf deaktiviert.

Außerdem deaktiviert das Skript nicht die Standard-Kaufzonen in Wingman, da möglicherweise gar keine Verschiebungen stattfinden sollen. Wenn dies ein Problem ist, muss ein eigenes Skript geschrieben oder eine andere Lösung gefunden werden.

  [todo getestet in ?]

Blockieren des spielbaren Bereichs

Die tools/wrongway Tool-Textur ist nur für Spieler in der Nähe des Ursprungs derjenigen Entität sichtbar, auf der diese Textur ist.

Das Spiel läuft im aktuellen Zustand, aber wahrscheinlich soll nur ein Bombenort erreichbar sein. Erstellen Sie dazu einige Clip-Brushes mit der Textur tools/toolsclip an den Stellen, an denen die Spieler blockiert werden sollen. Wandeln Sie diese in func_brushes um und nennen Sie sie brush.blocker. Setzen Sie Start disabled auf Yes und das Skript aktiviert sie nur in Wingman.

Sie können sogar mehr daraus machen und die coole Textur tools/wrongway verwenden, um den Spielern zu signalisieren, dass es eine unsichtbare Wand gibt. Es verblasst sogar mit zunehmender Entfernung! Für diese Brushes ist es eine gute Angewohnheit, deren Solidity auf Never Solid zu setzen, wenn sie sich bereits innerhalb eines größeren brush.blockers befinden, da überlappende Kollisionen unnötig sind.

Navigationsnetze blockieren

Jetzt werden die brush.blockers wunderbar Spieler blockieren, aber möglicherweise werden Bots weiterhin an diesen Blockaden verzweifeln.

Erstellen Sie {{ent:de}} is deprecated. Use {{ent}} instead.

Entitäten innerhalb der brush.blocker mit der Textur tools/toolstrigger und nennen Sie sie navblocker.2v2.

Das VScript feuert in Wingman schließlich BlockNav an diese Entitäten oder UnblockNav in allen anderen Spielmodi und informiert dadurch die Bots, ob ein Bereich blockiert ist oder nicht. Template:Tip:de

Testen und Hochladen

Um eine Karte im Wingman-Modus zu spielen, geben Sie die Befehle game_type 0; game_mode 2 in die Konsole ein und geben Sie dann den map-Befehl ein, um die Karte zu laden.

Wenn Sie die Karte in den Workshop hochladen, stellen Sie sicher, dass Sie Wingman in der Liste der Spielmodi ausgewählt haben, damit andere Nutzer den Modus beim Start der Karte über das Hauptmenü auswählen können. Fertig!