PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erläuterung eines Luftunterstützungsscript


Brustwarze
08.02.2005, 09:38
Hi @ll, bin neu bei euch im Forum. Habe vor kurzem mit dem Editing bei Opf angefangen.
Aber nun zu meinem Problem:

Habe mir das folgende Script runter geladen, es fordert einen Heli an der dann bei der Position des Players angreift. Das Script funktioniert soweit so gut. Allerdings würde ich gerne ein eigenes erstellen. Habe aber Probleme mit einigen Zeilen im Script die ich noch nicht verstehe. Hoffe dass ihr mir da helfen könnt.

<----1,2,3,4 (Die Zeilen verstehe ich nicht)

Hier das Script:


; CallHeli für Multiplayer
; Start des Scriptes über einen Funkauslöser mit:
; [NameDesWestHelis, NameDesOstHelis] Exec "CallHeli.sqs"
; Wichtig! Dieses Script funktioniert nur für die Seiten "East" und West".


Player SideChat Format ["%1 an Helikopter. Erbitte umgehend Luftunterstützung!", Player]
~ 5
? (Side Player == West) : _Heli = _This Select 0 <----1
? (Side Player == East) : _Heli = _This Select 1 <----2
? (! (IsNull _Heli)) : Driver _Heli SideChat Format ["Verstanden, %1. Wir kommen.", Player] <----3 "? (!(isNull_Heli))" was wird damit bewirkt?
_HeliH = "HeliHEmpty" CreateVehicle GetPos _Heli; _HeliH SetPos GetPos _Heli <----4
_Heli Action ["Engin On"]
_Heli FlyInHeight 150
_Heli SetSpeedMode "Full"
_Heli SetCombatMode "Red"
_Heli SetBehaviour "Fight"
_Heli Move GetPos Player

@ ((_Heli Distance Player) < 800)
_Heli FlyInHeight 35
Player Reveal _Heli <----5
Driver _Heli SideChat Format ["%1, wir haben das Operationsgebiet erreicht.", Player]

@ (UnitReady _Heli)
_Heli SetSpeedMode "Normal"
~ (5 + Random 10)
Player Reveal _Heli <----5
_Heli Move GetPos Player

@ (UnitReady _Heli)
~ (5 + Random 10)
Player Reveal _Heli <----5
Driver _Heli SideChat Format ["%1, wir verschwinden wieder.", Player]
_Heli Move GetPos _HeliH
_Heli FlyInHeight 50

@ (_Heli Distance _HeliH < 800)
_Heli FlyInHeight 35

@ (UnitReady _Heli)
_Heli FlyInHeight 5
_Heli SetSpeedMode "Limited"
_Heli Move GetPos _HeliH

@ (UnitReady _Heli)
_Heli FlyInHeight 0
_Heli Land "Land"

@ ((GetPos _Heli Select 2) < 1)
~ 10
DeleteVehicle _HeliH
Exit


Übrigens: @ Khartak
Dein Mission Editing Guide (2.3) ist echt Hilfreich gewesen. Es ist super verständlich und sehr übersichtlich. :daumen:

TeRp
08.02.2005, 09:53
1. & 2.)

Hiermit wird aus dem Aufrufarray:
[NameDesWestHelis, NameDesOstHelis]der Wert 0 (also der erste Wert im Array -> "NameDesWestHelis") und der Wert 1 (also der zweite Wert im Array -> "NamedesOstHelis") genommen und der lokalen Variable
_heli zugeordnet. Dies ist jeweils abhängig von der Seite des Spielers: (?Side player) fragt diese ab.

3.)
(!(isNull _heli)) überprüft ob die Variable heli kein "NullObjekt" ist -> sprich: hier wird geprüft, ob es den Hubschrauber überhaupt gibt.

4.)
Hier wird ein unsichtbares H erstellt und unter den Helo gesetzt.

5.)
Hier wird der Helo "revealed", also mehr oder weniger wird der Helo enttarnt. Der Spieler kennt dann seine Position, seine Seitenzugehörigkeit und sieht in auf Radar/Karte.

Brustwarze
08.02.2005, 10:27
Das ging ja echt schnell, danke für die Hilfe. :daumen:

Mal gucken ob ich das nun hinkriege.
Eigentlich war alles ganz einleuchtend. :D