#anti-bhop.py
### imports ###
import es
import playerlib
import time
# Number of warnings before the Player get banned
numWarnings = 10
# The number of minutes a player get banned
# Tip: write 0 for permban
timeOfBan = '5'
#intern used variable
Data = {}
default = str(es.ServerVar('eventscripts_noisy'))
def load():
es.setinfo('eventscripts_noisy', '1')
def unload():
es.setinfo('eventscripts_noisy', default)
def warnPlayer(userid):
if Data[userid]['warnings']+1 == numWarnings:
es.tell(userid, "#multi", "#green ПЕРЕСТАНТЕ БАНИХОПИТЬ ИЛИ ВАС ЗАБАНЯТ!")
else:
es.tell(userid, "#multi", "#lightgreen ВНИМАНИЕ#default ПЕРЕСТАНТЕ БАНИХОПИТЬ!")
def player_disconnect(ev):
if Data.has_key(ev['userid']):
del Data[ev['userid']]
def player_footstep(ev):
if not Data.has_key(ev['userid']):
Data[ev['userid']] = {}
Data[ev['userid']]['laststep'] = 0
Data[ev['userid']]['warnings'] = 0
Now = float(time.time())
Old = float(Data[ev['userid']]['laststep'])
Data[ev['userid']]['laststep'] = Now
if (Now - Old) <= 0.01:
if Data[ev['userid']]['warnings'] < numWarnings:
warnPlayer(ev['userid'])
Data[ev['userid']]['warnings'] += 1
else:
es.server.queuecmd("kickid %s Забанен на 5 минут за банихоп" % ev['userid'])
es.server.queuecmd("banid %s %s" % (timeOfBan, es.getplayersteamid(ev['userid'])))