Files
wnsrc/gamemodes/ixhl2rp/plugins/npcspawner/sv_hooks.lua
lifestorm ba1fc01b16 Upload
2024-08-04 23:12:27 +03:00

56 lines
1.2 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
function PLUGIN:SaveData()
local data = {}
for _, v in ipairs(ents.FindByClass("ix_npcspawner")) do
data[#data + 1] = {
v:GetPos(),
v:GetAngles(),
v:GetEnabled(),
v:GetNPCClass(),
v:GetSpawnPosStart(),
v:GetSpawnPosEnd(),
v:GetPlayerNoSpawnRange(),
v:GetMaxNPCs(),
v:GetSpawnInterval()
}
end
ix.data.Set("npcSpawners", data)
end
function PLUGIN:LoadData()
for _, v in ipairs(ix.data.Get("npcSpawners") or {}) do
local entity = ents.Create("ix_npcspawner")
entity:SetPos(v[1])
entity:SetAngles(v[2])
entity:Spawn()
entity:SetEnabled(v[3])
entity:SetNPCClass(v[4])
entity:SetSpawnPosStart(v[5])
entity:SetSpawnPosEnd(v[6])
entity:SetPlayerNoSpawnRange(v[7])
entity:SetMaxNPCs(v[8])
entity:SetSpawnInterval(v[9])
local physicsObject = entity:GetPhysicsObject()
if (IsValid(physicsObject)) then
physicsObject:EnableMotion(false)
end
entity:SetupTimer(v[3])
end
end