Files
wnsrc/gamemodes/darkrp/plugins/npcspawner/cl_plugin.lua
lifestorm 6a58f406b1 Upload
2024-08-04 23:54:45 +03:00

42 lines
1.3 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/
--]]
do
local function spawnerESP(client, entity, x, y, factor, distance)
local alpha = math.Remap(math.Clamp(distance, 1500, 2000), 1500, 2000, 255, 45)
local npcClass = entity:GetNPCClass()
local npcCount = 0
local entityIndex = entity:EntIndex()
local timerName = "NPCSpawner" .. entityIndex
for _, npc in ipairs(ents.FindByClass(npcClass)) do
if (npc:GetNetVar("SpawnerID", 0) == entityIndex) then
npcCount = npcCount + 1
end
end
ix.util.DrawText(npcClass .. " Spawner (" .. npcCount .. "/" .. entity:GetMaxNPCs() .. ")", x, y, Color(255, 255, 255, alpha), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, nil, alpha)
end
ix.observer:RegisterESPType("ix_npcspawner", spawnerESP, "npcspawner")
end
net.Receive("NPCSpawner_Edit", function()
local spawner = net.ReadEntity()
local bEnabled = net.ReadBool()
local sClass = net.ReadString()
local fPlayerNoSpawnRange = net.ReadFloat()
local fMaxNPCs = net.ReadFloat()
local fSpawnInterval = net.ReadFloat()
vgui.Create("ixNPCSpawnerEditor"):Populate(spawner, bEnabled, sClass, fPlayerNoSpawnRange, fMaxNPCs, fSpawnInterval)
end)