View difference between Paste ID: TaYiVkT0 and PN5XLfpJ
SHOW: | | - or go back to the newest paste.
1
spawn_time = 30
2
# how many seconds after round_start a player can join
3
4
5
6
import es
7
import time
8
9
nospam = {}
10
round_start_time = 0
11
dead_players = []
12
13
def load():
14
    es.addons.registerClientCommandFilter(cc_filter)
15
    es.server.queuecmd('mp_restartgame 1')
16
17
def unload():
18
    es.addons.unregisterClientCommandFilter(cc_filter)
19
20
def round_start(ev):
21
    global round_start_time
22
    round_start_time = time.time()
23
    del dead_players[:]
24
25
def player_death(ev):
26
    dead_players.append(es.getplayersteamid(int(ev['userid'])))
27
28
def cc_filter(userid, args):
29
    global round_start_time
30
    if str(args[0]).lower == 'jointeam':
31
        if str(args[1]) == '1':
32
            now = time.time()
33
            if now - nospam.get(userid, 0) >= 1: # anti spam method needed, or server can be crashed :O
34
                if es.getplayersteamid(userid) in dead_players: # players that already died, shouldnt be able to respawn again?!
35
                    return False
36-
                if now - round_start_time >= spawn_time:
36+
                if (now - round_start_time) < spawn_time:
37
                    es.server.queuecmd('es_xsetplayerprop %s "CCSPlayer.baseclass.m_lifeState" 512' %userid)
38
                    es.server.queuecmd('es_xsetplayerprop %s "CCSPlayer.m_iPlayerState" 0' %userid)
39
                    es.server.queuecmd('es_xspawnplayer %s' %userid)
40
                else:
41
                    return False
42
            else:
43
                return False
44
    return True