Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local players_in_safe_zone = {}
- local function on_player_enter_zone(ply)
- ply:PrintMessage(HUD_PRINTCENTER, "You're entered safe zone.")
- end
- local function on_player_leave_zone(ply)
- ply:PrintMessage(HUD_PRINTCENTER, "You're exited safe zone.")
- end
- hook.Add("Think", "PRocessSafeZone", function()
- local objs = ents.FindInBox(Vector (1065.9262695312, 867.20977783203, -227.98264312744),
- Vector (659.12377929688, -907.02008056641, 72.916381835938))
- for i = 1, #objs do
- if not objs[i]:IsPlayer() then
- if objs[i]:GetClass():find("prop_physics") then
- objs[i]:Remove()
- end
- else
- if not players_in_safe_zone[objs[i]] then
- players_in_safe_zone[objs[i]] = true
- on_player_enter_zone(objs[i])
- end
- end
- end
- for ply in pairs(players_in_safe_zone) do
- local found = false
- for i = 1, #objs do
- if objs[i] == ply then
- found = true
- break
- end
- end
- if not found then
- on_player_leave_zone(ply)
- players_in_safe_zone[ply] = nil
- end
- end
- end)
- hook.Add("EntityTakeDamage", "SafeZone", function(ent, dmgInfo)
- if players_in_safe_zone[dmgInfo:GetAttacker()]
- or players_in_safe_zone[ent] then
- dmgInfo:SetDamage(0)
- end
- return dmgInfo
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement