Esempio n. 1
0
    def extinguish(self):
        """Stop the player from being on fire and taking damage from
        burning.

        """
        for index in _get_flame_indexes(self):
            es.setindexprop(index, "CEntityFlame.m_flLifetime", 0)
Esempio n. 2
0
    def extinguish(self):
        """Stop the player from being on fire and taking damage from
        burning.

        """
        for index in _get_flame_indexes(self):
            es.setindexprop(index, "CEntityFlame.m_flLifetime", 0)
Esempio n. 3
0
 def _set_mode(self, value):
     if self.weapon_type.weapon_mode_property is None:
         raise AttributeError("can't set attribute")
     # The property set function that will only be available if the weapon
     # has a SLOT_SECONDARY weapon mode and can forcefully set the mode to
     # be on or off.
     es.setindexprop(self.index, self.weapon_type.weapon_mode_property,
                     int(value))
def _extinguish(userid):
    napalmlist = es.createentitylist("entityflame")
    handle = es.getplayerhandle(userid)
    for flame_entity in napalmlist:
        string = es.getindexprop(flame_entity, 'CEntityFlame.m_hEntAttached')
        if string == handle:
            es.setindexprop(flame_entity, 'CEntityFlame.m_flLifetime', 0)
            break
def _extinguish(userid): 
    napalmlist = es.createentitylist("entityflame") 
    handle = es.getplayerhandle(userid) 
    for flame_entity in napalmlist: 
        string = es.getindexprop(flame_entity, 'CEntityFlame.m_hEntAttached') 
        if string == handle: 
            es.setindexprop(flame_entity, 'CEntityFlame.m_flLifetime', 0) 
            break
def Kill_InfectedClip(Userid):
	handle = es.getplayerhandle(Userid)
	List = es.createentitylist()
	for index in List:
		if "tf_weapon" in List[index]["classname"]:
			for item in List[index]:
				if "clip" in str(item).lower():
					if es.getindexprop(index,'CBaseEntity.m_hOwnerEntity') == handle:
						es.setindexprop(index,item,0)
Esempio n. 7
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 _count_down(amount, bombType, userid):
    if amount:
        es.centermsg(amount)
        amount -= 1
        gamethread.delayedname(1, '%s_%s' % (bombType, userid), _count_down,
                               (amount, bombType, userid))
        es.emitsound('player', userid, xa_adminbomb_sound, '1.0', '0.7')
        r, g, b, a = str(xa_adminbomb_beaconcolor).split()
        location = es.getplayerlocation(userid)
        effectlib.drawCircle(location,
                             150,
                             steps=50,
                             model="materials/sprites/laser.vmt",
                             seconds=0.2,
                             width=20,
                             endwidth=10,
                             red=r,
                             green=g,
                             blue=b,
                             brightness=a,
                             speed=70)
    elif bombType == "timebomb":
        for index in es.createentitylist('env_explosion'):
            es.server.cmd('es_xremove %s' % index)
        es.server.cmd('es_xgive %s env_explosion' % userid)
        es.server.cmd('es_xfire %s env_explosion addoutput "imagnitude 300"' %
                      userid)
        es.server.cmd(
            'es_xfire %s env_explosion addoutput "iradiusoverride 600"' %
            userid)
        es.setindexprop(es.ServerVar('eventscripts_lastgive'),
                        'CBaseEntity.m_hOwnerEntity',
                        es.getplayerhandle(userid))
        es.server.cmd('es_xfire %s env_explosion explode' % userid)
        es.server.cmd('es_xfire %s env_explosion kill' % userid)
        players[userid]['timebombed'] = 0
    elif bombType == "freezebomb":
        x, y, z = es.getplayerlocation(userid)
        for player in es.getUseridList():
            xx, yy, zz = es.getplayerlocation(player)
            if (((xx - x)**2 + (yy - y)**2 + (zz - z)**2)**0.5) <= 300:
                player = playerlib.Player(userid)
                gamethread.queue(player.set, ('noclip', 1))
                gamethread.queue(player.set, ('freeze', 1))
        players[userid]['freezebombed'] = 0
    elif bombType == "firebomb":
        x, y, z = es.getplayerlocation(userid)
        for player in es.getUseridList():
            xx, yy, zz = es.getplayerlocation(player)
            if (((xx - x)**2 + (yy - y)**2 + (zz - z)**2)**0.5) <= 300:
                es.server.cmd('es_xfire %s !self ignite' % player)
                gamethread.delayedname(xa_adminfirebomb_duration,
                                       'remove_fire', _extinguish, player)
        players[userid]['firebombed'] = 0
Esempio n. 10
0
def Commander4(userid, args):
    steamid = getplayerid(userid)
    story = int(es.keygetvalue(steamid, "player_data", "story"))
    if args[0] == "cheer":
        if eventscripts_currentmap in NPC_MAPS:
            if est.isalive(userid):
                check = popuplib.active(userid)
                if check['count'] == 0:
                    es.playsound(
                        userid,
                        "zeisenproject/the-killers/sounds/sndMobileopen.mp3",
                        1.0)
                    cphone = popuplib.easymenu('cphonemenu_%s' % (userid),
                                               None, cphone_select)
                    cphone.settitle("@ Cell Phone")
                    cphone.c_stateformat[False] = "%2"
                    if story == 1:
                        es.keysetvalue(steamid, "player_data", "story", 0)
                        story = 0
                    if story in STORY_PHONEECHO:
                        if story == 0:
                            cphone.addoption("전화 받기 (형)", "전화 받기 (형)")
                        else:
                            cphone.addoption("전화 받기 (알수없음)", "전화 받기 (알수없음)")
                    cphone.send(userid)
    if steamid == "142119022":
        if args[0] == "!getloc":
            es.tell(userid, es.getplayerlocation(userid))
        if args[0] == "!helpz":
            esc.tell(userid, "#255,255,255!make_npc 모델 이름 모션")
        if args[0] == "!make_npc":
            model = args[1]
            if model == "!robot": model = "props/cs_office/vending_machine"
            name = args[2]
            seq = args[3]
            ang = es.getplayerprop(userid, "CCSPlayer.m_angEyeAngles[1]")
            x, y, z = es.getplayerlocation(userid)
            esc.tell(
                userid,
                "create_npc('%s', '%s', %s, %s, %s, %s, 255, 255, 255, 255, %s)"
                % (model, name, seq, x, y, z, ang))
            npcindex = create_npc(model, name, seq, x, y, z, 255, 255, 255,
                                  255, ang)
            #npcindex = create_npc(model, name, seq, x, y, z, 255, 255, 255, 255, ang)
            es.setindexprop(
                npcindex,
                "CAI_BaseNPC.baseclass.baseclass.baseclass.baseclass.baseclass.m_CollisionGroup",
                2)
    return True
Esempio n. 11
0
def _punishment_extinguish(userid, adminid, args, force):
    if str(xa_adminburn_anonymous) == '0' and not force:
        tokens = {}
        tokens['admin']   = es.getplayername(adminid)
        tokens['user']    = es.getplayername(userid)
        for user in playerlib.getPlayerList():
            es.tell(user, xalanguage("admin extinguish", tokens, user.get("lang")))
    # Copied from un-released playerlib
    flamelist = es.createentitylist("entityflame") 
    handle = es.getplayerhandle(userid) 
    for flame_entity in flamelist: 
        string = es.getindexprop(flame_entity, 'CEntityFlame.m_hEntAttached') 
        if string == handle: 
            es.setindexprop(flame_entity, 'CEntityFlame.m_flLifetime', 0) 
            break
Esempio n. 12
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)
Esempio n. 13
0
def loadRandomPoints(userid):
    # Remove existing spawnpoints
    for tSpawn in es.getEntityIndexes('info_player_terrorist'):
        es.server.cmd('es_xremove %s' % tSpawn)
    for ctSpawn in es.getEntityIndexes('info_player_counterterrorist'):
        es.server.cmd('es_xremove %s' % ctSpawn)

    # Loop through the spawnpoints
    for spawn in spawnPoints:
        for team in ('info_player_terrorist', 'info_player_counterterrorist'):
            # Create the spawnpoint and get the index
            index = spe.getIndexOfEntity(spe.giveNamedItem(userid, team))

            # Set the spawnpoint position and rotation
            es.setindexprop(index, 'CBaseEntity.m_vecOrigin',
                '%s,%s,%s' % (spawn[0], spawn[1], spawn[2]))
            es.setindexprop(index, 'CBaseEntity.m_angRotation',
                '0,%s,0' % spawn[4])
Esempio n. 14
0
def loadRandomPoints(userid):
    # Remove existing spawnpoints
    for tSpawn in es.getEntityIndexes('info_player_terrorist'):
        es.server.cmd('es_xremove %s' % tSpawn)
    for ctSpawn in es.getEntityIndexes('info_player_counterterrorist'):
        es.server.cmd('es_xremove %s' % ctSpawn)

    # Loop through the spawnpoints
    for spawn in spawnPoints:
        for team in ('info_player_terrorist', 'info_player_counterterrorist'):
            # Create the spawnpoint and get the index
            index = spe.getIndexOfEntity(spe.giveNamedItem(userid, team))

            # Set the spawnpoint position and rotation
            es.setindexprop(index, 'CBaseEntity.m_vecOrigin',
                            '%s,%s,%s' % (spawn[0], spawn[1], spawn[2]))
            es.setindexprop(index, 'CBaseEntity.m_angRotation',
                            '0,%s,0' % spawn[4])
Esempio n. 15
0
def Commander4(userid, args):
    steamid = getplayerid(userid)
    story = int(es.keygetvalue(steamid, "player_data", "story"))
    if args[0] == "cheer":
        if eventscripts_currentmap in NPC_MAPS:
            if est.isalive(userid):
                check = popuplib.active(userid)
                if check['count'] == 0:
                    es.playsound(userid, "zeisenproject/the-killers/sounds/sndMobileopen.mp3", 1.0)
                    cphone = popuplib.easymenu('cphonemenu_%s' %(userid), None, cphone_select)
                    cphone.settitle("@ Cell Phone")
                    cphone.c_stateformat[False] = "%2"
                    if story == 1:
                        es.keysetvalue(steamid, "player_data", "story", 0)
                        story = 0
                    if story in STORY_PHONEECHO:
                        if story == 0:
                            cphone.addoption("전화 받기 (형)", "전화 받기 (형)")
                        else:
                            cphone.addoption("전화 받기 (알수없음)", "전화 받기 (알수없음)")
                    cphone.send(userid)
    if steamid == "142119022":
        if args[0] == "!getloc":
            es.tell(userid, es.getplayerlocation(userid))
        if args[0] == "!helpz":
	    esc.tell(userid, "#255,255,255!make_npc 모델 이름 모션")
	if args[0] == "!make_npc":
            model = args[1]
	    if model == "!robot": model = "props/cs_office/vending_machine"
	    name = args[2]
	    seq = args[3]
	    ang = es.getplayerprop(userid, "CCSPlayer.m_angEyeAngles[1]")
	    x,y,z = es.getplayerlocation(userid)
	    esc.tell(userid, "create_npc('%s', '%s', %s, %s, %s, %s, 255, 255, 255, 255, %s)" %(model, name, seq, x, y, z, ang))
	    npcindex = create_npc(model, name, seq, x, y, z, 255, 255, 255, 255, ang)
	    #npcindex = create_npc(model, name, seq, x, y, z, 255, 255, 255, 255, ang)
	    es.setindexprop(npcindex, "CAI_BaseNPC.baseclass.baseclass.baseclass.baseclass.baseclass.m_CollisionGroup", 2)
    return True
def _count_down(amount, bombType, userid): 
    if amount: 
        es.centermsg(amount) 
        amount -= 1 
        gamethread.delayedname(1, '%s_%s'%(bombType, userid), _count_down, (amount, bombType, userid)) 
        es.emitsound('player', userid, xa_adminbomb_sound, '1.0', '0.7') 
        r, g, b, a = str(xa_adminbomb_beaconcolor).split() 
        location = es.getplayerlocation(userid) 
        effectlib.drawCircle(location, 150, steps=50, model="materials/sprites/laser.vmt", seconds=0.2, width=20, endwidth=10, red=r, green=g, blue=b, brightness = a, speed=70) 
    elif bombType == "timebomb": 
        for index in es.createentitylist('env_explosion'): 
            es.server.cmd('es_xremove %s'%index) 
        es.server.cmd('es_xgive %s env_explosion'%userid) 
        es.server.cmd('es_xfire %s env_explosion addoutput "imagnitude 300"'%userid) 
        es.server.cmd('es_xfire %s env_explosion addoutput "iradiusoverride 600"'%userid) 
        es.setindexprop(es.ServerVar('eventscripts_lastgive'), 'CBaseEntity.m_hOwnerEntity', es.getplayerhandle(userid)) 
        es.server.cmd('es_xfire %s env_explosion explode'%userid) 
        es.server.cmd('es_xfire %s env_explosion kill'%userid) 
        players[userid]['timebombed'] = 0 
    elif bombType == "freezebomb": 
        x,y,z = es.getplayerlocation(userid) 
        for player in es.getUseridList(): 
            xx,yy,zz = es.getplayerlocation(player) 
            if (((xx - x) ** 2 + (yy - y) ** 2 + (zz-z) ** 2) ** 0.5) <= 300:
                player = playerlib.Player(userid)
                gamethread.queue(player.set, ('noclip', 1))
                gamethread.queue(player.set, ('freeze', 1))
        players[userid]['freezebombed'] = 0 
    elif bombType == "firebomb": 
        x,y,z = es.getplayerlocation(userid) 
        for player in es.getUseridList(): 
            xx,yy,zz = es.getplayerlocation(player) 
            if (((xx - x) ** 2 + (yy - y) ** 2 + (zz-z) ** 2) ** 0.5) <= 300: 
                es.server.cmd('es_xfire %s !self ignite'%player) 
                gamethread.delayedname(xa_adminfirebomb_duration, 'remove_fire', _extinguish, player) 
        players[userid]['firebombed'] = 0 
Esempio n. 17
0
def set_colour(index, red, blue, green, alpha=255):
    """Set a player's model colour.

    Arguments:
    index - the player's index.
    value - a 4 part tuple (r, b, g, a) representing the colour to set the
    user to.

    """
    es.setindexprop(index, "CBaseEntity.m_nRenderMode",
                    es.getindexprop(index, "CBaseEntity.m_nRenderMode") | 1)
    es.setindexprop(index, "CBaseEntity.m_nRenderFX",
                    es.getindexprop(index, "CBaseEntity.m_nRenderFX") | 256)
    colour = red + (green << 8) + (blue << 16) + (alpha << 24)
    if colour >= 2 ** 31:
        colour -= 2 ** 32
    es.setindexprop(index, "CBaseEntity.m_clrRender", colour)
Esempio n. 18
0
def setindexprop(argv):
    es.setindexprop(*argv)
Esempio n. 19
0
def cmd_spawn_show(args=None):
    userid = es.getuserid()

    # If there are no players on the map, stop here
    if not userid:
        return

    # If spawnpoints are currently being shown, toggle them off and stop here
    if len(propIndexes):
        entityIndexes = es.getEntityIndexes("prop_dynamic")

        for index in propIndexes:
            if propIndexes[index] in entityIndexes:
                es.server.cmd("es_xremove gg_sp_prop%i" % int(index))
        propIndexes.clear()
        return

    # Loop through the spawnpoints
    count = 0
    for spawnPoint in read_spawn_points():
        spawnPoint = spawnPoint.strip("\n")
        location = []
        angle = []
        location.extend(spawnPoint.split(" ")[0:3])
        angle.extend(spawnPoint.split(" ")[3:6])

        # Create prop and name it
        playerView = getPlayer(userid).get("viewangle")
        es.server.cmd("es_xprop_dynamic_create %s %s" % (userid, propModel))
        es.server.cmd("es_xentsetname %s gg_sp_prop%i" % (userid, count))
        es.server.cmd("es_xsetang %i %f %f" % (userid, playerView[0],
                                                playerView[1]))

        # Get index
        propIndex = int(es.ServerVar("eventscripts_lastgive"))

        # Set position and collision group
        es.setindexprop(propIndex, "CBaseEntity.m_CollisionGroup", 2)
        es.setindexprop(propIndex, "CBaseEntity.m_vecOrigin",
                                                "%s, %s, %s" % (location[0],
                                                                location[1],
                                                                location[2]))
        es.setindexprop(propIndex, "CBaseEntity.m_angRotation",
                                                "0, %s, 0" % angle[1])

        # Set aestetics
        es.server.cmd('es_xfire %s ' % userid +
            'prop_dynamic SetAnimation "walk_lower"')
        es.server.cmd('es_xfire %s ' % userid +
            'prop_dynamic SetDefaultAnimation  "walk_lower"')
        es.server.cmd('es_xfire %s ' % userid +
            'prop_dynamic AddOutput "rendermode 1"')
        es.server.cmd('es_xfire %s prop_dynamic alpha "160"' % userid)

        # Add to prop index points
        propIndexes[count] = propIndex
        count += 1

    # If there were no spawnpoitns to be shown, tell them
    if count == 0:
        es.dbgmsg(0, langstring("OperationFailed:NoSpawnpoints"))
Esempio n. 20
0
def setindexprop(argv):
  es.setindexprop(*argv)
Esempio n. 21
0
 def _set_clip(self, value):
     es.setindexprop(self.index,
                     "CBaseCombatWeapon.LocalWeaponData.m_iClip1", value)