Beispiel #1
0
def gg_win(event_var):
    # Store the winner's name
    name = event_var['es_attackername']

    # Store the winner's index
    index = int(event_var['es_attackerindex'])

    # Send chat message for player winning the match
    saytext2('#human', index, 'PlayerWon', {'player': name})

    # We want to loop, so we send a message every second for 3 seconds
    for x in xrange(4):

        # Send centermsgs to players about the winner
        delayed(x, centermsg, ('#human', 'PlayerWon_Center', {'player': name}))

    # Was the winner a Terrorist?
    if int(event_var['es_attackerteam']) == 2:

        # Store color for Terrorists
        color = '#red'

    # Was the winner a CT?
    else:

        # Store color for CTs
        color = '#blue'

    # Send toptext message to players about the winner
    toptext('#human', 10, color, 'PlayerWon_Center', {'player': name})
Beispiel #2
0
def gg_win(event_var):
    # Store the winner's name
    name = event_var["es_attackername"]

    # Store the winner's index
    index = int(event_var["es_attackerindex"])

    # Send chat message for player winning the match
    saytext2("#human", index, "PlayerWon", {"player": name})

    # We want to loop, so we send a message every second for 3 seconds
    for x in xrange(4):

        # Send centermsgs to players about the winner
        delayed(x, centermsg, ("#human", "PlayerWon_Center", {"player": name}))

    # Was the winner a Terrorist?
    if int(event_var["es_attackerteam"]) == 2:

        # Store color for Terrorists
        color = "#red"

    # Was the winner a CT?
    else:

        # Store color for CTs
        color = "#blue"

    # Send toptext message to players about the winner
    toptext("#human", 10, color, "PlayerWon_Center", {"player": name})
Beispiel #3
0
def voteSubmit(userid, choice, popupname):
    votedUserids.add(userid)
    # Is a revote ?
    for option in mapVoteOptions.keys():
        if userid in mapVoteOptions[option]:

            # Is not the same choice ?
            if choice != option:
                mapVoteOptions[option].remove(userid)
                mapVoteOptions[choice].append(userid)
                break

            # Same choice, stop here
            else:
                return

    # Is a new vote
    else:
        mapVoteOptions[choice].append(userid)

    # Announce players choice if enabled
    if int(gg_map_vote_show_player_vote):
        saytext2('#human',
                 Player(userid).index, 'VotedFor', {
                     'name': es.getplayername(userid),
                     'map': choice.lower()
                 })

    # Everyone voted ?
    if isVoteDone():
        voteEnd()
Beispiel #4
0
def voteSubmit(userid, choice, popupname):
    votedUserids.add(userid)
    # Is a revote ?
    for option in mapVoteOptions.keys():
        if userid in mapVoteOptions[option]:

            # Is not the same choice ?
            if choice != option:
                mapVoteOptions[option].remove(userid)
                mapVoteOptions[choice].append(userid)
                break

            # Same choice, stop here
            else:
                return

    # Is a new vote
    else:
        mapVoteOptions[choice].append(userid)

    # Announce players choice if enabled
    if int(gg_map_vote_show_player_vote):
        saytext2("#human", Player(userid).index, "VotedFor", {"name": es.getplayername(userid), "map": choice.lower()})

    # Everyone voted ?
    if isVoteDone():
        voteEnd()
Beispiel #5
0
def level_menu_cmd(userid, args):
    # Make sure player exists
    if not es.exists('userid', userid) and userid != 0:
        return

    if len(args):
        # Send user level search
        searchInput = str(args)
        checkUserid = es.getuserid(searchInput)

        # If the search failed, tell them and return
        if not checkUserid:
            msg(userid, 'LevelInfo_PlayerSearchFailed',
                {'player': searchInput})
            return

        # Get the player instance
        ggPlayer = Player(checkUserid)

        # Send the results
        saytext2(userid, ggPlayer.index, 'LevelInfo_PlayerSearch',
                            {'player': es.getplayername(checkUserid),
                            'level': ggPlayer.level,
                            'weapon': ggPlayer.weapon})
    else:
        # Send menu
        popuplib.send('ggLevelMenu', userid)
Beispiel #6
0
def fire_gg_knife_steal(attacker, victim):
    ggAttacker = Player(attacker)

    # Set up the gg_knife_steal event
    gg_knife_steal = GG_Knife_Steal(attacker=attacker, userid=victim,
                                    attacker_level=ggAttacker.level,
                                    userid_level=Player(victim).level)
    # Fire the gg_knife_steal event
    gg_knife_steal.fire()

    # Announce the level steal
    saytext2('#human', ggAttacker.index, 'StoleLevel',
        {'attacker': es.getplayername(attacker),
        'victim': es.getplayername(victim)})
Beispiel #7
0
def rtv_cmd(userid, args):
    global voteRocked
    # The vote has already been rocked for this map
    if voteRocked:
        msg(userid, "RTVInitiated", {}, True)
        return

    # The leader level is past the level to disable RTV
    if get_leader_level() >= rtv_DisableLevel:
        msg(userid, "RTVPastLevel", {"level": rtv_DisableLevel}, True)
        return

    # Removed userids no longer in the server
    checkList = rtvList
    for uid in checkList:
        if not es.exists("userid", uid):
            rtvList.remove(uid)

    # The number of total votes required to RTV
    votesRequired = int((len(getUseridList("#human")) *
                         gg_map_vote_rtv_percent / 100.0) + 0.999)
    # The user has already voted
    if userid in rtvList:
        if not len(rtvList) >= votesRequired:
            saytext2(
                "#human",
                Player(userid).index, "RTVVote", {
                    "name": es.getplayername(userid),
                    "votes": len(rtvList),
                    "required": votesRequired
                })
            return
    else:
        rtvList.append(userid)

    # The vote passed
    if len(rtvList) >= votesRequired:
        msg("#human", "RTVPassed", {}, True)
        voteStart()
        voteRocked = True
    else:
        saytext2(
            "#human",
            Player(userid).index, "RTVVote", {
                "name": es.getplayername(userid),
                "votes": len(rtvList),
                "required": votesRequired
            })
Beispiel #8
0
def fire_gg_knife_steal(attacker, victim):
    ggAttacker = Player(attacker)

    # Set up the gg_knife_steal event
    gg_knife_steal = GG_Knife_Steal(attacker=attacker,
                                    userid=victim,
                                    attacker_level=ggAttacker.level,
                                    userid_level=Player(victim).level)
    # Fire the gg_knife_steal event
    gg_knife_steal.fire()

    # Announce the level steal
    saytext2('#human', ggAttacker.index, 'StoleLevel', {
        'attacker': es.getplayername(attacker),
        'victim': es.getplayername(victim)
    })
Beispiel #9
0
def do_multi_level(userid):
    # Check userid validity
    if not es.exists('userid', userid):
        return

    # Retrieve the player's name
    name = es.getplayername(userid)

    # Tell everyone we leveled!
    centermsg('#all', "CenterMultiLevelled", {'name': name})
    saytext2('#all', Player(userid).index, 'MultiLevelled', {'name': name})

    # Play game sound
    sound = Player(userid).emitsound('multilevel')

    # Add the player to the multi-leveling dictionary with the sound to
    # remove
    currentMultiLevel[userid] = sound

    # Create env_spark
    spark_instance = spe.giveNamedItem(userid, "env_spark")
    spark_index = spe.getIndexOfEntity(spark_instance)

    cmd = 'es_xfire %s env_spark SetParent !activator;' % userid
    cmd += 'es_xfire %s env_spark AddOutput "spawnflags 896";' % userid
    cmd += 'es_xfire %s env_spark AddOutput "angles -90 0 0";' % userid
    cmd += 'es_xfire %s env_spark AddOutput "magnitude 8";' % userid
    cmd += 'es_xfire %s env_spark AddOutput "traillength 3";' % userid
    cmd += 'es_xfire %s env_spark StartSpark' % userid
    es.server.queuecmd(cmd)

    # Set the player's speed
    getPlayer(userid).speed = int(gg_multi_level_speed) / 100.0

    # If gg_multi_level_gravity is enabled, ajust the player's gravity
    if int(gg_multi_level_gravity) != 100 and int(gg_multi_level_gravity) >= 0:
        gravity.addGravityChange(userid, int(gg_multi_level_gravity) * 0.01)

    # Append the spark's index to this player's list
    if spark_index:
        Player(userid).multiLevelEntities.append(spark_index)

    # Set up the gg_multi_level event
    gg_multi_level_event = GG_Multi_Level(userid=userid, leveler=userid)

    # Fire the gg_multi_level event
    gg_multi_level_event.fire()
Beispiel #10
0
def do_multi_level(userid):
    # Check userid validity
    if not es.exists('userid', userid):
        return

    # Retrieve the player's name
    name = es.getplayername(userid)

    # Tell everyone we leveled!
    centermsg('#all', "CenterMultiLevelled", {'name': name})
    saytext2('#all', Player(userid).index, 'MultiLevelled', {'name': name})

    # Play game sound
    sound = Player(userid).emitsound('multilevel')

    # Add the player to the multi-leveling dictionary with the sound to
    # remove
    currentMultiLevel[userid] = sound

    # Create env_spark
    spark_instance = spe.giveNamedItem(userid, "env_spark")
    spark_index = spe.getIndexOfEntity(spark_instance)

    cmd = 'es_xfire %s env_spark SetParent !activator;' % userid
    cmd += 'es_xfire %s env_spark AddOutput "spawnflags 896";' % userid
    cmd += 'es_xfire %s env_spark AddOutput "angles -90 0 0";' % userid
    cmd += 'es_xfire %s env_spark AddOutput "magnitude 8";' % userid
    cmd += 'es_xfire %s env_spark AddOutput "traillength 3";' % userid
    cmd += 'es_xfire %s env_spark StartSpark' % userid
    es.server.queuecmd(cmd)

    # Set the player's speed
    getPlayer(userid).speed = int(gg_multi_level_speed) / 100.0

    # If gg_multi_level_gravity is enabled, ajust the player's gravity
    if int(gg_multi_level_gravity) != 100 and int(gg_multi_level_gravity) >= 0:
        gravity.addGravityChange(userid, int(gg_multi_level_gravity) * 0.01)

    # Append the spark's index to this player's list
    if spark_index:
        Player(userid).multiLevelEntities.append(spark_index)

    # Set up the gg_multi_level event
    gg_multi_level_event = GG_Multi_Level(userid=userid, leveler=userid)

    # Fire the gg_multi_level event
    gg_multi_level_event.fire()
Beispiel #11
0
def rtv_cmd(userid, args):
    global voteRocked
    # The vote has already been rocked for this map
    if voteRocked:
        msg(userid, "RTVInitiated", {}, True)
        return

    # The leader level is past the level to disable RTV
    if get_leader_level() >= rtv_DisableLevel:
        msg(userid, "RTVPastLevel", {"level": rtv_DisableLevel}, True)
        return

    # Removed userids no longer in the server
    checkList = rtvList
    for uid in checkList:
        if not es.exists("userid", uid):
            rtvList.remove(uid)

    # The number of total votes required to RTV
    votesRequired = int((len(getUseridList("#human")) * gg_map_vote_rtv_percent / 100.0) + 0.999)
    # The user has already voted
    if userid in rtvList:
        if not len(rtvList) >= votesRequired:
            saytext2(
                "#human",
                Player(userid).index,
                "RTVVote",
                {"name": es.getplayername(userid), "votes": len(rtvList), "required": votesRequired},
            )
            return
    else:
        rtvList.append(userid)

    # The vote passed
    if len(rtvList) >= votesRequired:
        msg("#human", "RTVPassed", {}, True)
        voteStart()
        voteRocked = True
    else:
        saytext2(
            "#human",
            Player(userid).index,
            "RTVVote",
            {"name": es.getplayername(userid), "votes": len(rtvList), "required": votesRequired},
        )
Beispiel #12
0
def nominateSubmit(userid, choice, popupname):
    # It has already been chosen while their popup was open
    if choice in nominations:
        msg(userid, "NominatedAlready", {"map": choice}, True)
        return

    # The nominations list is full
    if len(nominations) >= int(gg_map_vote_size):
        msg(userid, "NominationsFull", {"size": int(gg_map_vote_size)}, True)
        return

    # Add the chosen nomination
    nominations.append(choice)
    saytext2(
        "#human",
        Player(userid).index,
        "Nominated",
        {"pName": es.getplayername(userid), "map": choice, "cmd": str(gg_map_vote_nominate_command)},
        True,
    )
Beispiel #13
0
def nominateSubmit(userid, choice, popupname):
    # It has already been chosen while their popup was open
    if choice in nominations:
        msg(userid, "NominatedAlready", {"map": choice}, True)
        return

    # The nominations list is full
    if len(nominations) >= int(gg_map_vote_size):
        msg(userid, "NominationsFull", {"size": int(gg_map_vote_size)}, True)
        return

    # Add the chosen nomination
    nominations.append(choice)
    saytext2(
        "#human",
        Player(userid).index, "Nominated", {
            "pName": es.getplayername(userid),
            "map": choice,
            "cmd": str(gg_map_vote_nominate_command)
        }, True)
Beispiel #14
0
def gg_tied_leader(event_var):
    # Get the number of current leaders
    leaders = len(event_var['leaders'].split(','))

    # Are there only 2 leaders now?
    if leaders == 2:

        # Send message that the player just tied the other leader
        saytext2('#human', event_var['es_userindex'], 'TiedLeader_Singular',
            {'player': event_var['es_username'],
            'level': event_var['leader_level']})

    # Is there a tie of 3 or more players?
    else:

        # Send message that the player just tied the other leaders
        saytext2('#human', event_var['es_userindex'], 'TiedLeader_Plural',
            {'count': leaders,
            'player': event_var['es_username'],
            'level': event_var['leader_level']})
Beispiel #15
0
    def remove(self, item):
        '''Removes a list of userids from the respawn list
            and spawns the players if necessary'''

        # Create a list to store names of players being respawned
        players = list()

        # Loop through all userids in the current list
        for userid in item:

            # Does the current userid exist on the server?
            if not exists('userid', userid):

                # If not, do not respawn them
                continue

            # Is the player still on a team?
            if getplayerteam(userid) < 2:

                # If not, do not respawn them
                continue

            # Respawn the player
            Player(userid).respawn()

            # Add the player's name to the list of names
            players.append(getplayername(userid))

        # Are any players being respawned?
        if players:

            # Get the first player's index
            index = Player(getuserid(players[0])).index

            # Send a message about all the players being respawned
            saytext2('#human', index, 'RespawningPlayer',
                     {'player': '\x01, \x03'.join(players)}, True)

        # Remove the list from the respawn list
        super(_RespawnPlayers, self).remove(item)
Beispiel #16
0
    def remove(self, item):
        '''Removes a list of userids from the respawn list
            and spawns the players if necessary'''

        # Create a list to store names of players being respawned
        players = list()

        # Loop through all userids in the current list
        for userid in item:

            # Does the current userid exist on the server?
            if not exists('userid', userid):

                # If not, do not respawn them
                continue

            # Is the player still on a team?
            if getplayerteam(userid) < 2:

                # If not, do not respawn them
                continue

            # Respawn the player
            Player(userid).respawn()

            # Add the player's name to the list of names
            players.append(getplayername(userid))

        # Are any players being respawned?
        if players:

            # Get the first player's index
            index = Player(getuserid(players[0])).index

            # Send a message about all the players being respawned
            saytext2('#human', index, 'RespawningPlayer',
                {'player': '\x01, \x03'.join(players)}, True)

        # Remove the list from the respawn list
        super(_RespawnPlayers, self).remove(item)
Beispiel #17
0
def gg_leader_disconnect(event_var):
    # Are there any current leaders?
    if event_var['leaders'] == "None":
        return

    # Get the userids of each of the current leaders in a list
    leaders = [int(userid) for userid in event_var['leaders'].split(',')]

    # Is there only 1 leader?
    if len(leaders) == 1:

        # Is the player still on the server?
        if not es.exists('userid', leaders[0]):
            return

        # Send message about the new leader
        saytext2('#human', getPlayer(leaders[0]).index, 'NewLeader',
            {'player': es.getplayername(leaders[0]),
            'level': event_var['leader_level']})

    # Are there multiple leaders currently?
    else:

        # Get a list of leader names
        leader_names = [es.getplayername(userid) for
            userid in leaders if es.exists('userid', userid)]

        # Are there any leaders?
        if not leader_names:

            # If not, return
            return

        # Send message about all the current leaders
        msg('#human', 'NewLeaders',
            {'players': ', '.join(leader_names),
             'level': event_var['leader_level']})
Beispiel #18
0
def gg_new_leader(event_var):
    saytext2('#human', event_var['es_userindex'], 'NewLeader',
        {'player': event_var['es_username'],
        'level': event_var['leader_level']})