Main/resources/[carscripts]/mh_garage/client/main.lua

67 lines
1.9 KiB
Lua
Raw Normal View History

2025-06-08 12:19:35 +02:00
QBCore = exports['qb-core']:GetCoreObject()
Player = nil
local npcHandle = nil
local isNPCSpawned = false
Citizen.CreateThread(function()
while Player == nil do
Player = exports['qb-core']:GetPlayerData()
Wait(0)
end
end)
-- Funktion zum Spawnen des NPCs
local function SpawnGuardNPC(npc)
-- Ped Model laden
RequestModel(npc.model)
while not HasModelLoaded(npc.model) do
Wait(1)
end
-- NPC erstellen
2025-06-08 12:30:15 +02:00
npcHandle = CreatePed(4, npc.model, npc.spawn.x, npc.spawn.y, npc.spawn.x, npc.spawn.w false, true)
2025-06-08 12:19:35 +02:00
-- NPC Eigenschaften setzen
SetEntityAsMissionEntity(npcHandle, true, true)
SetBlockingOfNonTemporaryEvents(npcHandle, true)
SetPedDiesWhenInjured(npcHandle, false)
SetPedCanPlayAmbientAnims(npcHandle, true)
SetPedCanRagdollFromPlayerImpact(npcHandle, false)
SetEntityInvincible(npcHandle, true)
FreezeEntityPosition(npcHandle, true)
-- Optional: Animation für den NPC
TaskStartScenarioInPlace(npcHandle, "WORLD_HUMAN_GUARD_STAND", 0, true)
isNPCSpawned = true
end
-- Funktion zum Entfernen des NPCs
local function RemoveGuardNPC()
if DoesEntityExist(npcHandle) then
DeleteEntity(npcHandle)
isNPCSpawned = false
end
end
-- Hauptthread zum Überprüfen der Spieler-Position
CreateThread(function()
while true do
local playerPed = PlayerPedId()
local playerCoords = GetEntityCoords(playerPed)
for k, v in pairs(Config.Zonen) do
2025-06-08 12:30:15 +02:00
local dist = #(playerCoords - vector3(v.NPC.spawn.x, v.NPC.spawn.y, v.NPC.spawn.z))
2025-06-08 12:19:35 +02:00
local spawnDistance = v.NPC.distance
if dist < spawnDistance and not isNPCSpawned then
SpawnGuardNPC()
elseif dist > spawnDistance and isNPCSpawned then
RemoveGuardNPC()
end
end
Wait(1000) -- Überprüfung jede Sekunde
end
end)