"Global" vor einer Variable funktioniert nicht.
global var_name = "test"Und ausgelagerte Funktionen kriege ich nicht hin, aus einem einfachen Grund:Du kannst dein aktuelles Feld als Attribut in den Runden klammern für die aufgerufene Aktion übergeben.
während ich mich im Editor nicht um die Variablen, die in einer Aktion liegen, kümmern muss (ich muss sie nur sorgfältig individuell durchzählen), rufe ich bei jedem Mausklick dasselbe Script auf. Um herauszubekommen, welches Feld gerade angeklickt wurde und für welches Feld die Berechnung gerade stattfinden soll, habe ich die gesamte Berechnung in einer for-Schleife liegen. Mein aktuelles Feld ist also immer ein anderes.
Da der Schleifen-Index i aber laut Wiki nur innerhalb der for-Schleife gültig ist, kann ich vorerst keine Aktionen auslagern, sondern muss sie komplett in diesem einen Script erledigen.korrekt. das i (oder welchen buchstaben oder wort du dort nutzt), welches zum Durchzählen gebrauht wird ist dann nur in der Schleife gültig, weil es dort definiert wurde.
Das Hauptproblem scheint nun die Gültigkeit der Variablen zu sein. Es passiert immer etwas, aber nie das, was ich erwartet habe... Im Grunde weiß ich nicht, was WIRKLICH beim Klicken geschieht...Seit kurzem kann man nun eine draw funktion verwenden, um Texte darzustellen. Habe aber da selbst noch nicht herausgefunden, wie man das Schritt für Schritt umsetzt. Entweder du lässt per print() im Log etwas ausgeben oder du speicherst lua-werte in einem ValueString eines VS-Wertes und lässt diesen anzeigen.
Jedenfalls bin ich noch nicht soweit, zu testen, wann welche Variablen gerade gültig sind und welchen Wert sie gerade haben (deswegen funktioniert die Lua-Variante noch nicht). Man kann sicher Variablen setzen, die in anderen Funktionen gültig sind, aber zur Zeit habe ich nicht mal den Überblick über mein einzelnes Script.
Welche Funktion gibt es, um aus dem Lua-Script einen Hintergrundtext ausgeben zu lassen? Dann kann ich schnell Werte im Spiel anzeigen lassen. Momentan kann ich zwar per "print" alle Werte anzeigen lassen, aber eben nur in der Kommandozeile, was ziemlich umständlich ist.
Bei mir gibt es eine Fehlermeldung (die Zeile wird nicht abgearbeitet) und das Wort "global" ist im Editor auch nicht blau gekennzeichnet. Aber das mit dem Definitionsscript habe ich tatsächlich glatt übersehen - bei mir ist immer alles in Ausführungsscripts.global var_name = "test"sollte über all wo "var_name" abgefragt wird "test" zurückgeben.Sollte außerhalb von Funktionen in einem Definition Script stehen.
Du kannst aber andere Variablen von außen in der for schleife benutzen oder andere Werte innerhalb der for Schleife nach draußen "speichern". Was hindert dich eine andere Variable außerhalb zu definieren und in der vorschleife zu bearbeiten?Stimmt natürlich, aber der Nutzen von Lua geht doch flöten, weil ich ja immer mit "Feld"..i.. arbeite. Ich könnte für jedes Feld eine Variable anlegen und die "nach draußen" weitergeben, aber dann habe ich ja wieder 25 verschiedene Variablen. Ich hatte gehofft, dass z.B. die drei Austauschwerte global sein würden, damit ich bei jedem Aufruf des Scripts die zuletzt angelegten Größen in den Variablen habe. Zur Zeit geht das noch nicht; offenbar sind andere Werte drin als ich vermute.
Liegt aber wahrscheinlich auch daran, dass Lua und wie es gemeinsam mit VS genutzt wird noch nicht 100% innig hast ^__^
Und dass ich Lua und Visionaire noch nicht zusammenbringe, stimmt auch. Das hatte ich die ja ganze Zeit geschrieben. 



Ist doch schon mal was.Und wie man welche Werte von einer Funktion zur anderen bekommt, habe ich noch längst nicht drauf, denn wie soll ich eine Variable z.B. global in einem Definitionsscript definieren, die erst beim Mausklick überhaupt einen Wert bekommt..?Definitionssktipte werden beim Start des Spiels ausgeführt und daher auch dessen globale Variablen angelegt (und lokale im Rahmen der im Skript aufgeführten Funktionen).