mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
88
gamemodes/darkrp/plugins/setplayerspawn.lua
Normal file
88
gamemodes/darkrp/plugins/setplayerspawn.lua
Normal file
@@ -0,0 +1,88 @@
|
||||
--[[
|
||||
| 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
|
||||
PLUGIN.name = "Set Player Spawn"
|
||||
PLUGIN.author = "M!NT"
|
||||
PLUGIN.description = "Sets the PLAYER spawn point entities (not character!) wherever you want."
|
||||
PLUGIN.readme = "Wherever these entities are spawned, when a player joins them there, it will select one at random to spawn them at until they load a character."
|
||||
|
||||
if SERVER then
|
||||
hook.Add("PlayerSelectSpawn", "PlayerSpawnSelector", function(pl)
|
||||
local spawns = ents.FindByClass("player_spawn_anchor")
|
||||
if (#spawns < 1) then
|
||||
spawns = ents.FindByClass("info_player_start")
|
||||
end
|
||||
|
||||
return spawns[math.random(#spawns)]
|
||||
end)
|
||||
end
|
||||
|
||||
do
|
||||
local anchor = {}
|
||||
anchor.Type = "anim"
|
||||
anchor.Base = "base_gmodentity"
|
||||
anchor.PrintName = "Player Spawn Anchor"
|
||||
anchor.Author = "M!NT"
|
||||
anchor.Category = "HL2 RP"
|
||||
anchor.Contact = ""
|
||||
anchor.Purpose = ""
|
||||
anchor.Instructions = ""
|
||||
anchor.Spawnable = false
|
||||
anchor.AdminOnly = true
|
||||
|
||||
function anchor:Initialize()
|
||||
self:SetModel("models/props_junk/Shoe001a.mdl")
|
||||
self:PhysicsInit(SOLID_VPHYSICS)
|
||||
self:SetMoveType(MOVETYPE_VPHYSICS)
|
||||
self:SetSolid(SOLID_VPHYSICS)
|
||||
|
||||
local phys = self:GetPhysicsObject()
|
||||
if IsValid(phys) then
|
||||
phys:EnableMotion(true)
|
||||
phys:Wake()
|
||||
end
|
||||
end
|
||||
|
||||
function anchor:Draw()
|
||||
self:DrawModel()
|
||||
end
|
||||
|
||||
scripted_ents.Register(anchor, "player_spawn_anchor")
|
||||
end
|
||||
|
||||
CAMI.RegisterPrivilege({
|
||||
Name = "Helix - Manage Player Spawn Anchors",
|
||||
MinAccess = "admin"
|
||||
})
|
||||
|
||||
ix.command.Add("AddPlayerSpawnAnchor", {
|
||||
description = "Add a new player spawn anchor wherever you're looking",
|
||||
arguments = {},
|
||||
privilege = "Manage Player Spawn Anchors",
|
||||
OnRun = function(self, client, pbx)
|
||||
local ent = ents.Create("player_spawn_anchor")
|
||||
ent:SetPos(client:GetEyeTrace().HitPos)
|
||||
|
||||
ix.saveEnts:SaveEntity(ent)
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
ix.command.Add("ClearPlayerSpawnAnchors", {
|
||||
description = "Clears all player spawn anchors",
|
||||
arguments = {},
|
||||
privilege = "Manage Player Spawn Anchors",
|
||||
OnRun = function(self, client, pbx)
|
||||
for _, ent in ipairs(ents.FindByClass("player_spawn_anchor")) do
|
||||
ent:Remove()
|
||||
end
|
||||
end
|
||||
})
|
||||
Reference in New Issue
Block a user