PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variable übergeben und zurückholen


Nokman
17.04.2014, 21:47
Guten Abend,

ich habe eine objekt.sqf in der sich der Spieler sein Objekt aussucht um dann es zu erstellen.

Zum erstellen greife ich auf den Script bau.sqf zu. Das _bauwerk übergebe ich (greife ich mit select ab) und erstelle es. Nun wartet er ja in der Objekt.sqf bis der Bauscript durch ist.

Nun kommt die Fehlermeldung das die Variable Bauobjekt nicht vergeben ist.

Nun die Frage kann ich es so nicht Übergeben oder muss ich in der Bau.sqf eine angabe machen?

objekt.sqf
_handle = [_bauwerk] spawn bau.sqf;
waitUntil {scriptDone _handle};
clearWeaponCargoGlobal bauobjekt;
clearMagazineCargoGlobal bauobjekt;
clearItemCargoGlobal bauobjekt;
clearBackpackCargoGlobal bauobjekt;

bau.sqf
bauobjekt = createVehicle [_bauwerk,_u2, [], 0, "CAN_COLLIDE"]; //Globales Objekt wird erstellt
bauobjekt setPosASL _u2;

Vienna
17.04.2014, 22:30
handle = [_bauwerk] execVM "bau.sqf";
waitUntil {scriptDone handle};

Nokman
18.04.2014, 10:12
Kurz für mich als erklärung weil er sonst die Daten ignoriert welche aus denn Anderen Script generiert werden? da diese script local sind?

Vienna
18.04.2014, 12:46
Du solltest dir immer die Beschreibung der Befehle ausführlich ansehen!

Du hast bereits spawn falsch verwendet. Ob scriptDone auch mit einer lokalen Variablen funktioniert musst du testen.

https://community.bistudio.com/wiki/spawn
https://community.bistudio.com/wiki/scriptDone


Hast du die Anzeige von Skriptfehlern beim Aufruf von Arma nicht aktiviert?

".....\xxx.exe" -showscripterrors

Wenn du das Spiel so aufrufst, werden dir viele Codefehler sofort angezeigt.

Nokman
18.04.2014, 16:48
Danke die Meldung hate ich noch nicht angezeigt bekommen bei fehlern.
Das Problem was ich ber trotzdem habe ist das er keine Variable die ich ohne _ in denn anderen Script erstelle zb ende setze ich auf False wenn die Variante abbrechen gewählt wird lasse ich sie auf true setzen und habe in denn objekt script ein
handle = [_bauwerk] execVM bau.sqf;
waitUntil {scriptDone handle};
if (ende) exitwith {};
Error Nicht definierte Variable in Ausdruck: ende
File mpmissions\__CUR_MP.Altis\objekt.sqf, line 42
Error in expression <e handle};
if (ende) exitwith {};

Der bau script läuft nur liest ein Laufender script anscheinend keine Neuerstelten Variablen ein.

Werend des Schreibens habe ich die Lösung gefunden:
waitUntil {scriptDone handle};
sleep 1;
if (ende) exitwith {};

er braucht ein sleep sonst geht es denn ganzen wohl zuschnell

PS: es geht auch bei scriptdone auch mit einer Localen Variable _handle ist auch im wiki geschrieben ganz unten.