mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
72 lines
1.9 KiB
Lua
72 lines
1.9 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/
|
|
--]]
|
|
|
|
--[[
|
|
© 2020 TERRANOVA do not share, re-distribute or modify
|
|
without permission of its author.
|
|
--]]
|
|
|
|
local PLUGIN = PLUGIN
|
|
|
|
local SHOOT_DISTANCE = 180 * 180
|
|
|
|
function PLUGIN:EntityTakeDamage(entity, dmgInfo)
|
|
if (entity:GetClass() == "prop_door_rotating" and (entity.NextBreach or 0) < CurTime()) then
|
|
local handle = entity:LookupBone("handle")
|
|
|
|
if (handle and dmgInfo:IsBulletDamage()) then
|
|
local client = dmgInfo:GetAttacker()
|
|
local position = dmgInfo:GetDamagePosition()
|
|
|
|
if (!client:IsPlayer() or client:GetEyeTrace().Entity != entity or client:GetPos():DistToSqr(position) > SHOOT_DISTANCE) then
|
|
return
|
|
end
|
|
|
|
if (entity.ixLock) then
|
|
return false
|
|
end
|
|
|
|
if (entity.doorPartner and entity.doorPartner.ixLock) then
|
|
return false
|
|
end
|
|
|
|
if (IsValid(client) and position:DistToSqr(entity:GetBonePosition(handle)) <= 12 * 12) then
|
|
if (hook.Run("CanPlayerBustLock", client, entity) == false) then
|
|
return
|
|
end
|
|
|
|
local effect = EffectData()
|
|
effect:SetStart(position)
|
|
effect:SetOrigin(position)
|
|
effect:SetScale(2)
|
|
util.Effect("GlassImpact", effect)
|
|
|
|
local name = client:SteamID64()..CurTime()
|
|
client:SetName(name)
|
|
|
|
entity.OldSpeed = entity.OldSpeed or entity:GetKeyValues().speed or 100
|
|
|
|
entity:Fire("setspeed", entity.OldSpeed * 5)
|
|
entity:Fire("unlock")
|
|
entity:Fire("openawayfrom", name)
|
|
entity:EmitSound("physics/wood/wood_plank_break"..math.random(1, 4)..".wav", 100, 120)
|
|
|
|
entity.NextBreach = CurTime() + 1
|
|
|
|
timer.Simple(0.5, function()
|
|
if (IsValid(entity)) then
|
|
entity:Fire("setspeed", entity.OldSpeed)
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
end
|
|
end
|