CS:GO-Spielmodi/Wingman
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 | Wettkampf | 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 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);
}
}
Fehler:Die hervorgehobene Zeile hat nicht den beabsichtigten Effekt, da SetEnabled kein gültiger Input für func_buyzone ist. [todo tested 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.
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 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.
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 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 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
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_brush es 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 func_nav_blocker 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.
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!