De/Counter-Strike: Global Offensive/Game Modes/Wingman: Difference between revisions
TheBlokker (talk | contribs) 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: < | '''Wingman''' (intern: <tt>'''scrimcomp2v2'''</tt>) ist ein [[CS:GO Game Modes:de|Spielmodus]] in {{csgo|4}}. | ||
Hier erfahren Sie, wie Sie eine | Hier erfahren Sie, wie Sie eine Wettkampf-Karte dafür modifizieren und wie es funktioniert. | ||
Eine Karte wird im Wingman-Spielmodus mit den Befehlen | 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 | |+ Entscheidende Unterschiede in der [[CFG:de|CFG]] | ||
! | ! Eigenschaft !! {{csgo mode:de|comp}} Wettkampf !! {{csgo mode:de|wingman}} Wingman | ||
|- | |- | ||
| ''Spieler pro Mannschaft'' || 5 || 2 | | ''Spieler pro Mannschaft'' || 5 || 2 | ||
|- | |- | ||
| | | 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 | 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 | Die entscheidenden Unterschiede sind die [[CFG:de|CFG]]-Datei des Spielmodus (siehe Tabelle rechts) und [[maxplayers]]. | ||
Offiziell | Offiziell wird der Spielmodus wie folgt gespielt: | ||
* Zwei Teams von zwei [[player:de| | * Zwei Teams von zwei [[player:de|Spielern]] spielen ein Match in einer Wettkampf-Umgebung. | ||
* Es gibt | * Es gibt einen zugänglichen [[func_bomb_target:de|Bombenort]]. | ||
== | == Wingman-Unterstützung auf Wettkampf-Karten == | ||
Jede {{csgo mode:de|Comp}}-Karte kann modifiziert werden, | 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, | 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. | |||
{{important:de| | {{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 | {{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 | // ü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 = | // 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 | 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); // | 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> | {{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 | 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 | 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| | {{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 | 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>. | ||
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 | 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 | 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, | 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 | 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 | |||
Wenn sich diese Spawns nicht bereits in einer | 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| | ||
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 | 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| | [[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 | Das Spiel läuft im aktuellen Zustand, aber wahrscheinlich soll nur ein [[func_bomb_target:de|Bombenort]] erreichbar sein. | ||
Erstellen Sie dazu einige [[ | 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 | 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 | 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 | Jetzt werden die '''brush.blocker'''s wunderbar Spieler blockieren, aber möglicherweise werden [[Bot:de|Bots]] weiterhin an diesen Blockaden verzweifeln. | ||
Erstellen Sie | 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> | 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 | {{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 | 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 | 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

Wingman (intern: scrimcomp2v2) ist ein Spielmodus in 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
Eigenschaft | ![]() |
![]() |
---|---|---|
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 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 Wettkampf-Karte kann modifiziert werden, sodass sie
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.
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);
}
}
![]() 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 | |
---|---|---|---|---|---|---|
![]() |
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.

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

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.
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!