Kapitel 09 · Enemy Territory

EINFACHES SCRIPT (TEIL 3)

Autor: Fragpoint
Downloads: Beispielmap und Script

Nun haben wir schon mal die ganzen Vorarbeiten im Radiant erledigt. Deshalb schauen wir uns jetzt erst noch einmal unser Script aus dem 2. Teil mit einer ausführlichen Erklärung an.

allied_obj1   // Haben die Allied den Safe gesprengt?
        { 
        spawn 
             { 
             wait 200 
             constructible_class 3 
             } 

             death 
             {
             // Meldung, wenn der Safe gesprengt wurde
             wm_announce "THE SAFE HAS BEEN DESTROYED!"
             // Status des Objectives neu ermitteln
             wm_objective_status 1 0 2
             wm_objective_status 1 1 1
             } 
        } 


allied_obj2     // Wurde die Formel von den Allied gestohlen?
        {
        spawn
            {
            }

        death
           {
           trigger game_manager objective2
           wm_objective_status 2 0 2
           wm_objective_status 2 1 1
           }
        }

Nun zerlegen wir es zum Erklären in feine kleine Happen:

allied_obj1   // Haben die Allied den Safe gesprengt?
        { 
        spawn 
             { 
             wait 200 
             constructible_class 3 
             } 

             death 
             {
             // Meldung, wenn der Safe gesprengt wurde
             wm_announce "THE SAFE HAS BEEN DESTROYED!"
             // Status des Objectives neu ermitteln
             wm_objective_status 1 0 2
             wm_objective_status 1 1 1
             } 
        }

allied_obj1
Dies ist der Name eines kleinen Unterprogramms, das für die Sprengung der Mauer zuständig ist. Wenn ihr im 2. Teil des Tutorials nachlest, haben wir genau in dem zur Mauer gehörenden Trigger, das gleiche Unterprogramm aufgerufen. Die Namen müssen auch hinsichtlich Groß-/Kleinschreibung identisch sein. Kleinste Fehler lassen das Script nicht mehr funktionieren. Achtet darauf ganz besonders.

spawn
Hier gibt es allgemeine Informationen zur Mauer, deshalb geht dort - genauso wie bei den allgemeinen Mapinformationen - eine Klammer auf. Der Befehl "constructible_class 3" darin gibt eigentlich nur an, dass es ein sprengbares Objekt ist. Die allgemeinen Informationen werden wieder durch eine geschlossene Klammer beendet.

death
Dieser Befehl gibt an, was passieren soll, wenn das Objekt "stirbt" bzw. zerstört/erledigt ist.

wm_announce "text"
Hier wird der Text angegeben, der an alle Teams am Monitor ausgegeben wird, sobald die Mauer zerstört wurde.

wm_objective_status 1 0 2
Wir hatten bei diesem Tutorial (Teil 1) in den allgemeinen Map-Informationen festgelegt, welches Objectiv zu welchem Team gehört und welchen Status dieses besitzt (1 = erfüllt, 0 = noch nicht erfüllt, oder 2 = versagt). Dieser Wert muss nun aktualisiert werden, damit das Spiel weiß, dass sich etwas verändert hat. In unserem Fall haben beim Objectiv 1 die Achsenmächse (0) versagt (2).

wm_objective_status 1 1 1
Wogegen ebenfalls bei Objectiv 1 die Allierten (1) durch die Sprengung erfolgreich (1) waren.

allied_obj2     // Wurde die Formel von den Allied gestohlen?
        {
        spawn
            {
            }

        death
           {
           trigger game_manager objective2
           wm_objective_status 2 0 2
           wm_objective_status 2 1 1
           }
        }

Hier ist ein weiteres Unterprogramm, das nun die Ablieferung der Dokumente steuert. Ihr erinnert Euch, dass wir beim Trigger im Ziel-/Abliefergebiet das gleiche Unterprogramm aufgerufen haben.

spawn
Hier gibt es allgemeine Informationen zur Mauer, deshalb geht dort - genauso wie bei den allgemeinen Mapinformationen - eine Klammer auf. Da wir hier nichts mitzuteilen haben, wird dieser Abschnitt auch gleich wieder durch eine geschlossene Klammer beendet.

death
Dieser Befehl gibt an, was passieren soll, wenn das Objekt "stirbt" bzw. erledigt ist.

trigger game_manager objective2
Schaut Euch noch mal kurz den 1. Teil des Scripts an. Dort haben wir in den allgemeinen Map-Informationen ein Unterprogramm aufgerufen, das das Ende einer Spielrunde beim Sieg einer Mannschaft steuert. Da die Runde nun durch den Erfolg der Allierten beim Stehlen der Dokumente fertig ist,
wird nun eben dieses Unterprogramm benötigt und auch aufgerufen.

wm_objective_status 2 0 2
Wir hatten bei diesem Tutorial (Teil 1) in den allgemeinen Map-Informationen festgelegt, welches Objectiv zu welchem Team gehört und welchen Status dieses besitzt (erfüllt, noch nicht erfüllt, oder versagt). Dieser Wert muss nun aktualisiert werden, damit das Spiel weiß, dass sich etwas verändert hat. In unserem Fall haben beim Objectiv 2 die Achsenmächse (0) versagt (2). Schließlich wurden die Dokumente gestohlen!

wm_objective_status 2 1 1
Wogegen ebenfalls bei Objectiv 2 die Allierten (1) durch das abliefern der geheimen Dokumente erfolgreich (1) waren.