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 function SpawnGuardNPC(npc) -- Ped Model laden RequestModel(npc.model) while not HasModelLoaded(npc.model) do Wait(1) print("Model is Loading...") end -- NPC erstellen npcHandle = CreatePed(4, npc.model, npc.spawn.x, npc.spawn.y, npc.spawn.x, npc.spawn.w, false, true) print("NPC Sollte stehen!") -- 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 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 local dist = #(playerCoords - vector3(v.NPC.spawn.x, v.NPC.spawn.y, v.NPC.spawn.z)) local spawnDistance = v.NPC.distance if dist < spawnDistance and not isNPCSpawned then SpawnGuardNPC(v.NPC) elseif dist > spawnDistance and isNPCSpawned then RemoveGuardNPC() end end Wait(1000) -- Überprüfung jede Sekunde end end)