2026-04-14 17:41:39 +02:00

114 lines
3.1 KiB
Lua

Scaleforms = {}
function Scaleforms.LoadMovie(movieName)
local handle = RequestScaleformMovie(movieName)
while not HasScaleformMovieLoaded(handle) do
Wait(0)
end
return handle
end
function Scaleforms.LoadInteractive(movieName)
local handle = RequestScaleformMovieInteractive(movieName)
while not HasScaleformMovieLoaded(handle) do
Wait(0)
end
return handle
end
function Scaleforms.UnloadMovie(handle)
SetScaleformMovieAsNoLongerNeeded(handle)
end
function Scaleforms.LoadAdditionalText(textName, slotCount)
for slot = 0, slotCount, 1 do
if not HasThisAdditionalTextLoaded(textName, slot) then
ClearAdditionalText(slot, true)
RequestAdditionalText(textName, slot)
while not HasThisAdditionalTextLoaded(textName, slot) do
Wait(0)
end
end
end
end
function Scaleforms.SetLabels(handle, labels)
PushScaleformMovieFunction(handle, "SET_LABELS")
for i = 1, #labels do
BeginTextCommandScaleformString(labels[i])
EndTextCommandScaleformString()
end
PopScaleformMovieFunctionVoid()
end
function Scaleforms.PopMulti(handle, funcName, ...)
PushScaleformMovieFunction(handle, funcName)
local args = { ... }
for _, value in pairs(args) do
local valueType = Scaleforms.TrueType(value)
if valueType == "string" then
_ENV["PushScaleformMovieFunctionParameterString"](value)
elseif valueType == "boolean" then
PushScaleformMovieFunctionParameterBool(value)
elseif valueType == "int" then
PushScaleformMovieFunctionParameterInt(value)
elseif valueType == "float" then
PushScaleformMovieFunctionParameterFloat(value)
end
end
PopScaleformMovieFunctionVoid()
end
function Scaleforms.PopFloat(handle, funcName, value)
PushScaleformMovieFunction(handle, funcName)
PushScaleformMovieFunctionParameterFloat(value)
PopScaleformMovieFunctionVoid()
end
function Scaleforms.PopInt(handle, funcName, value)
PushScaleformMovieFunction(handle, funcName)
PushScaleformMovieFunctionParameterInt(value)
PopScaleformMovieFunctionVoid()
end
function Scaleforms.PopBool(handle, funcName, value)
PushScaleformMovieFunction(handle, funcName)
PushScaleformMovieFunctionParameterBool(value)
PopScaleformMovieFunctionVoid()
end
function Scaleforms.PopRet(handle, funcName)
PushScaleformMovieFunction(handle, funcName)
return PopScaleformMovieFunction()
end
function Scaleforms.PopVoid(handle, funcName)
PushScaleformMovieFunction(handle, funcName)
PopScaleformMovieFunctionVoid()
end
function Scaleforms.RetBool(handle)
return GetScaleformMovieFunctionReturnBool(handle)
end
function Scaleforms.RetInt(handle)
return GetScaleformMovieFunctionReturnInt(handle)
end
function Scaleforms.TrueType(value)
local valueType = type(value)
if valueType ~= "number" then
return valueType
end
local str = tostring(value)
if string.find(str, ".") then
return "float"
else
return "int"
end
end
exports("Scaleforms", function()
return Scaleforms
end)