exports('GetFinanceOrganizationObject', function() return FinanceOrganization end) AddEventHandler('onClientResourceStop', function(res) if (GetCurrentResourceName() ~= res) then return end FinanceOrganization.Office.Clear() end) FinanceOrganization = { Name = { Colors = {black = 0, gray = 1, yellow = 2, blue = 3, orange = 5, red = 6, green = 7}, Fonts = {font1 = 0, font2 = 1, font3 = 2, font4 = 3, font5 = 4, font6 = 5, font7 = 6, font8 = 7, font9 = 8, font10 = 9, font11 = 10, font12 = 11, font13 = 12}, Style = {normal = 3, light = 1}, name = "", style = 0, color = 0, font = 0, Set = function(name, style, color, font) FinanceOrganization.Name.name = name FinanceOrganization.Name.style = style FinanceOrganization.Name.color = color FinanceOrganization.Name.font = font FinanceOrganization.Office.stage = 0 end }, Office = { needToLoad = false, loaded = false, target = "prop_ex_office_text", prop = "ex_prop_ex_office_text", renderId = -1, movieId = -1, stage = 0, Init = function() DrawEmptyRect(FinanceOrganization.Office.target, FinanceOrganization.Office.prop) end, Enable = function(state) FinanceOrganization.Office.needToLoad = state end, Clear = function() if IsNamedRendertargetRegistered(FinanceOrganization.Office.target) then ReleaseNamedRendertarget(GetHashKey(FinanceOrganization.Office.target)) end if (HasNamedScaleformMovieLoaded(FinanceOrganization.Office.movieId)) then SetScaleformMovieAsNoLongerNeeded(FinanceOrganization.Office.movieId) end FinanceOrganization.Office.renderId = -1 FinanceOrganization.Office.movieId = -1 FinanceOrganization.Office.stage = 0 end } } Citizen.CreateThread(function() FinanceOrganization.Office.Init() while true do if FinanceOrganization.Office.needToLoad then -- Need to load if (Global.FinanceOffices.isInsideOffice1 or Global.FinanceOffices.isInsideOffice2 or Global.FinanceOffices.isInsideOffice3 or Global.FinanceOffices.isInsideOffice4) then DrawOrganizationName(FinanceOrganization.Name.name, FinanceOrganization.Name.style, FinanceOrganization.Name.color, FinanceOrganization.Name.font) FinanceOrganization.Office.loaded = true Wait(0) -- We need to call all this every frame else Wait(1000) -- We are not inside an office end elseif FinanceOrganization.Office.loaded then -- Loaded and need to unload FinanceOrganization.Office.Clear() FinanceOrganization.Office.loaded = false Wait(1000) -- We can wait longer when we don't need to display text else -- Not needed to load Wait(1000) -- We can wait longer when we don't need to display text end end end) function DrawOrganizationName(name, style, color, font) if FinanceOrganization.Office.stage == 0 then if (FinanceOrganization.Office.renderId == -1) then FinanceOrganization.Office.renderId = CreateNamedRenderTargetForModel(FinanceOrganization.Office.target, FinanceOrganization.Office.prop) end if (FinanceOrganization.Office.movieId == -1) then FinanceOrganization.Office.movieId = RequestScaleformMovie("ORGANISATION_NAME") end FinanceOrganization.Office.stage = 1 elseif FinanceOrganization.Office.stage == 1 then if (HasScaleformMovieLoaded(FinanceOrganization.Office.movieId)) then local parameters = { p0 = {type = "string", value = name}, p1 = {type = "int", value = style}, p2 = {type = "int", value = color}, p3 = {type = "int", value = font} } SetupScaleform(FinanceOrganization.Office.movieId, "SET_ORGANISATION_NAME", parameters) FinanceOrganization.Office.stage = 2 else FinanceOrganization.Office.movieId = RequestScaleformMovie("ORGANISATION_NAME") end elseif FinanceOrganization.Office.stage == 2 then SetTextRenderId(FinanceOrganization.Office.renderId) SetUiLayer(4) N_0xc6372ecd45d73bcd(true) ScreenDrawPositionBegin(73, 73) DrawScaleformMovie(FinanceOrganization.Office.movieId, 0.196, 0.245, 0.46, 0.66, 255, 255, 255, 255, 0) SetTextRenderId(GetDefaultScriptRendertargetRenderId()) ScreenDrawPositionEnd() end end