def unload():
    for userid in es.getUseridList(): 
        if players.has_key(userid):
            gamethread.cancelDelayed('beacon_%s'%userid) 
            gamethread.cancelDelayed('timebomb_%s'%userid) 
            gamethread.cancelDelayed('freezebomb_%s'%userid) 
            gamethread.cancelDelayed('firebomb_%s'%userid)
            gamethread.cancelDelayed('unmute_%s'%es.getplayersteamid(userid))
            es.setplayerprop(userid, "CBaseEntity.movetype", 2)
            es.setplayerprop(userid, 'CBasePlayer.m_iDefaultFOV', 90)
    gamethread.cancelDelayed('remove_fire')
    gamethread.cancelDelayed('blind_loop')
    es.addons.unregisterSayFilter(_say_filter)
    # xaextendedpunishments.xapunishments.unregisterPunishment("punishment") 
    xaextendedpunishments.xapunishments.unregisterPunishment("blind") 
    xaextendedpunishments.xapunishments.unregisterPunishment("freeze") 
    xaextendedpunishments.xapunishments.unregisterPunishment("gimp") 
    xaextendedpunishments.xapunishments.unregisterPunishment("drug") 
    xaextendedpunishments.xapunishments.unregisterPunishment("beacon") 
    xaextendedpunishments.xapunishments.unregisterPunishment("noclip") 
    xaextendedpunishments.xapunishments.unregisterPunishment("freezebomb") 
    xaextendedpunishments.xapunishments.unregisterPunishment("timebomb") 
    xaextendedpunishments.xapunishments.unregisterPunishment("firebomb")
    
    if int(xa_adminmute_on):
        xaextendedpunishments.xapunishments.unregisterPunishment("mute")
        
    xaextendedpunishments.delRequirement('xapunishments')
    xaextendedpunishments.unregister()
    def freeze(self):
        """Freeze the player, stopping them from being able to move. If they
        were moving before, footstep sounds will continue to emit and weapon
        fire will resemble any inaccuracies.

        """
        es.setplayerprop(self.user_ID, "CBaseEntity.movetype", 0)
def weapon_fire(ev):
    userid = ev['userid']
    if not superhero.hasHero(userid,'Agent Zero'):
        return
    player = playerlib.getPlayer(userid)
    es.setplayerprop(userid, 'CCSPlayer.cslocaldata.m_iShotsFired', 0)
    es.setplayerprop(userid, 'CCSPlayer.baseclass.localdata.m_Local.m_vecPunchAngle', '0.000000,0.000000,0.000000')
Exemple #4
0
def player_hurt(event_var):
    """
    Executed when a player is damaged. Get the amount of damage done and
    multiply it by the percentage
    
    @PARAM event_var - an automatically passed event instance
    """
    attacker = event_var['attacker']
    if attacker and attacker.isdigit() and int(attacker) > 0:
        player   = sourcerpg.players[attacker]
        level    = player[skillName]
        if level:
            level = level * float(percentage) / 100.0
            if event_var['dmg_health']:
                amountToHeal = int(level * int(event_var['dmg_health']))
            elif event_var['damage']:
                amountToHeal = int(level * int(event_var['damage']))
            else:
                raise ValueError, "This game does not support vampire"
            if amountToHeal:
                maxHealth = player['maxHealth']
                currentHealth = es.getplayerprop(event_var['attacker'], 'CBasePlayer.m_iHealth')
                currentHealth += amountToHeal
                if currentHealth > maxHealth:
                    currentHealth = maxHealth
                es.setplayerprop(event_var['attacker'], 'CBasePlayer.m_iHealth', currentHealth)
def player_blind(ev):
    userid = ev['userid']
    if not superhero.hasHero(userid,'Jubilee'):
        return
    if jub[userid] == 1:
        es.setplayerprop(userid,'CCSPlayer.m_flFlashMaxAlpha',0)
	es.setplayerprop(userid,'CCSPlayer.m_flFlashDuration',0)
Exemple #6
0
def rpg_repulse(userid):
    skillname = 'Speed'
    player = playerlist[userid]
    level = player.GetSkillLevel(skillname)
    if level:
        es.setplayerprop(userid, 'CBasePlayer.localdata.m_flLaggedMovementValue', (1 + 0.015 * level))
    else:
        playerlist[userid].player.setSpeed(1)
Exemple #7
0
 def setHealth(userid, amount):
     """
     This static method sets a new value of health to a user
     
     @PARAM userid - the userid to get the health of
     @PARAM amount - the new amount of health to set to
     """
     es.setplayerprop(userid, 'CBasePlayer.m_iHealth', amount)
def Deplete_Infected_Ammo():
	gamethread.delayedname(.5,"Deplete_Infected_Ammo",Deplete_Infected_Ammo,())
	for Userid in es.getUseridList():
		if es.exists('userid',Userid):
			if es.getplayerteam(Userid) == 2:
				es.setplayerprop(Userid,"CObjectTeleporter.baseclass.m_iUpgradeMetal",0)
				for num in range(4):
					es.setplayerprop(Userid,"CTFPlayer.baseclass.localdata.m_iAmmo.00%s"%num,0)
Exemple #9
0
 def setArmor(userid, amount):
     """
     This static method sets a new value of armor to a user
     
     @PARAM userid - the userid to get the armor of
     @PARAM amount - the new amount of armor to set to
     """
     es.setplayerprop(userid, 'CCSPlayer.m_ArmorValue', amount)
Exemple #10
0
def weapon_fire(ev):
    userid = int(ev['userid'])
    weapon = str(ev['weapon'])
    weapon_index = getweaponindex(userid, weapon)
    if weapon == "knife":
        es.setplayerprop(userid, "CCSPlayer.cslocaldata.m_iShotsfired", 1)
        es.setindexprop(weapon_index, "CBaseCombatWeapon.LocalActiveWeaponData.m_flNextPrimaryAttack", 0)
        es.setindexprop(weapon_index, "CBaseCombatWeapon.LocalActiveWeaponData.m_flNextSecondaryAttack", 0)
        es.setplayerprop(userid, "CBaseCombatCharacter.bcc_localdata.m_flNextAttack", 0)
def Request_SetPlayerMaxHealth(Userid,Health):
	for item in es.createentitylist("tf_player_manager"):
		Ent = item
		break
	index = int(playerlib.getPlayer(Userid).get('index'))
	Template = GetTemplate(str("CTFPlayerResource.m_iMaxHealth.0"),index)
	es.setindexprop(Ent,Template,Health)
	es.setplayerprop(Userid,"CTFPlayer.baseclass.baseclass.m_bGlowEnabled",1)
	es.setplayerprop(Userid,"CTFPlayer.baseclass.m_flMaxspeed",random.randint(300,400))
    def set(self, user_ID, value):
        """Set the value of the player"s entity property. This
        method should generally only be implicitly called by python.

        Arguments:
        user_ID - the unique session ID of the user.
        value - the new value to set the property at.

        """
        es.setplayerprop(user_ID, self.name, value)
def player_spawn(EV):
	Userid = int(EV['userid'])
	Team = EV['team']
	Class = EV['class']
	global Zombies,Survivors,Spec
	Request_WeaponKill_Update()
	if Userid in Zombies:
		Kill_InfectedClip(Userid)
		es.setplayerprop(Userid,"CTFPlayer.baseclass.m_iHealth",(4000/es.getplayercount(2))+1000)
		Request_SetPlayerMaxHealth(Userid,(4000/es.getplayercount(2))+1000)
	Request_TeamUpdate()
def _drug(userid, adminid, args): 
    drugged = players[userid]['drugged'] 
    players[userid]['drugged'] = (1 if not drugged else 0) 
    if str(xa_admindrug_anonymous) == "0": 
        tokens = {} 
        tokens['admin'] = es.getplayername(adminid) 
        tokens['user']  = es.getplayername(userid) 
        for player in playerlib.getPlayerList(): 
            tokens['state'] = xalanguage("drugged", lang=player.get("lang")) if not drugged else xalanguage("undrugged", lang=player.get("lang")) 
            es.tell(int(player), xalanguage("admin state", tokens, player.get("lang"))) 
        es.setplayerprop(userid, 'CBasePlayer.m_iDefaultFOV', 165 if not drugged else 90) 
Exemple #15
0
def player_jump(ev):
    # Get userid and level for that skill
    userid = int(ev["userid"])
    level = playerlist[userid].GetSkillLevel(skillname)

    # Calculate jump vector and set it
    horizontalVector = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[0]")
    verticalVector = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[1]")
    horizontalVector = (level * horizontalVector) * 0.085
    verticalVector = (level * verticalVector) * 0.085
    vector = "%s,%s,0" % (horizontalVector, verticalVector)
    es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", vector)
Exemple #16
0
def pre_player_hurt(ev):
    userid = int(ev['userid'])
    attacker = int(ev['attacker'])
    dmg_health = int(ev['dmg_health'])
    hitgroup = int(ev['hitgroup'])
    weapon = str(ev['weapon'])
    steamid = getplayerid(userid)
    if attacker > 0:
        attackersteamid = getplayerid(attacker)
    health = es.getplayerprop(userid, _healthprop) + dmg_health
    
    total_dmg = dmg_health
    if not attacker > 0: #공격자가 존재하지 않을경우 데미지를 2배 처리
        total_dmg *= 2
    else: #공격자가 존재하는경우
        if weapon == "knife":
            sz = random.choice(["zeisenproject/The-Killers/sounds/sndHit.wav",
                                "zeisenproject/The-Killers/sounds/sndHit1.wav",
                                "zeisenproject/The-Killers/sounds/sndHit3.wav"])
            for i in range(1,2 + 1):
                if i == 1: es.playsound(attacker, sz, 1.0)
                else: es.playsound(attacker, sz, 0.5)
        else:
            es.playsound(attacker, "zeisenproject/The-Killers/sounds/sndHit2.wav", 1.0)
        if hitgroup == 1:
            if weapon == "awp":
                total_dmg = 250
            elif weapon == "scout":
                total_dmg = 165
            elif weapon == "p90":
                total_dmg = 70
            else:
                total_dmg = 100
        else:
            if weapon == "knife":
                total_dmg = 100
            else:
                total_dmg = 50
    health -= total_dmg
    es.setplayerprop(userid, _healthprop, health)
    if attacker > 0:
        if steamid == "BOT" and health > 0 and attackersteamid != "BOT":
            gore = bool(es.keygetvalue(attackersteamid, "player_data", "gore"))
            if gore:
                if hitgroup == 1:
                    for i in range(1,5 + 1):
                        make_blood(userid, color=0, amount=10, headshot=1, valueat=attacker)
                else:
                    for i in range(1,5 + 1):
                        make_blood(userid, color=0, amount=10, headshot=0, valueat=attacker)
Exemple #17
0
def setHealth(userid):
    """
    A function which alters the maximum and current health of a player to
    match their current level
    
    @PARAM userid - the userid of which to set the health of
    """
    player = sourcerpg.players[userid]
    level  = player[skillName]
    if userid not in baseHealth:
        baseHealth[userid] = player['baseHealth']
    level  = level * int(healthIncrement) + baseHealth[userid]
    player['maxHealth'] = level
    es.setplayerprop(userid, 'CBasePlayer.m_iHealth', player['maxHealth'])
Exemple #18
0
def restart():
	""" Teleports player to first level """
	userid = es.getcmduserid()
	if (es.getplayerteam(userid) != 1):
		entities = es.createentitylist('info_teleport_destination')
		for i in entities:
			if (es.entitygetvalue(i, 'targetname') == "timer_stage1"):
				x = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[0]") * -1 / 2
				y = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[1]") * -1 / 2
				z = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[2]") * -1 / 2
				es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", es.createvectorstring(x, y, z))
				gamethread.delayed(0.01, es.setplayerprop, (userid, "CBasePlayer.localdata.m_vecBaseVelocity", es.createvectorstring(x, y, z)))
				startPos = es.entitygetvalue(i, 'origin').split(' ')
				startAng = es.entitygetvalue(i, 'angles').split(' ')
				gamethread.delayed(0.01, es.setpos, (userid, startPos[0], startPos[1], startPos[2]))
				es.setang(userid, startAng[0], startAng[1], startAng[2])
Exemple #19
0
def bonusMenu_select(userid, choice, popupid):
	if (es.getplayerteam(userid) == 1): return
	for a in range(1,4):
		if (choice == '%s' % a):
			entities = es.createentitylist('info_teleport_destination')
			for b in entities:
				if (es.entitygetvalue(b, 'targetname') == "timer_bonus%s" % a):
					x = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[0]") * -1 / 2
					y = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[1]") * -1 / 2
					z = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[2]") * -1 / 2
					es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", es.createvectorstring(x, y, z))
					gamethread.delayed(0.01, es.setplayerprop, (userid, "CBasePlayer.localdata.m_vecBaseVelocity", es.createvectorstring(x, y, z)))
					startPos = es.entitygetvalue(b, 'origin').split(' ')
					startAng = es.entitygetvalue(b, 'angles').split(' ')
					es.setpos(userid, startPos[0], startPos[1], startPos[2])
					es.setang(userid, startAng[0], startAng[1], startAng[2])
def _noclip(userid, adminid, args): 
    noclipped = players[userid]['noclipped'] 
    if str(xa_adminnoclip_anonymous) == "0": 
        tokens = {} 
        tokens['admin'] = es.getplayername(adminid) 
        tokens['user']  = es.getplayername(userid) 
        for player in playerlib.getPlayerList(): 
            if not noclipped: 
                es.tell(int(player), xalanguage("noclip on", tokens, player.get("lang"))) 
            else: 
                es.tell(int(player), xalanguage("noclip off", tokens, player.get("lang"))) 
    if not noclipped: 
        players[userid]['noclipped'] = 1 
        es.setplayerprop(userid, "CBaseEntity.movetype", 8) 
    else: 
        players[userid]['noclipped'] = 0 
        es.setplayerprop(userid, "CBaseEntity.movetype", 2) 
Exemple #21
0
def setArmor(userid):
    """
    A function which alters the maximum and current armor of a player to
    match their current level
    
    @PARAM userid - the userid of which to set the armor of
    """
    player = sourcerpg.players[userid]
    if userid not in baseArmor:
        armor = 100
        baseArmor[userid] = player['maxArmor']
    else:
        armor  = baseArmor[userid]
    level  = player[skillName]
    level  = level * int(armorIncrement) + armor
    player['maxArmor'] = level
    es.setplayerprop(userid, 'CCSPlayer.m_ArmorValue', level)
def _select_player(userid, choice, popupid):
    command = admins[userid]['command']
    if command.startswith('weapon_') or command.startswith('item_'):
        if 'vest' not in command:
            if str(admingive_stripfirst) == '1':
                if command.replace('weapon_','') in pistols:
                    secondary = playerlib.getPlayer(choice).get('secondary') 
                    if secondary:
                        RemoveWeapon(choice, secondary)
                elif command.replace('weapon_','') in (list(shotguns) + list(smgs) + list(rifles) + list(snipers) + ['m249']):
                    primary = playerlib.getPlayer(choice).get('primary') 
                    if primary:
                        RemoveWeapon(choice, primary)
            gamethread.delayed(0.1, es.server.queuecmd, 'es_xgive %s %s'%(choice, command))
        else:
            if 'helm' in command:
                es.setplayerprop(choice, 'CCSPlayer.m_bHasHelmet', 1)
            es.setplayerprop(choice, 'CCSPlayer.m_ArmorValue', 100)
        if str(admingive_anonymous) == '0':
            tokens = {}
            tokens['admin'] = es.getplayername(userid)
            tokens['user']  = es.getplayername(choice)
            for myplayer in playerlib.getPlayerList('#human'):
                tokens['item'] = '#greena #lightgreen' + str(xalanguage(command.replace('weapon_','').replace('item_',''), lang=myplayer.get("lang")))
                es.tell(int(myplayer), '#multi', xalanguage('admin give', tokens, myplayer.get("lang")))
    elif command.startswith('health_'):
        if str(admingive_anonymous) == '0':
            tokens = {}
            tokens['admin'] = es.getplayername(userid)
            tokens['user']  = es.getplayername(choice)
            health = command.replace('health_','')
            c = ''
            while len(health) > 3:
                c = ',' + health[-3:]
                health = health[0:-3]
            c = health + c
            tokens['item'] = '#green' + c + ' #lightgreenhealth'
            for myplayer in playerlib.getPlayerList('#human'):
                es.tell(int(myplayer), '#multi', xalanguage('admin give', tokens, myplayer.get("lang")))
        es.setplayerprop(choice, 'CBasePlayer.m_iHealth', es.getplayerprop(choice, 'CBasePlayer.m_iHealth') + int(command.replace('health_','')))
    elif command.startswith('cash_'):
        if str(admingive_anonymous) == '0':
            tokens = {}
            tokens['admin'] = es.getplayername(userid)
            tokens['user']  = es.getplayername(choice)
            cash = command.replace('cash_','')
            c = ''
            while len(cash) > 3:
                c = ',' + cash[-3:]
                cash = cash[0:-3]
            c = '$' + cash + c
            tokens['item'] = '#green' + c
            for myplayer in playerlib.getPlayerList('#human'):
                es.tell(int(myplayer), '#multi', xalanguage('admin give', tokens, myplayer.get("lang")))
        es.setplayerprop(choice, 'CCSPlayer.m_iAccount', es.getplayerprop(choice, 'CCSPlayer.m_iAccount') + int(command.replace('cash_','')))
def player_death(ev): 
    userid = int(ev['userid'])
    if not userid in players:
        players[userid] = {}
        players[userid]['gimped']   = 0 
    players[userid]['timebombed']   = 0 
    players[userid]['freezebombed'] = 0 
    players[userid]['firebombed']   = 0 
    players[userid]['noclipped']    = 0 
    players[userid]['beaconed']     = 0 
    players[userid]['drugged']      = 0 
    players[userid]['blind']        = 0 
    gamethread.cancelDelayed('beacon_%s'%userid) 
    gamethread.cancelDelayed('timebomb_%s'%userid) 
    gamethread.cancelDelayed('freezebomb_%s'%userid) 
    gamethread.cancelDelayed('firebomb_%s'%userid) 
    es.setplayerprop(userid, "CBaseEntity.movetype", 2)
    es.setplayerprop(userid, 'CBasePlayer.m_iDefaultFOV', 90)
Exemple #24
0
def setSpeed(userid):
    """
    A function which alters the maximum and current speed of a player to
    match their current level
    
    @PARAM userid - the userid of which to set the speed of
    """
    player = sourcerpg.players[userid]
    if player is None:
        return
    level  = player[skillName]
    if level > maxLevel:
        level = int(maxLevel)
    if level:
        eachSegment = (float(maxSpeed) - player['maxSpeed']) / maxLevel
        level = level * eachSegment + player['maxSpeed']
        player['maxSpeed'] = level
        es.setplayerprop(userid, 'CBasePlayer.localdata.m_flLaggedMovementValue', level)
def _punishment_slap(userid, adminid, args, force):
    if len(args) > 1:
        health = args[1]
    else:
        health = xa_slap_to_damage
    if str(xa_adminslap_anonymous) == '0' and not force:
        tokens = {}
        tokens['admin']   = es.getplayername(adminid)
        tokens['user']    = es.getplayername(userid)
        tokens['health']  = str(health)
        for user in playerlib.getPlayerList():
            es.tell(int(user), xalanguage("admin slap", tokens, user.get("lang")))
    player = playerlib.getPlayer(userid)
    player.set('health', int(health))
    es.emitsound('player', userid, 'player/damage2.wav', '1.0', '0.5')
    es.setplayerprop(userid, 'CCSPlayer.baseclass.localdata.m_vecBaseVelocity', '%s,%s,%s'%(random.randint(-255, 255), random.randint(-255, 255), random.randint(-100, 255)))
    if player.get('health') <= 0:
        player.kill()
def round_end(ev): 
    for userid in es.getUseridList(): 
        if not es.getplayerprop(userid, 'CBasePlayer.pl.deadflag'):
            if not players.has_key(userid):
                player_activate({'userid':userid})
            players[userid]['timebombed']   = 0 
            players[userid]['freezebombed'] = 0 
            players[userid]['firebombed']   = 0 
            players[userid]['noclipped']    = 0 
            players[userid]['beaconed']     = 0 
            players[userid]['drugged']      = 0 
            players[userid]['blind']        = 0 
            gamethread.cancelDelayed('beacon_%s'%userid) 
            gamethread.cancelDelayed('timebomb_%s'%userid) 
            gamethread.cancelDelayed('freezebomb_%s'%userid) 
            gamethread.cancelDelayed('firebomb_%s'%userid) 
            es.setplayerprop(userid, "CBaseEntity.movetype", 2)
            es.setplayerprop(userid, 'CBasePlayer.m_iDefaultFOV', 90)
    def push(self, horizontal, vertical, vertical_override=False):
        """Forcefully move the player in a given direction.

        Keyword Arguments:
        horizontal - the horizontal component value to move the player.
        vertical - the vertical component value to move the player.
        vertical_override (Keyword Default: False) - whether or not the
        vertical value should take precedence in calculating the vector to
        move the player through.

        """
        x, y, z = _get_vector(self.user_ID)
        horizontal_x = float(horizontal * x)
        horizontal_y = float(horizontal * y)
        if not vertical_override:
            vertical_z = 0
        else:
            vertical_z = vertical
        es.setplayerprop(self.user_ID,
                         "CBasePlayer.localdata.m_vecBaseVelocity",
                         "%f,%f,%f" %(horizontal_x, horizontal_y, vertical_z))
Exemple #28
0
def player_death(ev):
    userid = int(ev['userid'])
    attacker = int(ev['attacker'])
    headshot = bool(ev['headshot'])
    weapon = str(ev['weapon'])
    steamid = getplayerid(userid)
    attackersteamid = getplayerid(attacker)
    es.setplayerprop(attacker, _moneyprop, es.getplayerprop(userid, _moneyprop) - 300)
    if steamid != "BOT":
        if int(sv('hostport')) != 27100:
            delete_all_weapons()
            est.spawn("#a")
            es.set("score", 0)
            es.set("combo", 0)
            
    if attacker > 0 and attacker != userid:
        if attackersteamid != "BOT":
            combo, score = int(sv('combo')), int(sv('score'))
            
            gamethread.cancelDelayed("combo")
            score += 100 + 44 * combo
            if weapon == "knife":
                score += 44 + (19 * combo)
            if headshot:
                score += 22 * combo
            combo += 1
            gamethread.delayedname(4.4, "combo", es.set, ("combo", 0))

            es.set("combo", combo)
            es.set("score", score)
            refresh_hudhint()
            
            gore = bool(es.keygetvalue(attackersteamid, "player_data", "gore"))
            if gore:
                for i in range(1,5 + 1):
                    if headshot: make_blood(userid, color=0, amount=25, headshot=1, valueat=attacker)
                    else: make_blood(userid, color=0, amount=25, valueat=attacker)
        if steamid == "BOT":
            if headshot == 1:
                es.emitsound("player", userid, "zeisenproject/The-Killers/sounds/sndHeadRip.wav", 1.0, 1.0)
def giveObject(adminid, userid):
    command = admins[adminid]['command']
    if command.startswith(('health_', 'cash_')):
        prop   = 'CBasePlayer.m_iHealth' if command.startswith('health_') else 'CCSPlayer.m_iAccount'
        amount = int(command.replace('health_', '').replace('cash_', ''))
        currentAmount  = es.getplayerprop(userid, prop)
        es.setplayerprop(userid, prop, currentAmount + amount)
        # issue #70 :: value formatting error
        strInt = str(amount)
        thousands = []
        while strInt:
            thousands.append(strInt[-3:])
            strInt = strInt[:-3]
        formattedAmount = ",".join(reversed(thousands))
        tokens = {}
        tokens['admin'] = es.getplayername(adminid)
        tokens['user']  = es.getplayername(userid)
        tokens['item']  =  '#green%s #lightgreen%s' % (formattedAmount, 'cash' if command.startswith('cash_') else 'health')
        for tellplayer in playerlib.getPlayerList('#human'):
            es.tell(int(tellplayer), '#multi', xalanguage('admin give', tokens, tellplayer.get("lang")))
        xaadmingive.logging.log("has given player %s %s" % (tokens['user'], tokens['item']), adminid, True) 
    else:
        weaponName = _remove_prefix(command)
        fullName   = _prepend_prefix(command)
        if int(admingive_stripfirst) == 1:
            if fullName in weaponlib.getWeaponNameList('#secondary'):
                weapon = playerlib.getPlayer(userid).get('secondary')
            else:
                weapon = playerlib.getPlayer(userid).get('primary')
            if weapon:
                _remove_weapon(userid, weapon)
        es.delayed(0.1, 'es_xgive %s %s' % (userid, fullName))
        if str(admingive_anonymous) == '0':
            tokens = {}
            tokens['admin'] = es.getplayername(adminid)
            tokens['user']  = es.getplayername(userid)
            for tellplayer in playerlib.getPlayerList('#human'):
                tokens['item'] = '#greena #lightgreen%s' % weaponName
                es.tell(int(tellplayer), '#multi', xalanguage('admin give', tokens, tellplayer.get("lang")))
        xaadmingive.logging.log("has given player %s %s" % (tokens['user'], tokens['item']), adminid, True)            
def _punishment_slap(userid, adminid, args, force):
    if len(args) > 1:
        health = args[1]
    else:
        health = xa_slap_to_damage
    if str(xa_adminslap_anonymous) == '0' and not force:
        tokens = {}
        tokens['admin'] = es.getplayername(adminid)
        tokens['user'] = es.getplayername(userid)
        tokens['health'] = str(health)
        for user in playerlib.getPlayerList():
            es.tell(int(user),
                    xalanguage("admin slap", tokens, user.get("lang")))
    player = playerlib.getPlayer(userid)
    player.set('health', int(health))
    es.emitsound('player', userid, 'player/damage2.wav', '1.0', '0.5')
    es.setplayerprop(
        userid, 'CCSPlayer.baseclass.localdata.m_vecBaseVelocity',
        '%s,%s,%s' % (random.randint(-255, 255), random.randint(
            -255, 255), random.randint(-100, 255)))
    if player.get('health') <= 0:
        player.kill()
Exemple #31
0
def stageMenu_select(userid, choice, popupid):
	if (es.getplayerteam(userid) == 1): return
	if (userid in started):
		started.remove(userid)
	for a in range(1,26):
		if (choice == '%s' % a):
			entities = es.createentitylist('info_teleport_destination')
			for b in entities:
				if (es.entitygetvalue(b, 'targetname') == "timer_stage%s" % a):
					x = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[0]") * -1 / 2
					y = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[1]") * -1 / 2
					z = es.getplayerprop(userid, "CBasePlayer.localdata.m_vecVelocity[2]") * -1 / 2
					es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", es.createvectorstring(x, y, z))
					gamethread.delayed(0.01, es.setplayerprop, (userid, "CBasePlayer.localdata.m_vecBaseVelocity", es.createvectorstring(x, y, z)))
					startPos = es.entitygetvalue(b, 'origin').split(' ')
					startAng = es.entitygetvalue(b, 'angles').split(' ')
					es.setpos(userid, startPos[0], startPos[1], startPos[2])
					es.setang(userid, startAng[0], startAng[1], startAng[2])
	if (int(choice) > 7):
		gamethread.delayed(0.5, stageMenu.sendPage, (userid, (math.ceil(float(choice) / float(7)))))
	else:
		gamethread.delayed(0.5, stageMenu.send, (userid))
Exemple #32
0
def player_jump(event_var):
    """
    Executed when a player jumps. Get the level and set their velecity to
    a greater amount.
    """
    userid = event_var['userid']
    player = sourcerpg.players[userid]
    level = player[skillName]
    if level:
        """ Acqure their current vectors """
        horizontalVector = es.getplayerprop(
            userid, 'CBasePlayer.localdata.m_vecVelocity[0]')
        verticalVector = es.getplayerprop(
            userid, 'CBasePlayer.localdata.m_vecVelocity[1]')
        """ Multiply them by the level then by a quater so it's not such a huge difference """
        horizontalVector = (level * horizontalVector) * 0.25
        verticalVector = (level * verticalVector) * 0.25
        """ Create a string vector which is used by valve """
        vector = "%s,%s,0" % (horizontalVector, verticalVector)
        """ Assign the new vector to the players velocity """
        es.setplayerprop(userid, 'CBasePlayer.localdata.m_vecBaseVelocity',
                         vector)
Exemple #33
0
def set_boost(userid, cp):
    steamid = es.getplayersteamid(userid)
    if cp == 0:
        client[steamid]["save_speed_stack"] += 1
        myNewVector2 = es.createvectorstring(client[steamid]['save_speed'][0], client[steamid]['save_speed'][1],
                                             client[steamid]['save_speed'][2])
        # es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector)
        es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector2)
        if client[steamid]["save_speed_stack"] > 1:
            esc.tell(userid,
                     "#124,252,0[ Trikz] #245,0,61Speed has now been stacked (multiplier X%s" %
                     client[steamid]["save_speed_stack"])
        client[steamid]["save_speed_stack"] -= 1
    else:
        client[steamid]["save_speed_stack_2"] += 1
        myNewVector2 = es.createvectorstring(client[steamid]['save_speed_2'][0], client[steamid]['save_speed_2'][1],
                                             client[steamid]['save_speed_2'][2])
        # es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector)
        es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector2)
        if client[steamid]["save_speed_stack_2"] > 1:
            esc.tell(userid,
                     "#124,252,0[ Trikz] #245,0,61Speed has now been stacked (multiplier X%s" %
                     client[steamid]["save_speed_stack"])
        client[steamid]["save_speed_stack_2"] -= 1
Exemple #34
0
def pushto(users, location, force):
    '''Push a player to the given location...'''
    
    # Get the given Vector...
    vector = vecmath.Vector(location)
    
    # Loop through all matching players...
    for userid in _get_matching_players(users):
        
        # Is the player dead?
        if es.getplayerprop(userid, 'CBasePlayer.pl.deadflag'):
            
            # Don't go further...
            continue
            
        # Get the vector from the player location...
        vector -= vecmath.Vector(es.getplayerlocation(userid))
        
        # Multiply the force...
        vector *= float(force)
        
        # Push the player...
        es.setplayerprop(userid, 'CBasePlayer.localdata.m_vecBaseVelocity',
            es.createvectorstring(*vector))
Exemple #35
0
    def healTeamates(self):
        """
        This is the actual function which will get the current level, and
        loop through all team players and if their positions are within range
        increment their armor / health.
        """
        x, y, z = es.getplayerlocation(self.userid)
        team = es.getplayerteam(self.userid)
        player = sourcerpg.players[self.userid]
        if team not in (2, 3):
            return
        if player is not None:
            level = player[skillName]
            if level:
                """ The user is at least level one in the medic skill """
                distance = (int(minDistance) +
                            (level - 1) * float(distanceInc))
                healing = int(healingInc) * level
                armor = 0

                for teamPlayer in filter(
                        lambda x: es.getplayerteam(x) == team and not es.
                        getplayerprop(x, 'CBasePlayer.pl.deadflag'),
                        es.getUseridList()):
                    """ Loop through all the living players on their team """
                    xx, yy, zz = es.getplayerlocation(teamPlayer)
                    if ((x - xx)**2 + (y - yy)**2 +
                        (z - zz)**2)**0.5 <= distance:
                        health = es.getplayerprop(teamPlayer,
                                                  'CBasePlayer.m_iHealth')
                        sourcerpgPlayer = sourcerpg.players[teamPlayer]
                        if health < sourcerpgPlayer['maxHealth']:
                            if health + healing > sourcerpgPlayer['maxHealth']:
                                armor = sourcerpgPlayer[
                                    'maxHealth'] - health - healing
                                es.setplayerprop(teamPlayer,
                                                 'CBasePlayer.m_iHealth',
                                                 sourcerpgPlayer['maxHealth'])
                            else:
                                es.setplayerprop(teamPlayer,
                                                 'CBasePlayer.m_iHealth',
                                                 healing + health)
                        else:
                            armor = healing

                        if armor and self.gameName == "cstrike":
                            """ if we're playing CSS and we have armor to increment, do the task """
                            maxArmor = sourcerpgPlayer['maxArmor']
                            currentArmor = es.getplayerprop(
                                teamPlayer, 'CCSPlayer.m_ArmorValue')
                            currentArmor += armor
                            if currentArmor > maxArmor:
                                currentArmor = maxArmor
                            es.setplayerprop(teamPlayer,
                                             'CCSPlayer.m_ArmorValue',
                                             currentArmor)
Exemple #36
0
def player_spawn(ev):
    PlayerP = playerlib.getPlayer(ev['userid'])
    if (ev['es_userteam'] == "2"):
        es.setplayerprop(ev['userid'], "CBasePlayer.m_iHealth", 4000)
        es.setplayerprop(ev['userid'],
                         "CBasePlayer.localdata.m_flLaggedMovementValue", 1.2)
        es.server.queuecmd("es_xgive %s %s" %
                           (ev['userid'], "player_weaponstrip"))
        es.server.queuecmd("es_xfire %s player_weaponstrip strip" %
                           (ev['userid']))
        es.server.queuecmd("es_xfire %s player_weaponstrip kill" %
                           (ev['userid']))
        es.server.queuecmd("es_xgive %s %s" % (ev['userid'], "weapon_knife"))
    if (ev['es_userteam'] == "3"):
        es.setplayerprop(ev['userid'], "CBasePlayer.m_iHealth", 100)
        es.cexec(ev['userid'], "play vo/npc/male01/zombies01.wav")
        ammo(ev['userid'])
Exemple #37
0
def _player_spawn(ev):
	userid = int(ev['userid'])
	es.cexec(userid, 'r_screenoverlay off')
	es.setplayerprop(userid, 'CBasePlayer.m_iDefaultFOV', 90)
	es.setplayerprop(userid, 'CBasePlayer.m_iFOV', 90)
Exemple #38
0
def _select_target(userid, choice, popupid):
    if not admins.has_key(userid):
        return
    if choice == "player":
        giveplayermenu = popuplib.construct("giveplayermenu", "players",
                                            "#alive")
        giveplayermenu.settitle(xalanguage["choose player"])
        giveplayermenu.menuselectfb = _select_player
        giveplayermenu.send(userid)
    else:
        if choice == "team3":
            playerlist = filter(lambda x: es.getplayerteam(x) == 3,
                                es.getUseridList())
        elif choice == "team2":
            playerlist = filter(lambda x: es.getplayerteam(x) == 2,
                                es.getUseridList())
        elif choice == "bots":
            playerlist = filter(lambda x: es.isbot(x), es.getUseridList())
        elif choice == "all":
            playerlist = es.getUseridList()
        playerlist = filter(
            lambda x: not es.getplayerprop(x, 'CBasePlayer.pl.deadflag'),
            playerlist)
        for player in playerlist:
            command = admins[userid]['command']
            if command.startswith('weapon_') or command.startswith('item_'):
                if str(admingive_anonymous) == '0':
                    tokens = {}
                    tokens['admin'] = es.getplayername(userid)
                    tokens['user'] = es.getplayername(player)
                    for myplayer in playerlib.getPlayerList('#human'):
                        tokens['item'] = '#greena #lightgreen' + str(
                            xalanguage(command.replace('weapon_', '').replace(
                                'item_', ''),
                                       lang=myplayer.get("lang")))
                        es.tell(
                            int(myplayer), '#multi',
                            xalanguage('admin give', tokens,
                                       myplayer.get("lang")))
                if 'vest' not in command:
                    if str(admingive_stripfirst) == '1':
                        if command.replace('weapon_', '') in pistols:
                            secondary = playerlib.getPlayer(player).get(
                                'secondary')
                            if secondary:
                                RemoveWeapon(player, secondary)
                        elif command.replace(
                                'weapon_', '') in (list(shotguns) +
                                                   list(smgs) + list(rifles) +
                                                   list(snipers) + ['m249']):
                            primary = playerlib.getPlayer(player).get(
                                'primary')
                            if primary:
                                RemoveWeapon(player, primary)
                    gamethread.delayed(0.1, es.server.queuecmd,
                                       'es_xgive %s %s' % (player, command))
                else:
                    if 'helm' in command:
                        es.setplayerprop(player, 'CCSPlayer.m_bHasHelmet', 1)
                    es.setplayerprop(player, 'CCSPlayer.m_ArmorValue', 100)
            elif command.startswith('health_'):
                if str(admingive_anonymous) == '0':
                    tokens = {}
                    tokens['admin'] = es.getplayername(userid)
                    tokens['user'] = es.getplayername(player)
                    health = command.replace('health_', '')
                    c = ''
                    while len(health) > 3:
                        c = ',' + health[-3:]
                        health = health[0:-3]
                    c = health + c
                    tokens['item'] = '#green' + c + ' #lightgreenhealth'
                    for myplayer in playerlib.getPlayerList('#human'):
                        es.tell(
                            int(myplayer), '#multi',
                            xalanguage('admin give', tokens,
                                       myplayer.get("lang")))
                es.setplayerprop(
                    player, 'CBasePlayer.m_iHealth',
                    es.getplayerprop(player, 'CBasePlayer.m_iHealth') +
                    int(command.replace('health_', '')))
            elif command.startswith('cash_'):
                if str(admingive_anonymous) == '0':
                    tokens = {}
                    tokens['admin'] = es.getplayername(userid)
                    tokens['user'] = es.getplayername(player)
                    cash = command.replace('cash_', '')
                    c = ''
                    while len(cash) > 3:
                        c = ',' + cash[-3:]
                        cash = cash[0:-3]
                    c = '$' + cash + c
                    tokens['item'] = '#green' + c
                    for myplayer in playerlib.getPlayerList('#human'):
                        es.tell(
                            int(myplayer), '#multi',
                            xalanguage('admin give', tokens,
                                       myplayer.get("lang")))
                es.setplayerprop(
                    player, 'CCSPlayer.m_iAccount',
                    es.getplayerprop(player, 'CCSPlayer.m_iAccount') +
                    int(command.replace('cash_', '')))
Exemple #39
0
def rpg_respawn(userid):
    if allowed:
        es.setplayerprop(userid, 'CCSPlayer.m_iPlayerState', 0)
        es.setplayerprop(userid, 'CCSPlayer.baseclass.m_lifeState', 512)
        es.server.queuecmd('es_spawnplayer %s' % userid)
Exemple #40
0
def _select_player(userid, choice, popupid):
    command = admins[userid]['command']
    if command.startswith('weapon_') or command.startswith('item_'):
        if 'vest' not in command:
            if str(admingive_stripfirst) == '1':
                if command.replace('weapon_', '') in pistols:
                    secondary = playerlib.getPlayer(choice).get('secondary')
                    if secondary:
                        RemoveWeapon(choice, secondary)
                elif command.replace('weapon_',
                                     '') in (list(shotguns) + list(smgs) +
                                             list(rifles) + list(snipers) +
                                             ['m249']):
                    primary = playerlib.getPlayer(choice).get('primary')
                    if primary:
                        RemoveWeapon(choice, primary)
            gamethread.delayed(0.1, es.server.queuecmd,
                               'es_xgive %s %s' % (choice, command))
        else:
            if 'helm' in command:
                es.setplayerprop(choice, 'CCSPlayer.m_bHasHelmet', 1)
            es.setplayerprop(choice, 'CCSPlayer.m_ArmorValue', 100)
        if str(admingive_anonymous) == '0':
            tokens = {}
            tokens['admin'] = es.getplayername(userid)
            tokens['user'] = es.getplayername(choice)
            for myplayer in playerlib.getPlayerList('#human'):
                tokens['item'] = '#greena #lightgreen' + str(
                    xalanguage(command.replace('weapon_', '').replace(
                        'item_', ''),
                               lang=myplayer.get("lang")))
                es.tell(int(myplayer), '#multi',
                        xalanguage('admin give', tokens, myplayer.get("lang")))
    elif command.startswith('health_'):
        if str(admingive_anonymous) == '0':
            tokens = {}
            tokens['admin'] = es.getplayername(userid)
            tokens['user'] = es.getplayername(choice)
            health = command.replace('health_', '')
            c = ''
            while len(health) > 3:
                c = ',' + health[-3:]
                health = health[0:-3]
            c = health + c
            tokens['item'] = '#green' + c + ' #lightgreenhealth'
            for myplayer in playerlib.getPlayerList('#human'):
                es.tell(int(myplayer), '#multi',
                        xalanguage('admin give', tokens, myplayer.get("lang")))
        es.setplayerprop(
            choice, 'CBasePlayer.m_iHealth',
            es.getplayerprop(choice, 'CBasePlayer.m_iHealth') +
            int(command.replace('health_', '')))
    elif command.startswith('cash_'):
        if str(admingive_anonymous) == '0':
            tokens = {}
            tokens['admin'] = es.getplayername(userid)
            tokens['user'] = es.getplayername(choice)
            cash = command.replace('cash_', '')
            c = ''
            while len(cash) > 3:
                c = ',' + cash[-3:]
                cash = cash[0:-3]
            c = '$' + cash + c
            tokens['item'] = '#green' + c
            for myplayer in playerlib.getPlayerList('#human'):
                es.tell(int(myplayer), '#multi',
                        xalanguage('admin give', tokens, myplayer.get("lang")))
        es.setplayerprop(
            choice, 'CCSPlayer.m_iAccount',
            es.getplayerprop(choice, 'CCSPlayer.m_iAccount') +
            int(command.replace('cash_', '')))
Exemple #41
0
def cp_menu_select(userid, choice, popupid):
    steamid = es.getplayersteamid(userid)
    velocity_x = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[0]'))
    velocity_y = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[1]'))
    velocity_z = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[2]'))
    timer = es.import_addon("queue_timer/plugins/timer")
    if timer.CheckPartner(userid):
        timer_id = timer.player[steamid]["timer_id"]
        state = timer.timer[timer_id]["state"]

    if int(choice) == 1:
        if timer.CheckPartner(userid):
            cp_menu(userid)
        else:
            player = playerlib.getPlayer(userid)
            client[steamid]["view_angles"] = player.getViewAngle()
            view_angles = client[steamid]["view_angles"]
            client[steamid]['snapshot_1'] = es.getplayerlocation(userid)
            client[steamid]['save_speed'] = (velocity_x, velocity_y, velocity_z)
            esc.tell(userid,
                     '#124,252,0[ Trikz] #snowYou have saved your #yellow1st #245,61,0checkpoint')
            cp_menu(userid)

    if int(choice) == 2:
        if timer.CheckPartner(userid):
            cp_menu(userid)
        else:
            if client[steamid]['snapshot_1'] != (0, 0, 0):
                current_location = es.getplayerlocation(userid)
                location = client[steamid]['snapshot_1']
                distance = vecmath.distance(current_location, location)
                player = playerlib.getPlayer(userid)
                view_angles = client[steamid]["view_angles"]
                timer.TimerSolo_Stop(userid)
                client[steamid]["time"] = time.time()
                player.setColor(255, 255, 255, 255)
                player.noblock(0)
                if client[steamid]["stop_speed"] == "On":
                    es.server.queuecmd('es_setpos %s %s %s %s' % (userid, location[0], location[1], location[2]))

                    velocity_x = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[0]'))
                    velocity_y = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[1]'))
                    velocity_z = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[2]'))
                    myNewVector2 = es.createvectorstring(-velocity_x, -velocity_y, -velocity_z)

                    es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector2)

                    gamethread.delayed(0.025, set_boost, args=(userid, 0))


                else:
                    es.server.queuecmd('es_setpos %s %s %s %s' % (userid, location[0], location[1], location[2]))
                    velocity_x = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[0]'))
                    velocity_y = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[1]'))
                    velocity_z = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[2]'))
                    myNewVector2 = es.createvectorstring(-velocity_x, -velocity_y, -velocity_z)
                    es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector2)

                if client[steamid]["save_angles"] == "On":
                    es.server.queuecmd('es_xsetang %s %s %s %s' % (
                    userid, str(view_angles[0]), str(view_angles[1]), str(view_angles[2])))

            else:
                esc.tell(userid, '#124,252,0[ Trikz] #245,0,61You have not set your 1st checkpoint.')
            cp_menu(userid)

    if int(choice) == 3:
        if timer.CheckPartner(userid):
            cp_menu(userid)
        else:
            player = playerlib.getPlayer(userid)
            client[steamid]["view_angles_2"] = player.getViewAngle()
            client[steamid]['snapshot_2'] = es.getplayerlocation(userid)
            client[steamid]['save_speed_2'] = (velocity_x, velocity_y, velocity_z)
            esc.tell(userid,
                     '#124,252,0[ Trikz] #snowYou have saved your #yellow2nd #245,61,0checkpoint')
            cp_menu(userid)

    if int(choice) == 4:
        if timer.CheckPartner(userid):
            cp_menu(userid)
        else:
            if client[steamid]['snapshot_2'] != (0, 0, 0):
                current_location = es.getplayerlocation(userid)
                location = client[steamid]['snapshot_2']
                distance = vecmath.distance(current_location, location)
                player = playerlib.getPlayer(userid)
                view_angles = client[steamid]["view_angles_2"]
                client[steamid]["time"] = time.time()
                timer.TimerSolo_Stop(userid)
                player.setColor(255, 255, 255, 255)
                player.noblock(0)
                if client[steamid]["stop_speed"] == "On":
                    es.server.queuecmd('es_setpos %s %s %s %s' % (userid, location[0], location[1], location[2]))

                    velocity_x = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[0]'))
                    velocity_y = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[1]'))
                    velocity_z = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[2]'))
                    myNewVector2 = es.createvectorstring(-velocity_x, -velocity_y, -velocity_z)

                    es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector2)

                    gamethread.delayed(0.025, set_boost, args=(userid, 1))
                else:

                    es.server.queuecmd('es_setpos %s %s %s %s' % (userid, location[0], location[1], location[2]))

                    velocity_x = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[0]'))
                    velocity_y = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[1]'))
                    velocity_z = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[2]'))
                    myNewVector2 = es.createvectorstring(-velocity_x, -velocity_y, -velocity_z)
                    es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector2)

                if client[steamid]["save_angles"] == "On":
                    es.server.insertcmd('es_xsetang %s %s %s %s' % (
                    userid, str(view_angles[0]), str(view_angles[1]), str(view_angles[2])))

            else:
                esc.tell(userid, '#124,252,0[ Trikz] #245,0,61You have not set your 2nd checkpoint.')
            cp_menu(userid)

    if int(choice) == 5:
        if client[steamid]['stop_speed'] == "Off":
            esc.tell(userid,
                     '#124,252,0[ Trikz] #snowYour speed will now be restored when teleporting!')
            client[steamid]['stop_speed'] = "On"
            cp_menu(userid)
        else:
            esc.tell(userid, '#124,252,0[ Trikz] #snowYou will not save speed anymore!')
            client[steamid]['stop_speed'] = "Off"
            cp_menu(userid)

    if int(choice) == 6:
        if client[steamid]['save_angles'] == "Off":
            esc.tell(userid, '#124,252,0[ Trikz] #snowYou will now save ur angles!')
            client[steamid]['save_angles'] = "On"
            cp_menu(userid)
        else:
            esc.tell(userid, '#124,252,0[ Trikz] #snowYou angles wont be saved!')
            client[steamid]['save_angles'] = "Off"
            cp_menu(userid)

    if int(choice) == 8:
        trikz_menu(userid)
def player_say(event_var):
    """ Executed when a player talks. Run the chat commands """
    message = event_var['text'].strip()
    userid = int(event_var['userid'])
    if message == "!surftimer":
        """ Admin menu """
        if isAuthed(userid):
            adminPopup.send(userid)

    elif message.startswith("!wr"):
        """
		Display world record time to all players
		"""
        sortedList = mk_sortDict(str(currentMap))
        es.tell(
            userid, "#multi",
            "#green[Surf Timer] #default- #lightgreen%s holds the world record with time #default%s#lightgreen."
            % (mapDicts[str(currentMap)][sortedList[0][0]]["name"],
               formatTime(sortedList[0][1])))

    elif message.startswith("!top"):
        """ 
		Display a popup with all times for that map, or if a map
		was present as an argument, display for that map.
		
		!top // display current map records
		!top <map name> // displays <map name>'s current records 
		"""
        if message.count(" "):
            mapName = " ".join(message.split()[1:])
        else:
            mapName = str(currentMap)
        if mapName not in mapDicts:
            es.tell(
                userid, "#multi",
                "#green[Surf Timer] #default- #lightgreenSorry, we cannot find %s on the server."
                % mapName)
            return
        if "startpos" not in mapDicts[mapName]: return
        if "endpos" not in mapDicts[mapName]: return
        topMenu = popuplib.easymenu("topMenu%s" % userid, "_popup_choice",
                                    None)
        topMenu.settitle("[Map Records : %s]" % mapName)
        sortedList = mk_sortDict(mapName)
        if sortedList:
            lx = 1
            for top in sortedList:
                topMenu.addoption(
                    'an', "Rank " + str(lx) + ": " +
                    mapDicts[mapName][top[0]]["name"] + " " +
                    formatTime(mapDicts[mapName][top[0]]["time"]))
                lx += 1
        else:
            topMenu.addoption('an', "[No places recorded]")
        topMenu.send(userid)

    elif message.startswith("!pr"):
        """ 
		Similar to a rank command. Tell the user their time or another person's
		time on that current map.
		
		!pr // displays their time for that map
		!pr <userid/name/steamid> // displays the user's time for that map
		
		TODO: Add in an additional [map] argument and test for the last argument
			and see if it's a dict item. If so, then they want information for
			that map.
		"""
        mapName = str(currentMap)
        if mapName not in mapDicts: return
        if "startpos" not in mapDicts[mapName]: return
        if "endpos" not in mapDicts[mapName]: return
        if message.count(" "):
            message = " ".join(message.split()[1:])
            target = es.getuserid(message)
        else:
            target = userid
        if not target:
            es.tell(
                userid, "#multi",
                "#green[Surf Timer] #default- #lightgreenSorry, we cannot find %s on the server."
                % message)
            return
        steamid = es.getplayersteamid(target)
        (_pos, _len) = mk_sortDictIndex(mapName, steamid)
        for player in es.getUseridList():
            if (_pos > 0):
                sortedList = mk_sortDict(str(currentMap))
                dictObject = mapDicts[mapName][steamid]
                es.tell(
                    player, "#multi",
                    "#green[Surf Timer] #default- #lightgreen%s is ranked #default%s/%s #lightgreenwith time #default%s #lightgreen(#default+%s#lightgreen)."
                    % (dictObject['name'], _pos, _len,
                       formatTime(dictObject['time']),
                       formatTime(dictObject['time'] - sortedList[0][1])))
            else:
                es.tell(
                    player, "#multi",
                    "#green[Surf Timer] #default- #lightgreen%s has not yet completed this map."
                    % es.getplayername(target))

    elif message.startswith("!stage"):
        """
		Opens a stage selection menu
		"""
        mapName = str(currentMap)
        global stageMenu
        stageMenu = popuplib.easymenu('stageMenu', '_popup_choice',
                                      stageMenu_select)
        stageMenu.settitle("[Stage Menu : %s]" % (mapName))
        entities = es.createentitylist('info_teleport_destination')
        """ Create Stage Menu """
        stages = 0
        for a in range(1, 26):
            for b in entities:
                if (es.entitygetvalue(b, 'targetname') == "timer_stage%s" % a):
                    stageMenu.addoption('%s' % a, "Stage %s" % a)
                    stages += 1
        if (stages > 1):
            stageMenu.send(userid)
            if (userid in started):
                es.tell(
                    userid, "#green",
                    "Teleporting to a stage while the timer is active will clear your time"
                )
        else:
            es.tell(
                userid, "#multi",
                "#green[Surf Timer] #default- #lightgreenThis is not a staged map."
            )

    elif message.startswith("!bonus"):
        """
		Opens a bonus selection menu
		"""
        mapName = str(currentMap)
        global bonusMenu
        bonusMenu = popuplib.easymenu('bonusMenu', '_popup_choice',
                                      bonusMenu_select)
        bonusMenu.settitle("[Bonus Menu : %s]" % (mapName))
        entities = es.createentitylist('info_teleport_destination')
        bonuses = 0
        """ Set up bonus menu and count the number of bonuses (up to 3 bonuses) """
        for a in range(1, 4):
            for b in entities:
                if (es.entitygetvalue(b, 'targetname') == "timer_bonus%s" % a):
                    bonuses += 1
                    bonusMenu.addoption('%s' % a, "Bonus %s" % a)
        if (bonuses > 1):
            bonusMenu.send(userid)
        elif (bonuses == 1):
            entities = es.createentitylist('info_teleport_destination')
            for i in entities:
                if (es.entitygetvalue(i, 'targetname') == "timer_bonus1"):
                    x = es.getplayerprop(
                        userid,
                        "CBasePlayer.localdata.m_vecVelocity[0]") * -1 / 2
                    y = es.getplayerprop(
                        userid,
                        "CBasePlayer.localdata.m_vecVelocity[1]") * -1 / 2
                    z = es.getplayerprop(
                        userid,
                        "CBasePlayer.localdata.m_vecVelocity[2]") * -1 / 2
                    es.setplayerprop(
                        userid, "CBasePlayer.localdata.m_vecBaseVelocity",
                        es.createvectorstring(x, y, z))
                    gamethread.delayed(
                        0.01, es.setplayerprop,
                        (userid, "CBasePlayer.localdata.m_vecBaseVelocity",
                         es.createvectorstring(x, y, z)))
                    startPos = es.entitygetvalue(i, 'origin').split(' ')
                    startAng = es.entitygetvalue(i, 'angles').split(' ')
                    es.setpos(userid, startPos[0], startPos[1], startPos[2])
                    es.setang(userid, startAng[0], startAng[1], startAng[2])
        else:
            es.tell(
                userid, "#multi",
                "#green[Surf Timer] #default- #lightgreenCurrent map has no bonuses."
            )
Exemple #43
0
def rpg_unfreeze(userid):
    player = playerlist[userid]
    es.setplayerprop(player.userid, 'CBaseAnimating.m_nHitboxSet', 0)
    es.setplayerprop(userid, 'CBaseEntity.movetype', 2)
    player.player.setColor(*player.properties['color'])
Exemple #44
0
def speed(userid, value):
    es.setplayerprop(userid, "CBasePlayer.localdata.m_flLaggedMovementValue",
                     value)
 def unfreeze(self):
     """Unfreeze the player, allowing them to move again."""
     es.setplayerprop(self.user_ID, "CBaseEntity.movetype", 2)
def _set_model(player, value):
    colour = tools.get_colour(player.index)
    es.setplayerprop(player.index, "CBaseEntity.m_nModelIndex",
                     es.precachemodel("models/%s" % value))
    tools.set_colour(player.index, *colour)
Exemple #47
0
def player_blind(ev):
    if (ev['es_userteam'] == "3"):
        es.setplayerprop(ev['userid'], "CCSPlayer.m_flFlashDuration", "1")
        es.setplayerprop(ev['userid'], "CCSPlayer.m_flFlashMaxAlpha", "1")
 def _set_ammo(self, value):
     owner = self.owner
     if self.owner is None:
         raise WeaponsError("weapon does not have an owner")
     return es.setplayerprop(owner.user_ID, self.weapon_type.ammo_property,
                             value)
Exemple #49
0
def sm2es_keyPress(ev):
    userid = ev["userid"]
    timer = es.import_addon("queue_timer/plugins/timer")
    if es.exists("userid", userid):

        if ev['status'] == '0':
            return

        ply = playerlib.getPlayer(userid)

        if ply.isdead:
            return

        velocity_x = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[0]'))
        velocity_y = float(es.getplayerprop(userid, 'CBasePlayer.localdata.m_vecVelocity[1]'))
        steamid = es.getplayersteamid(userid)

        if ev["command"] == 'IN_MOVELEFT':
            if not ply.onGround() and client[steamid]["strafe_sync"] == "On":
                if not client[steamid]["view_angle"] == ply.viewVector():
                    if not client[steamid]["last_k"] == 0:
                        if timer.CheckPartner(userid):
                            timer_id = timer.player[steamid]["timer_id"]
                            state = timer.timer[timer_id]["state"]
                            if state == 2:
                                return
                            else:
                                myNewVector = es.createvectorstring((velocity_x ** 0.1) * 18, (velocity_y ** 0.1) * 18)
                                myNewVector2 = es.createvectorstring((velocity_x ** 0.1) * 18, (velocity_y ** 0.1) * 18)
                                es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector)
                                es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector2)
                                client[steamid]["view_angle"] = ply.viewVector()
                                client[steamid]["last_k"] = 0
                        else:
                            myNewVector = es.createvectorstring((velocity_x ** 0.1) * 18, (velocity_y ** 0.1) * 18)
                            myNewVector2 = es.createvectorstring((velocity_x ** 0.1) * 18, (velocity_y ** 0.1) * 18)
                            es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector)
                            es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector2)
                            client[steamid]["view_angle"] = ply.viewVector()
                            client[steamid]["last_k"] = 0
        if ev['command'] == 'IN_MOVERIGHT':
            if not ply.onGround() and client[steamid]["strafe_sync"] == "On":
                if not client[steamid]["view_angle"] == ply.viewVector():
                    if not client[steamid]["last_k"] == 1:
                        if timer.CheckPartner(userid):
                            timer_id = timer.player[steamid]["timer_id"]
                            state = timer.timer[timer_id]["state"]
                            if state == 2:
                                return
                            else:
                                myNewVector = es.createvectorstring((velocity_x ** 0.1) * 18, (velocity_y ** 0.1) * 18)
                                myNewVector2 = es.createvectorstring((velocity_x ** 0.1) * 18, (velocity_y ** 0.1) * 18)
                                es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector)
                                es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector2)
                                client[steamid]["view_angle"] = ply.viewVector()
                                client[steamid]["last_k"] = 0
                        else:
                            myNewVector = es.createvectorstring((velocity_x ** 0.1) * 18, (velocity_y ** 0.1) * 18)
                            myNewVector2 = es.createvectorstring((velocity_x ** 0.1) * 18, (velocity_y ** 0.1) * 18)
                            es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector)
                            es.setplayerprop(userid, "CBasePlayer.localdata.m_vecBaseVelocity", myNewVector2)
                            client[steamid]["view_angle"] = ply.viewVector()
                            client[steamid]["last_k"] = 0
Exemple #50
0
def RunCmd(args):
    ucmd = spe.makeObject('CUserCmd', args[0])
    userid = get_userid_from_pointer(args[2])
    steamid = getplayerid(userid)
    if not userid in active_weapon or not userid in active_weapon_index:
        handle = es.getplayerprop(userid,
                                  "CBaseCombatCharacter.m_hActiveWeapon")
        index = es.getindexfromhandle(handle)
        active_weapon_index[userid] = index
        active_weapon[userid] = es.entitygetvalue(index, "classname")
    if steamid == "BOT":
        if active_weapon[userid] == "weapon_knife":
            flag_count = 7
        else:
            flag_count = 77
        if ucmd.buttons & IN_ATTACK or ucmd.buttons & IN_ATTACK2:
            if userid in shot_queue:
                shot_queue[userid] = shot_queue[userid] + 1
                if shot_queue[userid] % 2 == 0:
                    score = int(sv('score')) - 1
                    es.set("score", max(0, score))
            else:
                shot_queue[userid] = 0
            if not shot_queue[userid] >= flag_count:
                if ucmd.buttons & IN_ATTACK: ucmd.buttons &= ~IN_ATTACK
                elif ucmd.buttons & IN_ATTACK2: ucmd.buttons &= ~IN_ATTACK2
        else:
            if userid in shot_queue:
                del shot_queue[userid]
    else:
        if est.isalive(userid):
            if ucmd.impulse % 256 == 100:
                ucmd.impulse = 0
                if est.isalive(userid):
                    ObserverMode = es.getplayerprop(
                        userid, "CCSPlayer.baseclass.m_iObserverMode")
                    if ObserverMode == 0:
                        es.setplayerprop(
                            userid, "CCSPlayer.baseclass.m_iObserverMode", 1)
                        es.setplayerprop(
                            userid, "CCSPlayer.baseclass.m_hObserverTarget",
                            es.getplayerhandle(userid))
                        es.setplayerprop(
                            userid,
                            "CCSPlayer.baseclass.localdata.m_Local.m_bDrawViewmodel",
                            0)
                        es.setplayerprop(userid, "CCSPlayer.baseclass.m_iFOV",
                                         120)
                    elif ObserverMode == 1:
                        es.setplayerprop(
                            userid, "CCSPlayer.baseclass.m_iObserverMode", 0)
                        es.setplayerprop(
                            userid, "CCSPlayer.baseclass.m_hObserverTarget", 0)
                        es.setplayerprop(
                            userid,
                            "CCSPlayer.baseclass.localdata.m_Local.m_bDrawViewmodel",
                            1)
                        es.setplayerprop(userid, "CCSPlayer.baseclass.m_iFOV",
                                         90)

            if ucmd.buttons & IN_ATTACK2:
                ucmd.buttons &= ~IN_ATTACK2
    if ucmd.buttons & IN_RELOAD:
        ucmd.buttons &= ~IN_RELOAD
    return (spe.HookAction.Continue, 0)
Exemple #51
0
def player_death(ev):
    player = playerlist[ev['userid']]
    es.setplayerprop(player.userid, 'CBaseAnimating.m_nHitboxSet', 0)
    player.player.setColor(*player.properties['color'])
    gamethread.cancelDelayed('rpg_%s_%s' % (skillname, player.userid))
Exemple #52
0
def pre_player_hurt(ev):
    userid = int(ev['userid'])
    attacker = int(ev['attacker'])
    dmg_health = int(ev['dmg_health'])
    hitgroup = int(ev['hitgroup'])
    weapon = str(ev['weapon'])
    steamid = getplayerid(userid)
    if attacker > 0:
        attackersteamid = getplayerid(attacker)
    health = es.getplayerprop(userid, _healthprop) + dmg_health

    total_dmg = dmg_health
    if not attacker > 0:  #공격자가 존재하지 않을경우 데미지를 2배 처리
        total_dmg *= 2
    else:  #공격자가 존재하는경우
        if weapon == "knife":
            sz = random.choice([
                "zeisenproject/The-Killers/sounds/sndHit.wav",
                "zeisenproject/The-Killers/sounds/sndHit1.wav",
                "zeisenproject/The-Killers/sounds/sndHit3.wav"
            ])
            for i in range(1, 2 + 1):
                if i == 1: es.playsound(attacker, sz, 1.0)
                else: es.playsound(attacker, sz, 0.5)
        else:
            es.playsound(attacker,
                         "zeisenproject/The-Killers/sounds/sndHit2.wav", 1.0)
        if hitgroup == 1:
            if weapon == "awp":
                total_dmg = 250
            elif weapon == "scout":
                total_dmg = 165
            elif weapon == "p90":
                total_dmg = 70
            else:
                total_dmg = 100
        else:
            if weapon == "knife":
                total_dmg = 100
            else:
                total_dmg = 50
    health -= total_dmg
    es.setplayerprop(userid, _healthprop, health)
    if attacker > 0:
        if steamid == "BOT" and health > 0 and attackersteamid != "BOT":
            gore = bool(es.keygetvalue(attackersteamid, "player_data", "gore"))
            if gore:
                if hitgroup == 1:
                    for i in range(1, 5 + 1):
                        make_blood(userid,
                                   color=0,
                                   amount=10,
                                   headshot=1,
                                   valueat=attacker)
                else:
                    for i in range(1, 5 + 1):
                        make_blood(userid,
                                   color=0,
                                   amount=10,
                                   headshot=0,
                                   valueat=attacker)
Exemple #53
0
def setentname_cmd(args):
    if gamename in ['cstrike', 'dod', 'hl2mp']:
        userid = es.getuserid()
        if userid:
            if len(args) > 1:
                entity = args[0]
                entityname = args[1]
                if entity.isdigit() and entityname:
                    player = playerlib.getPlayer(userid)
                    playerlocation = vecmath.vector(player.getLocation())
                    playermovetype = es.getplayerprop(int(player),
                                                      'CBaseEntity.movetype')
                    if gamename == 'cstrike':
                        playerviewangles = vecmath.vector(
                            (float(
                                es.getplayerprop(
                                    int(player),
                                    'CCSPlayer.m_angEyeAngles[0]')),
                             float(
                                 es.getplayerprop(
                                     int(player),
                                     'CCSPlayer.m_angEyeAngles[1]')), 0.0))
                        playerviewoffset = vecmath.vector(
                            (float(
                                es.getplayerprop(
                                    int(player),
                                    'CBasePlayer.localdata.m_vecViewOffset[0]')
                            ),
                             float(
                                 es.getplayerprop(
                                     int(player),
                                     'CBasePlayer.localdata.m_vecViewOffset[1]'
                                 )),
                             float(
                                 es.getplayerprop(
                                     int(player),
                                     'CBasePlayer.localdata.m_vecViewOffset[2]'
                                 ))))
                    elif gamename == 'dod':
                        playerviewangles = vecmath.vector(
                            (float(
                                es.getplayerprop(
                                    int(player),
                                    'CDODPlayer.m_angEyeAngles[0]')),
                             float(
                                 es.getplayerprop(
                                     int(player),
                                     'CDODPlayer.m_angEyeAngles[1]')), 0.0))
                        playerviewoffset = vecmath.vector(
                            (float(
                                es.getplayerprop(
                                    int(player),
                                    'CBasePlayer.localdata.m_vecViewOffset[0]')
                            ),
                             float(
                                 es.getplayerprop(
                                     int(player),
                                     'CBasePlayer.localdata.m_vecViewOffset[1]'
                                 )),
                             float(
                                 es.getplayerprop(
                                     int(player),
                                     'CBasePlayer.localdata.m_vecViewOffset[2]'
                                 ))))
                    elif gamename == 'hl2mp':
                        playerviewangles = vecmath.vector(
                            (float(
                                es.getplayerprop(
                                    int(player),
                                    'CHL2MP_Player.m_angEyeAngles[0]')),
                             float(
                                 es.getplayerprop(
                                     int(player),
                                     'CHL2MP_Player.m_angEyeAngles[1]')), 0.0))
                        playerviewoffset = vecmath.vector((
                            float(
                                es.getplayerprop(
                                    int(player),
                                    'CHL2MP_Player.baseclass.baseclass.baseclass.baseclass.m_vecViewOffset[0]'
                                )),
                            float(
                                es.getplayerprop(
                                    int(player),
                                    'CHL2MP_Player.baseclass.baseclass.baseclass.baseclass.m_vecViewOffset[1]'
                                )),
                            float(
                                es.getplayerprop(
                                    int(player),
                                    'CHL2MP_Player.baseclass.baseclass.baseclass.baseclass.m_vecViewOffset[2]'
                                ))))
                    playerviewvector = (vecmath.vector(
                        vecmath.angles(
                            (1.0, 1.0, 1.0), playerviewangles))) * 0.5
                    entitylocation = vecmath.vector(
                        es.getindexprop(entity, 'CBaseEntity.m_vecOrigin'))
                    entityviewvector = (
                        playerlocation -
                        (playerviewoffset + playerviewvector)) + entitylocation
                    player.freeze(1)
                    player.setLocation(list(entityviewvector))
                    player.viewCoord(list(entitylocation))
                    es.entsetname(int(player), entityname)
                    es.server.cmd('es_xsetang %s %s %s' %
                                  (int(player), playerviewangles[0],
                                   playerviewangles[1]))
                    es.setplayerprop(int(player), 'CBaseEntity.movetype',
                                     playermovetype)
                    player.setLocation(list(playerlocation))
                else:
                    es.dbgmsg(
                        0,
                        'setentname: Invalid target user "%s" to setentname.' %
                        target)
            else:
                es.dbgmsg(
                    0,
                    'setentname: Not enough arguments to setentname. Syntax: setentname <entity-index#> <desired-name>'
                )
        else:
            es.dbgmsg(
                0,
                'setentname: No userid available. Sorry, no targetname set!')
    else:
        es.dbgmsg(
            0,
            'setentname: Game "%s" is not supported. Sorry, no targetname set!'
            % gamename)
Exemple #54
0
def setplayerprop(argv):
    es.setplayerprop(*argv)
Exemple #55
0
def rpg_teleport(userid):
    tell(userid, 'Teleporting in %s seconds' % (rpgTeleportTime))
    teleporting.add(userid)
    name = 'rpg_teleport_%s' % (userid)
    es.setplayerprop(userid, 'CBaseEntity.movetype', 0)

    if rpgTeleportEffects:
        x, y, z = es.getplayerlocation(userid)
        z += 40
        pX, pY, pZ = teleportStore[userid].pos
        pZ += 40
        if es.getplayerteam(userid) == 2:
            for i in xrange(rpgTeleportTime * 10):
                move = int(30 / (rpgTeleportTime * 10) * i)
                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((x, y, z), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 255, 0, 0))
                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((x, y, z + move), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 255, 0, 0))
                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((x, y, z - move), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 255, 0, 0))

                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((pX, pY, pZ), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 255, 0, 0))
                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((pX, pY, pZ + move), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 255, 0, 0))
                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((pX, pY, pZ - move), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 255, 0, 0))
        else:
            for i in xrange(rpgTeleportTime * 10):
                move = int(30 / (rpgTeleportTime * 10) * i)
                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((x, y, z), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 0, 0, 255))
                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((x, y, z + move), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 0, 0, 255))
                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((x, y, z - move), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 0, 0, 255))

                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((pX, pY, pZ), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 0, 0, 255))
                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((pX, pY, pZ + move), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 0, 0, 255))
                gamethread.delayedname(
                    i * 0.1, name, effectlib.drawCircle,
                    ((pX, pY, pZ - move), 30, 5, (1, 0, 0),
                     (0, 1, 0), None, "materials/sprites/laser.vmt",
                     "materials/sprites/halo01.vmt", 0.1, 10, 10, 0, 0, 255))

    gamethread.delayedname(rpgTeleportTime, name, teleporting.remove, userid)
    gamethread.delayedname(rpgTeleportTime + 0.1, name, rpg_do_teleport,
                           (userid))