api.script: Functions Types Modinfo Source  

Интерфейс для скриптовых двигателей.LUA - оффициальный скриптдрайвер.

logo.gif
amazon.gif

Данный модуль реализует интерфейс для скриптовых двигателей.

Модуль содержит в себе весь необходимый функционал для загрузки и обновления скриптов. Для загрузки скрипта служит команда LoadScript, функция ExecuteScript необходима для вызова функции скрипта.

Functions Summary

ArgumentFloat Получить дробный аргумент.
ArgumentInt Получить целочисленный аргумент.
ArgumentObject Получить аморфный аргумент.
ArgumentString Получить строковый аргумент.
ExecuteScript Вызов функции из скрипта.
LoadScript Загрузить скрипт.
RegisterFloat Зарегестрировать дробное число.
RegisterFunction Зарегестрировать функцию.
RegisterInt Зарегестрировать целое число.
RegisterObject Зарегестрировать обьект.
RegisterString Зарегестрировать строку.
ReturnFloat Зарегестрировать строку.
ReturnInt Зарегестрировать строку.
ReturnObject Вернуть обьект.
ReturnString Зарегестрировать строку.
ScriptDriver Получить текущий драйвер скрипта.
ScriptDrivers Получить все доступные имена драйверов.
SetScriptDriver Установить драйвер.

Types Summary

TScript Обьект скрипта.

Functions

Function ArgumentFloat:Float(index:Int = 0)
DescriptionПолучить дробный аргумент.
Informationindex - индекс аргумента.

Function ArgumentInt:Int(index:Int = 0)
DescriptionПолучить целочисленный аргумент.
Informationindex - индекс аргумента.

Function ArgumentObject:Object(index:Int = 0)
DescriptionПолучить аморфный аргумент.
Informationindex - индекс аргумента.

Function ArgumentString:String(index:Int = 0)
DescriptionПолучить строковый аргумент.
Informationindex - индекс аргумента.

Function ExecuteScript:Object(script:TScript, func:String, args:Object[] = Null)
ReturnsОбьект, возвращаемый вызванной функцией из скрипта.
DescriptionВызов функции из скрипта.
Informationscript - Обьект скрипта для которой выполняется операция.

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Загрузить скрипт.
Informationurl может принимать типы 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Зарегестрировать дробное число.
Informationname - имя по которому переменная задекларируется в скриптовом двигателе.

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Зарегестрировать функцию.
Informationname - имя по которому функция задекларируется в скриптовом двигателе.

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Зарегестрировать целое число.
Informationname - имя по которому переменная задекларируется в скриптовом двигателе.

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Зарегестрировать обьект.
Informationname - имя по которому переменная задекларируется в скриптовом двигателе.

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Зарегестрировать строку.
Informationname - имя по которому переменная задекларируется в скриптовом двигателе.

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Зарегестрировать строку.
Informationvalue - значение переменной.

Function ReturnInt(value:Int)
DescriptionЗарегестрировать строку.
Informationvalue - значение переменной.

Function ReturnObject(value:Object)
DescriptionВернуть обьект.
Informationvalue - значение переменной.

Function ReturnString(value:String)
DescriptionЗарегестрировать строку.
Informationvalue - значение переменной.

Function ScriptDriver:String()
ReturnsТекущее имя драйвера в виде строки.
DescriptionПолучить текущий драйвер скрипта.
InformationИспользуйте данную функцию что бы узнать имя установленного в систему драйвера.

Что бы узнать список доступных драйверов, используйте команду ScriptDrivers. Что бы установить драйвер в систему используйте команду SetScriptDriver.


Function ScriptDrivers:String[] ()
ReturnsМассив строк имен доступных драйверов.
DescriptionПолучить все доступные имена драйверов.
InformationИспользуйте данную функцию что бы узнать список доступных драйверов.

Что бы узнать текущий установленный в систему драйвер используйте команду ScriptDriver. Что бы установить драйвер в систему используйте команду SetScriptDriver.


Function SetScriptDriver:Byte(name:String)
ReturnsУспешность установки драйвера.
DescriptionУстановить драйвер.
Informationname - имя драйвера для установки в систему.

Используйте данную функцию что бы установить драйвер в систему.

Что бы узнать текущий установленный в систему драйвер используйте команду ScriptDriver. Что бы узнать список доступных драйверов, используйте команду ScriptDrivers.


Types

Type TScript Abstract
DescriptionОбьект скрипта.
Methods Summary
Execute Вызов функции из скрипта.
Method Execute:Object(func:String, args:Object[] = Null) Abstract
ReturnsОбьект, возвращаемый вызванной функцией из скрипта.
DescriptionВызов функции из скрипта.
Informationfunc - имя вызываемой функции в скрипте.

args - аргументы вызываемой функции в скрипте.


Module Information

Версия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
ИсторияПробный выпуск