| api.script: | Functions | Types | Modinfo | Source |
Данный модуль реализует интерфейс для скриптовых двигателей.
Модуль содержит в себе весь необходимый функционал для загрузки и обновления скриптов. Для загрузки скрипта служит команда LoadScript, функция ExecuteScript необходима для вызова функции скрипта.
| ArgumentFloat | Получить дробный аргумент. |
| ArgumentInt | Получить целочисленный аргумент. |
| ArgumentObject | Получить аморфный аргумент. |
| ArgumentString | Получить строковый аргумент. |
| ExecuteScript | Вызов функции из скрипта. |
| LoadScript | Загрузить скрипт. |
| RegisterFloat | Зарегестрировать дробное число. |
| RegisterFunction | Зарегестрировать функцию. |
| RegisterInt | Зарегестрировать целое число. |
| RegisterObject | Зарегестрировать обьект. |
| RegisterString | Зарегестрировать строку. |
| ReturnFloat | Зарегестрировать строку. |
| ReturnInt | Зарегестрировать строку. |
| ReturnObject | Вернуть обьект. |
| ReturnString | Зарегестрировать строку. |
| ScriptDriver | Получить текущий драйвер скрипта. |
| ScriptDrivers | Получить все доступные имена драйверов. |
| SetScriptDriver | Установить драйвер. |
| TScript | Обьект скрипта. |
| Function ArgumentFloat:Float(index:Int = 0) | |
| Description | Получить дробный аргумент. |
| Information | index - индекс аргумента. |
| Function ArgumentInt:Int(index:Int = 0) | |
| Description | Получить целочисленный аргумент. |
| Information | index - индекс аргумента. |
| Function ArgumentObject:Object(index:Int = 0) | |
| Description | Получить аморфный аргумент. |
| Information | index - индекс аргумента. |
| Function ArgumentString:String(index:Int = 0) | |
| Description | Получить строковый аргумент. |
| Information | index - индекс аргумента. |
| Function ExecuteScript:Object(script:TScript, func:String, args:Object[] = Null) | |
| Returns | Обьект, возвращаемый вызванной функцией из скрипта. |
| Description | Вызов функции из скрипта. |
| Information | script - Обьект скрипта для которой выполняется операция.
func - имя вызываемой функции в скрипте. args - аргументы вызываемой функции в скрипте. |
| Example | Import api.script
Type TR
Method Inv(txt:String)
Notify(txt)
End Method
End Type
Local t:TR = New TR
Local script:TScript = LoadScript("test.lua")
ExecuteScript(script, "Test4", [Object(t), Object("Hello from t:TR->Inv(txt:String) method!")])
t = Null
script = Null
End |
| Function LoadScript:TScript(url:Object) | |
| Returns | Обьект TScript. |
| Description | Загрузить скрипт. |
| Information | url может принимать типы String и TStream.
LUA VM feature : В исполнений LUA данная функция поддерживает загрузку 2-х типов скриптов - исходные и прекомпилированные. Функция поведет себя следующим образом : 1) если не указано расширение файла то функция в начале попытается загрузить исходный скрипт (*.lua) 2) Если исходный файл (*.lua) не обнаружен, функция попытается загрузить комилированный вариант скрипта (*.luac). |
| Example | Import api.script
Local script:TScript = LoadScript("test.lua")
ExecuteScript(script, "Test1")
script = Null
Notify "See debug..."
End |
| Function RegisterFloat(name:String, value:Float) | |
| Description | Зарегестрировать дробное число. |
| Information | name - имя по которому переменная задекларируется в скриптовом двигателе.
value - значение декларируемой переменной. |
| Example | SuperStrict
Import api.script
Global MY_VAR:Float = 123456.6
RegisterFloat("MY_VAR", MY_VAR)
Local script:TScript = LoadScript("test.lua")
Notify "MY_VAR = " + ExecuteScript(script, "Test3").ToString()
script = Null
End |
| Function RegisterFunction(name:String, func:Byte Ptr) | |
| Description | Зарегестрировать функцию. |
| Information | name - имя по которому функция задекларируется в скриптовом двигателе.
func - указатель на декларируемую функцию. |
| Example | SuperStrict
Import api.script
RegisterFunction("Notify", Lua_notify)
Local script:TScript = LoadScript("test.lua")
Notify(String(ExecuteScript(script, "Test2", ["Hello!"])))
script = Null
End
Function Lua_notify:Byte(state:Byte Ptr)
Notify(ArgumentString())
ReturnString(ArgumentString(1))
Return True
End Function |
| Function RegisterInt(name:String, value:Int) | |
| Description | Зарегестрировать целое число. |
| Information | name - имя по которому переменная задекларируется в скриптовом двигателе.
value - значение декларируемой переменной. |
| Example | Import api.script ' default LUA script driver
DebugLog ScriptDriver()
Global MY_VAR:Int = 123456
RegisterInt("MY_VAR", MY_VAR)
Local script:TScript = LoadScript("test.lua")
Notify "MY_VAR = " + ExecuteScript(script, "Test3").ToString()
script = Null
End |
| Function RegisterObject(name:String, value:Object) | |
| Description | Зарегестрировать обьект. |
| Information | name - имя по которому переменная задекларируется в скриптовом двигателе.
value - значение декларируемой переменной. |
| Example | Import api.script
Type TObject
Field name:String
Method Notify()
.Notify(name)
End Method
EndType
Local obj:TObject = New TObject
obj.name = "Hello from TObject!"
RegisterObject("myObject", obj)
Local script:TScript = LoadScript("test.lua")
ExecuteScript(script, "Test5")
script = Null
End |
| Function RegisterString(name:String, value:String) | |
| Description | Зарегестрировать строку. |
| Information | name - имя по которому переменная задекларируется в скриптовом двигателе.
value - значение декларируемой переменной. |
| Example | SuperStrict
Import api.script
Global MY_VAR:String = "ALBERT!"
RegisterString("MY_VAR", MY_VAR)
Local script:TScript = LoadScript("test.lua")
Notify "MY_VAR = " + ExecuteScript(script, "Test3").ToString()
script = Null
End |
| Function ReturnFloat(value:Float) | |
| Description | Зарегестрировать строку. |
| Information | value - значение переменной. |
| Function ReturnInt(value:Int) | |
| Description | Зарегестрировать строку. |
| Information | value - значение переменной. |
| Function ReturnObject(value:Object) | |
| Description | Вернуть обьект. |
| Information | value - значение переменной. |
| Function ReturnString(value:String) | |
| Description | Зарегестрировать строку. |
| Information | value - значение переменной. |
| Function ScriptDriver:String() | |
| Returns | Текущее имя драйвера в виде строки. |
| Description | Получить текущий драйвер скрипта. |
| Information | Используйте данную функцию что бы узнать имя установленного в систему драйвера.
Что бы узнать список доступных драйверов, используйте команду ScriptDrivers. Что бы установить драйвер в систему используйте команду SetScriptDriver. |
| Function ScriptDrivers:String[] () | |
| Returns | Массив строк имен доступных драйверов. |
| Description | Получить все доступные имена драйверов. |
| Information | Используйте данную функцию что бы узнать список доступных драйверов.
Что бы узнать текущий установленный в систему драйвер используйте команду ScriptDriver. Что бы установить драйвер в систему используйте команду SetScriptDriver. |
| Function SetScriptDriver:Byte(name:String) | |
| Returns | Успешность установки драйвера. |
| Description | Установить драйвер. |
| Information | name - имя драйвера для установки в систему.
Используйте данную функцию что бы установить драйвер в систему. Что бы узнать текущий установленный в систему драйвер используйте команду ScriptDriver. Что бы узнать список доступных драйверов, используйте команду ScriptDrivers. |
| Type TScript Abstract | |
| Description | Обьект скрипта. |
| Methods Summary | |
|---|---|
| Execute | Вызов функции из скрипта. |
| Method Execute:Object(func:String, args:Object[] = Null) Abstract | |
| Returns | Обьект, возвращаемый вызванной функцией из скрипта. |
| Description | Вызов функции из скрипта. |
| Information | func - имя вызываемой функции в скрипте.
args - аргументы вызываемой функции в скрипте. |
| Версия | 1.45 |
|---|---|
| Автор | Al'bert Gaskarov & Mark Sibly |
| Лицензия | LGPL |
| Правообладатель | Dynamic bytes |
| Сервер | API |
| История | 1.45 |
| История | Официальный драйвер скриптов - LUA VM устанавливается автоматически при импорте данного модуля. |
| История | Доработка MAXLUA. 1) Возможность загружать прекомпилированные скрипты. 2) Компилятор в поставке с модулем. |
| История | Модуль BRL.MaxLua - перенесен с доработками в модуль API.ScriptLua |
| История | 1.41 |
| История | Некоторые изменения и доработки. |
| История | 1.4 |
| История | Добавлено RegisterObject() |
| История | Добавлено ReturnObject() |
| История | Добавлено ArgumentObject() |
| История | 1.3 |
| История | Добавлено Return(int/float/string) |
| История | Добавлено Argument(int/float/string) |
| История | 1.2 |
| История | Фиксирован баг обращения к несуществующему драйверу при завершении программы. |
| История | 1.1 |
| История | Внесены изменения в драйвер. |
| История | Дописан хэлп. |
| История | 1.0 |
| История | Пробный выпуск |