This commit is contained in:
Nordi98 2025-07-20 22:10:36 +02:00
parent c6be40ffbd
commit 702bab121c
37 changed files with 2299 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)