07.03.2015, 01:21 | #1 (permalink) |
Registriert seit: 17.06.2014
Beiträge: 10
|
setVariable & getVariable
Ich hab mir mehrmals setVariable und getVariable angeschaut und frage mich immer noch:
Wann findet setVariable und getVariable genau Verwendung. Ich komm schon dahinter .... (lange Leitung im diesen Fall) Man hinterlegt etwas an einem Objekt oder einer Gruppe oder ... , aber in der Praxis sieht das jetzt wie aus? Es gibt doch schon Variablen. Warum zum Beispiel an einem Objekt das festmachen. Mir fehlt da, glaube ich, eine wichtige Info - beziehungsweise ist mir eine Problematik nicht ganz klar. Ein einfaches Beispiel wäre super. |
07.03.2015, 11:36 | #2 (permalink) |
Registriert seit: 02.07.2006
Ort: Kabul
Alter: 39
Beiträge: 2.666
|
Das hat einfach etwas mit dem Speicherort der Variable zu tun.
Wenn Du einer Variable einen Wert zuweist, dann wird dieser Wert einer Variable im missionNameSpace zugewiesen. Beispiel 1: Code:
myVar = 123; Code:
missionNamespace setVariable ["myVar", 123]; Code:
myVar = "hoschi"; publicVariable "myVar"; Code:
missionNamespace setVariable ["myVar", "hoschi", true]; Jetzt besteht aber noch die Moeglichkeit, Variablen auch an anderen Orten und Namensraeumen zu hinterlegen. Auszug aus dem Wiki: All available data type combinations:
Nehmen wir jetzt als Beispiel ein Objekt. Ich platziere eine Auto mit dem Namen "car1" im editor und moechte in diesem Objekt einer Variable einen Wert zuweisen. Code:
car1 setVariable ["varStoredInCar1", 123]; Code:
hint format ["%1",varStoredInCar1]; // liefert nil zurueck Code:
hint format ["%1", car1 getVariable "varStoredInCar1" ]; // liefert 123 zurueck Ein gutes Beispiel hierfuer ist der ProfileNameSpace. Daten die im ProfileNameSpace gespeichert werden gehen nicht verloren, da diese in der \Eigene Dateien\Arma 3\name.vars gespeichert werden. Hier hast Du also die Moeglichkeit, Dir Werte an einem Ort zu hinterlegen, der beim beenden der Mission nicht verloren geht. Hier wird jetzt also die Variable permanentVariable mit dem Wert 123 in dem profileNameSpace gespeichert: Code:
profileNameSpace setVariable ["permanenteVariable", 123]; Du kannst als eine neue Mission starten und die Variable im profileNameSpace wieder abfragen Code:
hint format ["%1", profileNameSpace getVariable "permanenteVariable" ]; // liefert 123 zurueck https://community.bistudio.com/wiki/setVariable https://community.bistudio.com/wiki/getVariable gruß hoschi Geändert von Moerderhoschi (07.03.2015 um 11:39 Uhr). |
07.03.2015, 13:14 | #3 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.110
|
Super geil erklärt!
__________________
Bewegende Momente bei ArmA 3 |
09.03.2015, 10:20 | #4 (permalink) |
Registriert seit: 17.06.2014
Beiträge: 10
|
Cool, Danke. Und die Lektüre: macht jetzt alles einen Sinn. Ich denke manchmal zu kompliziert und ich sollte genauer lesen.
Übrigens von den ganzen Foren, Themen unabhängig vom Handwerker bis zur IT, finde ich dieses am Besten, weil viele leider zu oft schreiben: Ich habe so viele Fragen beantwortet und so viele Jahren geschrieben und du hast erst 5 Fragen beantwortet, also habe ich Recht und du nicht. Blöderweise kommentieren dann alle "Erfahrenen Leute" das positiv. Kein Widerspruch. "Ich rede und sabbel so viel, deswegen bin ich so schlau", sagt ja so auch keiner in der Realität. So entsteht zu viel Müll, meine ich. Hier dagegen sucht man das Argument, ist keins, vergeblich. Zum Glück. Hut ab vor den Leuten, die trotz entsprechenden Wissen und Erfahrungen auf den Teppich bleiben. Danke!!! |
13.03.2015, 22:42 | #5 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.110
|
Mal ne Frage, das hinterlegen funktioniert das nur bei der selben Mission oder kann man die auch in einer anderen Mission verwenden?
z.B. baue ich bei A3 gerade mehrere Teile. Könnte ich da rein theoretisch, Ausrüstung übergeben?
__________________
Bewegende Momente bei ArmA 3 Geändert von Drunken Officer (13.03.2015 um 22:44 Uhr). |
26.05.2015, 17:29 | #7 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.110
|
Auch wenn der Thread schon 2 Monate alt ist, mal was zum Verständis
Das hatte ich mich auch gefragt, bis ich selber darüber gestolpert bin. Warum eine Variable in einem Objekt speichern? Ich hatte das Problem, dass aus irgendwelchen Gründen beim Verbinden nicht immer der mit dem höchsten Rang auch gruppenführer ist. (Die Figuren traten erst nach dem Start einer Gruppe bei). Was brauchte man, eine Variable. Und da, sieht an, diese darf nicht im missionnamespace gespeichert werden, da die sonst jedesmal überschrieben wird. Also die selbe Variable mit unterschiedlichen Werten ans Objekt geheftet. A1 setVariable ["DOF_RANK", 3, true]; A2 setVariable ["DOF_RANK", 1, true]; A3 setVariable ["DOF_RANK", 7, true]; A4 setVariable ["DOF_RANK", 9, true]; A5 setVariable ["DOF_RANK", 2, true]; Jetzt gibt es die selbe Variable mit unterschiedlichen Werten. Und diese Werte können dann als Vergleichswerte herangezogen werden. z.B. Wer als erstes durch einen Sniper erschossen werden soll. Oder wer Führer einer Gruppe wird etc pp...
__________________
Bewegende Momente bei ArmA 3 |
Stichworte |
getvariable, setvariable, verwendung |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
[How To]Ampel | Nokman | Rollenspiel & Zombie Ecke | 1 | 04.10.2014 09:31 |
Markerreihenfolge ändern?? | Drunken Judge | Editing & Scripting | 2 | 31.07.2014 22:26 |
Objekte unzerstörba machen | MBMC | Editing & Scripting | 8 | 25.04.2013 19:28 |
WarefareBE 2.069 (Probleme) | Jackrkc | Usermade Missions | 6 | 22.07.2011 14:01 |
Weapon Save Config | Arni83 | Editing & Scripting | 8 | 18.02.2011 19:35 |