PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Allgemeine Verständnisfragen zum Scripting


Duke49th
20.03.2014, 14:19
Moin. Zum Glück doch noch bissle Zeit zum basteln heute^^

Ich würde gerne mal paar Sachen wissen.

Z.B.

_man = _this select 1;
_id = _this select 2;

_man removeAction asf1;
_man removeAction asf2;
_man removeAction asf5;

ASHEL = ASHEL + 1;

if (ASHEL == ASnumHEL) then {
as0 = _man addAction [localize "STR_MENUASM","airSup\addMenu.sqf",[], 5, false, false, "", "_target == player"];
_man groupChat localize "STR_NOMORE";
kill5 = true;
};
if(kill5)exitwith{helo = false;};


Hier ist ein Script von jemandem.

Man sieht das er Variablen in einem seiner Scripte, in ein anderes übernimmt.

Z.B. "kill5" - hat er in einem anderen Script definiert und dann in diesem verwendet. Selbiges mit "_man" usw. usf.

Funzt das immer und automatisch oder wie schaffe ich mir die Möglichkeit?

Ich habe zwei Scripte. Waffencheck.sqf und attackhelo.sqf. Im ersten(waffencheck.sqf) starte ich das zweite script per:
player addEventHandler["fired", {if (_this call Waffencheck) then {execVM "attackhelo.sqf"}}];

Kann ich jetzt im Script "attackhelo.sqf" einfach eine Variable nehmen die im ersten Script definiert sind?

Oder wie muss ich mir das vorstellen?

Geht das nur in eine Richtung oder in beide Richtungen? Muss das zweite Script dafür erstmal gestartet sein oder macht der das intern automatisch, wenn das erste Script gestartet ist?

Ich weiss es gibt da den Befehl "private". Mit diesem sorgt man wohl dafür das die entsprechende Variable nur in diesem einen Script benutzt werden kann. Oder liege ich da falsch?

Dann müsste es doch laut meiner Laien-Logik bedeuten das er nicht auf private gestzte Variablen automatsich global bereit hält. Richtig?


Hab ich schon erwähnt das ich Kopfschmerzen bekomme, wenn ich versuche zu scripten? :zahn:

Vienna
20.03.2014, 15:23
_man ist eine lokale Variable, welche ihren Wert aus den Parametern übernimmt welche dem Skript übergeben werden.

kill5 ist eine globale Variable, welche in allen Skripten sichtbar ist, ohne dass ihr Wert explizit übergeben wird.

Mit publicVariable "kill5"; wird diese Variable auch an die anderen PCs im Netz übergeben (diese Übergabe muss bei jeder Wertänderung geschehen!).

Das hier lesen!!

http://hx3.de/editing-scripting-167/missionserstellung-tipps-tricks-22044/
http://hx3.de/editing-scripting-167/sqf-handbuch-22579/

Duke49th
20.03.2014, 15:32
Ja sehr geil. Kannte ich ja noch garnicht. Endlich mal was auf Deutsch :)

Danke Dir!:daumen: