Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name SafeTime
- @persist Data:table FreeTime BlackList:table
- runOnChat(1)
- runOnTick(1)
- FreeTime = 10
- if(first())
- {
- concmd("say E2 replaced/updated. Stats have been reset.")
- function number blackListed(E:entity)
- {
- return BlackList[E:steamID(), number]
- }
- function void addPlayer(E:entity)
- {
- if(!blackListed(E))
- {
- PlyData = table()
- PlyData["Entity", entity] = E
- PlyData["Alive", number] = E:isAlive()
- PlyData["LastSpawn", number] = 0
- PlyData["Reported", number] = 1
- PlyData["Deaths", number] = 0
- PlyData["NoClipReport", number] = 0
- PlyData["NoClipStart", number] = 0
- Data[E:steamID(), table] = PlyData
- }
- }
- function number gotPlayer(E:entity)
- {
- return Data[E:steamID(), table]:count() != 0
- }
- function void blackList(E:entity)
- {
- BlackList[E:steamID(), number] = 1
- if(gotPlayer(E))
- {
- Data[E:steamID(), table] = table()
- }
- }
- function void unBlackList(E:entity)
- {
- BlackList[E:steamID(), number] = 0
- addPlayer(E)
- }
- }
- if(chatClk())
- {
- P = lastSaid():lower():explode(" ")
- if(chatClk(owner()))
- {
- if(P[1, string] == "!blacklistme")
- {
- blackList(lastSpoke())
- }
- elseif(P[1, string] == "!unblacklistme")
- {
- unBlackList(lastSpoke())
- }
- elseif(P[1, string] == "!blacklist")
- {
- blackList(findPlayerByName(P[2, string]))
- }
- elseif(P[1, string] == "!unblacklist")
- {
- unBlackList(findPlayerByName(P[2, string]))
- }
- }
- else
- {
- if(P[1, string] == "!blacklistme")
- {
- blackList(lastSpoke())
- }
- elseif(P[1, string] == "!unblacklistme")
- {
- unBlackList(lastSpoke())
- }
- }
- }
- if(findCanQuery())
- {
- P = players()
- foreach(A, E:entity = P)
- {
- if(blackListed(E)){ continue }
- if(!gotPlayer(E))
- {
- addPlayer(E)
- }
- if(!Data[E:steamID(), table]["NoClipReport", number] & Data[E:steamID(), table]["Reported", number] & PlyData["LastSpawn", number] != 0 & E:isAlive() & E:inNoclip())
- {
- concmd("say " + E:name() + " entered noclip while not under spawn protection.")
- Data[E:steamID(), table]["NoClipReport", number] = 1
- Data[E:steamID(), table]["NoClipStart", number] = systime()
- }
- elseif(Data[E:steamID(), table]["NoClipReport", number])
- {
- Time = ceil(systime() - Data[E:steamID(), table]["NoClipStart", number])
- concmd("say " + E:name() + " exited noclip after " + Time:toString() + (Time != 1 ? " seconds." : " second."))
- Data[E:steamID(), table]["NoClipReport", number] = 0
- }
- if(!E:isAlive() & Data[E:steamID(), table]["Alive", number])
- {
- Data[E:steamID(), table]["Alive", number] = 0
- if(!Data[E:steamID(), table]["Reported", number])
- {
- concmd("say " + E:name() + " died before " + FreeTime:toString() + " seconds had passed.")
- }
- }
- elseif(E:isAlive() & !Data[E:steamID(), table]["Alive", number])
- {
- Data[E:steamID(), table]["Alive", number] = 1
- Data[E:steamID(), table]["LastSpawn", number] = systime()
- Data[E:steamID(), table]["Deaths", number] = Data[E:steamID(), table]["Deaths", number] + 1
- concmd("say " + E:name() + " just respawned. He has " + Data[E:steamID(), table]["Deaths", number]:toString() + (Data[E:steamID(), table]["Deaths", number] == 1 ? " death." : " deaths."))
- Data[E:steamID(), table]["Reported", number] = 0
- }
- elseif(E:isAlive() & Data[E:steamID(), table]["Alive", number] & !Data[E:steamID(), table]["Reported", number])
- {
- if(systime() - Data[E:steamID(), table]["LastSpawn", number] >= FreeTime)
- {
- Data[E:steamID(), table]["Reported", number] = 1
- concmd("say " + E:name() + " respawned " + FreeTime:toString() + " seconds ago and is now part of the game again.")
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement