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

44 lines
1.7 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 entityMeta = FindMetaTable("Entity")
function entityMeta:StealthOpenDoor()
if (!self.stealthOpen) then
self.stealthOpen = true
self.oldSpeed = self:GetInternalVariable("Speed")
self:SetSaveValue("Speed", self.oldSpeed / 2)
local uniqueID = self:EntIndex() and self:EntIndex() or tostring(self:GetPos())
timer.Create("resetDoorStealthValue" .. uniqueID, 5 * (self:GetInternalVariable("speed") / (self:GetClass() == "prop_door_rotating" and self:GetInternalVariable("distance") or self:GetInternalVariable("m_flMoveDistance"))), 1, function()
if (self:GetSaveTable().m_eDoorState != 1 and self:GetSaveTable().m_eDoorState != 3) then
timer.Simple(5, function()
self:SetSaveValue("Speed", self.oldSpeed)
self.stealthOpen = false
end)
else
timer.Create("checkForDoorReset" .. self:EntIndex(), 0.1, 0, function()
if (self:GetSaveTable().m_eDoorState != 1 and self:GetSaveTable().m_eDoorState != 3) then
timer.Simple(5, function()
self:SetSaveValue("Speed", self.oldSpeed)
self.stealthOpen = false
end)
timer.Remove("checkForDoorReset" .. self:EntIndex())
end
end)
end
end)
end
end