Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.20 KB | None | 0 0
  1. local players_in_safe_zone = {}
  2.  
  3. local function on_player_enter_zone(ply)
  4.     ply:PrintMessage(HUD_PRINTCENTER, "You're entered safe zone.")
  5. end
  6.  
  7. local function on_player_leave_zone(ply)
  8.     ply:PrintMessage(HUD_PRINTCENTER, "You're exited safe zone.")
  9. end
  10.  
  11. hook.Add("Think", "PRocessSafeZone", function()
  12.     local objs = ents.FindInBox(Vector (1065.9262695312, 867.20977783203, -227.98264312744),
  13.         Vector (659.12377929688, -907.02008056641, 72.916381835938))
  14.     for i = 1, #objs do
  15.         if not objs[i]:IsPlayer() then
  16.             if objs[i]:GetClass():find("prop_physics") then
  17.                 objs[i]:Remove()
  18.             end
  19.         else
  20.             if not players_in_safe_zone[objs[i]] then
  21.                 players_in_safe_zone[objs[i]] = true
  22.                 on_player_enter_zone(objs[i])
  23.             end
  24.         end
  25.     end
  26.     for ply in pairs(players_in_safe_zone) do
  27.         local found = false
  28.         for i = 1, #objs do
  29.             if objs[i] == ply then
  30.                 found = true
  31.                 break
  32.             end
  33.         end
  34.         if not found then
  35.             on_player_leave_zone(ply)
  36.             players_in_safe_zone[ply] = nil
  37.         end
  38.     end
  39. end)
  40.  
  41. hook.Add("EntityTakeDamage", "SafeZone", function(ent, dmgInfo)
  42.     if players_in_safe_zone[dmgInfo:GetAttacker()]
  43.             or players_in_safe_zone[ent] then
  44.         dmgInfo:SetDamage(0)
  45.     end
  46.     return dmgInfo
  47. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement