mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
115 lines
3.5 KiB
Lua
115 lines
3.5 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/
|
||
|
|
--]]
|
||
|
|
|
||
|
|
local PLUGIN = PLUGIN or {}
|
||
|
|
|
||
|
|
PLUGIN.name = "TempSpawns"
|
||
|
|
PLUGIN.author = "Gr4Ss"
|
||
|
|
PLUGIN.description = "Adds temporary spawnpoints that are not saved, are easy to move around and can be used to gather players"
|
||
|
|
|
||
|
|
PLUGIN.tempspawns = PLUGIN.tempspawns or {}
|
||
|
|
|
||
|
|
CAMI.RegisterPrivilege({
|
||
|
|
Name = "Helix - Manage TempSpawns",
|
||
|
|
MinAccess = "admin"
|
||
|
|
})
|
||
|
|
|
||
|
|
ix.util.Include("sv_plugin.lua")
|
||
|
|
|
||
|
|
do
|
||
|
|
ix.command.Add("TempspawnAdd", {
|
||
|
|
description = "@cmdTemspawnAdd",
|
||
|
|
privilege = "Manage TempSpawns",
|
||
|
|
OnRun = function(self, client, color, text)
|
||
|
|
local trace = client:GetEyeTraceNoCursor()
|
||
|
|
PLUGIN:AddTempspawn(trace.HitPos + Vector(0, 0, 10))
|
||
|
|
end
|
||
|
|
})
|
||
|
|
|
||
|
|
ix.command.Add("TempspawnRemove", {
|
||
|
|
description = "@cmdTempspawnRemove",
|
||
|
|
privilege = "Manage TempSpawns",
|
||
|
|
arguments = {bit.bor(ix.type.bool, ix.type.optional)},
|
||
|
|
argumentsNames = {"all"},
|
||
|
|
OnRun = function(self, client, all)
|
||
|
|
if (!all) then
|
||
|
|
PLUGIN:RemoveTempspawn(client)
|
||
|
|
else
|
||
|
|
PLUGIN:RemoveTempspawns()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
})
|
||
|
|
|
||
|
|
ix.command.Add("TempspawnAll", {
|
||
|
|
description = "@cmdTempspawnAll",
|
||
|
|
privilege = "Manage TempSpawns",
|
||
|
|
OnRun = function(self, client)
|
||
|
|
if (#PLUGIN.tempspawns == 0) then
|
||
|
|
client:NotifyLocalized("tempspawnsNoSet")
|
||
|
|
end
|
||
|
|
|
||
|
|
PLUGIN:TempSpawnAll(client)
|
||
|
|
end
|
||
|
|
})
|
||
|
|
end
|
||
|
|
|
||
|
|
ix.lang.AddTable("english", {
|
||
|
|
optTempspawnESP = "Enable TempSpawn ESP",
|
||
|
|
optdTempspawnESP = "Whether temporary spawns should show up in the Observer ESP.",
|
||
|
|
tempSpawn = "TempSpawn",
|
||
|
|
tempspawnsNoSet = "There are no temporary spawns set yet!",
|
||
|
|
tempspawnsRemovedAll = "You removed all temporary spawns!",
|
||
|
|
tempspawnsNoNearLooking = "There are no tempspawns near where you are looking!",
|
||
|
|
tempspawnsRespawnOne = "You have respawned 1 player.",
|
||
|
|
tempspawnsRespawnNumber = "You have respawned %d players.",
|
||
|
|
cmdTempspawnAll = "Teleports all alive players to a temporary spawn.",
|
||
|
|
cmdTempspawnRemove = "Remove one temporary spawn near where you are looking or all temporary spawns.",
|
||
|
|
cmdTemspawnAdd = "Add a temporary spawn where you are looking."
|
||
|
|
})
|
||
|
|
|
||
|
|
ix.lang.AddTable("spanish", {
|
||
|
|
cmdTempspawnRemove = "Quita un spawn temporal cerca de donde estés mirando o quita todo los spawns temporales.",
|
||
|
|
cmdTempspawnAll = "Teletransporta a todos los jugadores vivos a un spawn temporal.",
|
||
|
|
cmdTemspawnAdd = "Añade un spawn temporal en donde estás mirando.",
|
||
|
|
tempspawnsNoSet = "¡Aún no se han establecido los spawns temporales!",
|
||
|
|
tempspawnsRespawnNumber = "Has resucitado a %d jugadores.",
|
||
|
|
tempspawnsRespawnOne = "Has resucitado a 1 jugador.",
|
||
|
|
tempspawnsRemovedAll = "¡Has eliminado todo los spawns temporales!",
|
||
|
|
optTempspawnESP = "Activar TempSpawn ESP",
|
||
|
|
tempSpawn = "TempSpawn",
|
||
|
|
tempspawnsNoNearLooking = "¡No hay tempspawns cerca de donde estás mirando!"
|
||
|
|
})
|
||
|
|
|
||
|
|
if (CLIENT) then
|
||
|
|
ix.option.Add("tempspawnESP", ix.type.bool, true, {
|
||
|
|
category = "observer",
|
||
|
|
hidden = function()
|
||
|
|
return !CAMI.PlayerHasAccess(LocalPlayer(), "Helix - Observer", nil)
|
||
|
|
end
|
||
|
|
})
|
||
|
|
|
||
|
|
function PLUGIN:DrawPointESP(points)
|
||
|
|
local text = L("tempSpawn")
|
||
|
|
if (ix.option.Get("tempspawnESP")) then
|
||
|
|
for _, v in ipairs(self.tempspawns) do
|
||
|
|
points[#points + 1] = {v, text}
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
net.Receive("TempspawnsData", function(len)
|
||
|
|
PLUGIN.tempspawns = {}
|
||
|
|
local max = net.ReadUInt(16)
|
||
|
|
for _ = 1, max do
|
||
|
|
PLUGIN.tempspawns[#PLUGIN.tempspawns + 1] = net.ReadVector()
|
||
|
|
end
|
||
|
|
end)
|
||
|
|
end
|