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)