HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   Variable übergeben und zurückholen (https://hx3.de/editing-scripting-187/variable-uebergeben-zurueckholen-23684/)

Nokman 17.04.2014 20:47

Variable übergeben und zurückholen
 
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
Code:

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

bau.sqf
Code:

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


Vienna 17.04.2014 21:30

handle = [_bauwerk] execVM "bau.sqf";
waitUntil {scriptDone handle};

Nokman 18.04.2014 09: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 11: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 15: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
Zitat:

Code:

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:
Code:

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:15 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119