This commit is contained in:
Nordi98 2025-07-20 22:12:41 +02:00
parent 702bab121c
commit 9aa690dfc4
37 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,105 @@
local blips = {}

Core.Natives = {}

function Core.Natives.CreateBlip(coords, sprite, color, scale, label, shortRange)
local blip = AddBlipForCoord(coords.x, coords.y, coords.z)
SetBlipSprite(blip, sprite)
SetBlipColour(blip, color)
SetBlipScale(blip, scale)
SetBlipAsShortRange(blip, shortRange)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString(label)
EndTextCommandSetBlipName(blip)
blips[#blips + 1] = { id = blip, creator = GetInvokingResource() }
return blips[#blips].id
end

function Core.Natives.RemoveBlip(id)
for _, blip in pairs(blips) do
if blip.id == id then
RemoveBlip(id)
table.remove(blips, _)
return
end
end
end

function Core.Natives.SetGpsRoute(render, coords, color)
if not render then SetGpsMultiRouteRender(render) return end
ClearGpsMultiRoute()
StartGpsMultiRoute(color, true, true)
AddPointToGpsMultiRoute(coords.x, coords.y, coords.z)
SetGpsMultiRouteRender(render)
end

function Core.Natives.CreateProp(model, coords, heading, networked)
RequestModel(joaat(model))
while not HasModelLoaded(joaat(model)) do Wait(10) end
local prop = CreateObject(joaat(model), coords.x, coords.y, coords.z, networked, false, false)
SetEntityHeading(prop, heading)
SetModelAsNoLongerNeeded(model)
return prop
end

function Core.Natives.CreateNpc(model, coords, heading, networked)
RequestModel(model)
while not HasModelLoaded(model) do Wait(10) end
local npc = CreatePed(0, model, coords.x, coords.y, coords.z, heading, networked, false)
SetModelAsNoLongerNeeded(model)
return npc
end

function Core.Natives.CreateVeh(model, coords, heading, networked)
RequestModel(model)
while not HasModelLoaded(model) do Wait(10) end
local veh = CreateVehicle(model, coords.x, coords.y, coords.z, heading, networked, false)
SetModelAsNoLongerNeeded(model)
return veh
end

function Core.Natives.SetEntityProperties(entity, frozen, invincible, oblivious)
if not DoesEntityExist(entity) then return end
FreezeEntityPosition(entity, frozen)
SetEntityInvincible(entity, invincible)
SetBlockingOfNonTemporaryEvents(entity, oblivious)
end

function Core.Natives.PlayAnim(ped, dict, anim, duration, flag, playback)
RequestAnimDict(dict)
while not HasAnimDictLoaded(dict) do Wait(10) end
TaskPlayAnim(ped, dict, anim, 8.0, 8.0, duration, flag, playback, false, false, false)
RemoveAnimDict(dict)
end

function Core.Natives.PlayPtFx(coords, asset, effect, scale)
RequestNamedPtfxAsset(asset)
while not HasNamedPtfxAssetLoaded(asset) do Wait(10) end
UseParticleFxAsset(asset)
StartParticleFxNonLoopedAtCoord(effect, coords.x, coords.y, coords.z, 0, 0, 0, scale, false, false, false)
RemoveNamedPtfxAsset(asset)
end

function Core.Natives.PlayPtFxLooped(coords, asset, effect, scale, duration)
RequestNamedPtfxAsset(asset)
while not HasNamedPtfxAssetLoaded(asset) do Wait(0) end
UseParticleFxAsset(asset)
local ptFx = StartParticleFxLoopedAtCoord(effect, coords.x, coords.y, coords.z, 0, 0, 0, scale, false, false, false, false)
SetTimeout(duration, function()
StopParticleFxLooped(ptFx, false)
RemoveNamedPtfxAsset(asset)
end)
end

AddEventHandler('onResourceStop', function(resource)
local removed = 0
if resource ~= GetCurrentResourceName() then
for _, blip in pairs(blips) do
if blip.creator == resource then
RemoveBlip(blip.id)
removed = removed + 1
end
end
if removed > 0 then print('[DEBUG] - removed blips for ' .. resource) end
end
end)