add sborka
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
local PLUGIN = PLUGIN
|
||||
PLUGIN.name = "Carrying Entities"
|
||||
PLUGIN.author = "Scripty"
|
||||
PLUGIN.description = "Позволяет игрокам поднимать любые энтити на клавишу E через стандартную механику."
|
||||
|
||||
-- Список классов, которые ЗАПРЕЩЕНО поднимать
|
||||
local BLACKLIST = {
|
||||
["player"] = true,
|
||||
["worldspawn"] = true,
|
||||
["func_door"] = true,
|
||||
["func_door_rotating"] = true,
|
||||
["prop_door_rotating"] = true,
|
||||
["func_movelinear"] = true,
|
||||
["prop_dynamic"] = true,
|
||||
["ix_vendor"] = true,
|
||||
["gmod_hands"] = true,
|
||||
["viewmodel"] = true
|
||||
}
|
||||
|
||||
if SERVER then
|
||||
-- Этот хук вызывается ядром Helix во время GM:AllowPlayerPickup
|
||||
function PLUGIN:CanPlayerPickupEntity(client, entity)
|
||||
if (!IsValid(entity) or entity:IsPlayer() or entity:IsWorld()) then
|
||||
return false
|
||||
end
|
||||
|
||||
local class = entity:GetClass()
|
||||
if (BLACKLIST[class]) then
|
||||
return false
|
||||
end
|
||||
|
||||
-- Проверка защиты Helix (Prop Protection)
|
||||
local char = client:GetCharacter()
|
||||
local owner = entity:GetNetVar("owner", 0)
|
||||
|
||||
-- Разрешаем владельцу, админу или если объект ничей
|
||||
if (owner == 0 or (char and owner == char:GetID()) or client:IsAdmin()) then
|
||||
local phys = entity:GetPhysicsObject()
|
||||
|
||||
-- Разрешаем подбирать только то, что имеет физику
|
||||
if (IsValid(phys) and phys:IsMoveable()) then
|
||||
return true
|
||||
end
|
||||
|
||||
-- Прямое разрешение для пакетов крови (если физика считается не-moveable)
|
||||
if (class == "bloodbag_medicmod") then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user