Kommunikation der Skriptumgebungen
Anders als in DEdK, wo es ein Skript für alles gibt, sind die Skriptumgebungen von AeK in 3 Teile aufgeteilt. Da wäre zum einen die globale Skriptumgebung und zum anderen die lokale Skriptumgebung. Die Questbibliothek ordnet sich als drittes Skript in die globale Umgebung ein.

Global zu Lokal

Damit die globale Umgebung mit der lokalen kommunizieren kann, gibt es die Funktion Logic.ExecuteInLuaLocalState mit der du Befehle in einem String an das lokale Skript senden kannst. Hier einige Beispiele:

Logic.ExecuteInLuaLocalState("XGUIEng.ShowAllSubWidgets('/InGame/Root/Normal',0)")

Hier wird eine einzelne Zeile abgeschickt.

Da dies aber unübersichtlich ist, kannst du auch gesamte Codeabschnitte einklammern:

Logic.ExecuteInLuaLocalState([[
    Sound.PlayVoice("ImportantStuff","music/s6_49_mood_heroic.mp3")
    Sound.SetSpeechVolume(70)
    Sound.SetFXAtmoVolume(0)
    Sound.SetMusicVolume(0)
]])

Wenn du Befehle, die es nur in der lokalen Umgebung gibt in der globalen aufrufen willst, brauchst du diese Funktion.

Lokal zu Global

Ähnliches gilt für die Kommunikation zwischen lokaler Umgebung und der globalen.

Der Befehlt dazu heißt GUI.SendScriptCommand und wird genauso verwendet wie Logic.ExecuteInLuaLocalState.

Zurück zu Grundlagen und Werkzeuge | Drucken | Tags
Sofern nicht anders angegeben, steht der Inhalt dieser Seite unter Lizenz Creative Commons Attribution-ShareAlike 3.0 License