Tutorial:Kicksystem per Chatnachricht
Aus Mappedia
In diesem Tutorial wird erklärt, wie man ein einfaches Kicksystem erstellt, was den einfachen Rauswurf von Spielern ermöglicht. Dabei hat aber nur ein Spieler, der von vornerein feststeht, die Möglichkeit zu kicken.
[bearbeiten] Die Idee
Das angestrebte System basiert auf folgender Idee:
Wenn Spieler 1 als Chatnachricht -kick, gefolgt von der Farbe oder dem Namen des zu kickenden Spielers eintippt, wird eben dieser aus dem Spiel geworfen. Da das Rauswerfen aus dem Spiel in Warcraft nicht explizit enthalten ist, beenden wir einfach das Spiel für den gekickten Spieler als verloren.
[bearbeiten] Umsetzung
Die Umsetzung ist genau so einfach wie die Idee:
Zuerst erstellen wir einen neuen Trigger den wir Kick Spieler 2 nennen. Wir füllen den Trigger nun mit folgendem Inhalt (erklärung unten)

Ereignisse

Spieler - Spieler 1 (Rot) types a chat message containing -kick as Ein Teil-String
Bedingungen

((Entered chat string) Gleich -kick blau) or ((Entered chat string) Gleich (-kick + (Name of Spieler 2 (Blau))))
Aktionen

Spiel - Defeat Spieler 2 (Blau) with the message: Du wurdest gekickt ...Erklärung:
Im Abschnitt Ereignisse wird abgefragt ob Spieler 1 eine Chatnachricht geschrieben hat, die -kick enthält. Im Abschnitt Bedingungen wird abgefragt ob er entweder -kick blau oder /kick [Name von Spieler 2] eingetippt hat. Stimmt das, hat Spieler 2 im Abschnitt Aktionen mit der Nachricht "Du wurdest gekickt ..." das Spiel verloren und muss es verlassen.
Nach dem gleichen Prinzip kann man das System auf die anderen Spieler Farben/Namen übertragen.
[bearbeiten] Dynamischere Variante
Kicked den Spieler dessen Namen eingegeben wurde.

Ereignisse

Spieler - Spieler 1 (Rot) types a chat message containing -kick as Ein Teil-String
Bedingungen
Aktionen
For each (Integer A) from 1 to 12, do (Actions)

Schleifen - Aktionen


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



'IF'-Bedingungen




Or - Any (Conditions) are true





Bedingungen






(Substring((Entered chat string), 6, (Length of (Entered chat string)))) Gleich (Name of (Player((Integer A))))



'THEN'-Aktionen




Spiel - Defeat (Player((Integer A))) with the message: Du wurdest rausgewo...




Einheitengruppe - Pick every unit in (Units in (Playable map area) owned by (Player((Integer A)))) and do (Actions)





Schleifen - Aktionen






Einheit - Kill (Picked unit)



'ELSE'-AktionenErklärung:
Sobald Spieler Rot -kick (Name) eingibt, sucht der Trigger nach dem Spieler dem der Name zugehört (mit einer
Schleife). Sobald er ihn gefunden hat, wirft er den Spieler raus und töted seine Einheiten.
Wenn man nun noch in einem StringArray die Namen aller Spielerfarben speichert gehts auch hier wieder dynamisch mit schleife. Ausserdem kann man es auch mit Spielernummer machen, da man diese einfach von String auf Int umwandeln und dann den Spieler kicken kann.

