Example #1
0
def changerace_successful(userid, race):
    if es.getplayerprop(userid, "CCSPlayer.baseclass.pl.deadflag") == 0:
        es.server.queuecmd("es wcs_dealdamage %s %s 9999" % (userid, userid))
    es.server.queuecmd("es wcs_saveplayer %s" % userid)
    player_race = es.keygetvalue("wcsuserdata", userid, "race")
    command_buffer = es.keygetvalue("wcsraces", player_race, "onchange")
    es.server.queuecmd("es_xset wcs_userid %s" % userid)
    es.server.queuecmd(command_buffer)
    es.server.queuecmd("es_keysetvalue \"wcsuserdata\" %s \"race\" %s" %
                       (userid, race))
    es.server.queuecmd("es wcs_keysetvalue  \"%s\" \"race\" %s" %
                       (es.getplayersteamid(userid), race))
    es.server.queuecmd("es_xset wcs_id \"%s\"" % es.getplayersteamid(userid))
    es.server.queuecmd("es_xdoblock wcs/wcsfunctions/wcs_playercheck")
    es.server.queuecmd("es wcs_getplayer %s" % userid)
    es.server.queuecmd(
        "es_keysetvalue \"wcsuserdata\" %s \"skillcheck\" \"1\"" % userid)
    es.tell(
        userid, "#multi", "#lightgreenYou changed your race to#green " +
        es.keygetvalue("wcsraces", race, "name"))
    old_name = es.keygetvalue("wcsraces", player_race, "name")
    new_name = es.keygetvalue("wcsraces", race, "name")
    es.event('initialize', "wcs_changerace")
    es.event('setint', "wcs_changerace", "userid", int(userid))
    es.event('setstring', "wcs_changerace", "oldrace", str(old_name))
    es.event('setstring', "wcs_changerace", "newrace", str(new_namead))
    es.event('fire', "wcs_changerace")
Example #2
0
    def __enter__(self):
        """Utilized when the EventContextManager is entered. Used to initialize
        the event.

        """
        es.dbgmsg(1, "es.event('initialize', '%s')" % self._name)
        es.event('initialize', self._name)
        return self
Example #3
0
    def __enter__(self):
        """Utilized when the EventContextManager is entered. Used to initialize
        the event.

        """
        es.dbgmsg(1, "es.event('initialize', '%s')" % self._name)
        es.event("initialize", self._name)
        return self
Example #4
0
    def __init__(self, name, **kw):
        # Set the event name attribute
        super(QuickEvent, self).__setattr__('name', name)

        # Initialize the event
        es.event('initialize', name)

        # Iterate through keyword arguments and set the event variable/value
        for name, value in kw.iteritems():
            self.set_event_var(name, value)
Example #5
0
    def __init__(self, name, **kw):
        # Set the event name attribute
        super(QuickEvent, self).__setattr__("name", name)

        # Initialize the event
        es.event("initialize", name)

        # Iterate through keyword arguments and set the event variable/value
        for name, value in kw.iteritems():
            self.set_event_var(name, value)
Example #6
0
    def set(self, field, value):
        """Sets the event variable values dynamically for es.event()."""
        if not type(value) in DATATYPES:
            raise ESEventError(
                "Unsupported type: %s. Expected" % type(value).__name__ + " float, int, or str" + " type."
            )

        # Set the event variable
        es.dbgmsg(1, ("es.event('%s', '%s', '%s', %s)" % (DATATYPES[type(value)], self._name, field, value)))
        es.event(DATATYPES[type(value)], self._name, field, value)
Example #7
0
    def set(self, field, value):
        """Sets the event variable values dynamically for es.event()."""
        if not type(value) in DATATYPES:
            raise ESEventError('Unsupported type: %s. Expected' %
                               type(value).__name__ + ' float, int, or str' +
                               ' type.')

        # Set the event variable
        es.dbgmsg(1, ("es.event('%s', '%s', '%s', %s)" %
                      (DATATYPES[type(value)], self._name, field, value)))
        es.event(DATATYPES[type(value)], self._name, field, value)
Example #8
0
    def __exit__(self, exc_type, exc_value, traceback):
        """Utilized when the EventContextManager is exited. Used to fire the
        event if there were no errors while setting the values. If any
        tracebacks were generated between the entering of the
        EventContextManager and the exit, the event will be cancelled.

        """
        # Check if there is a traceback, then fire or cancel the event
        if not traceback:
            # Fire the event
            es.dbgmsg(1, "es.event('fire', '%s')" % self._name)
            es.event('fire', self._name)
            return True

        # Cancel the event
        es.dbgmsg(1, "es.event('cancel', '%s')" % self._name)
        es.event('cancel', self._name)
        return False
Example #9
0
    def __exit__(self, exc_type, exc_value, traceback):
        """Utilized when the EventContextManager is exited. Used to fire the
        event if there were no errors while setting the values. If any
        tracebacks were generated between the entering of the
        EventContextManager and the exit, the event will be cancelled.

        """
        # Check if there is a traceback, then fire or cancel the event
        if not traceback:
            # Fire the event
            es.dbgmsg(1, "es.event('fire', '%s')" % self._name)
            es.event("fire", self._name)
            return True

        # Cancel the event
        es.dbgmsg(1, "es.event('cancel', '%s')" % self._name)
        es.event("cancel", self._name)
        return False
Example #10
0
    def set_event_var(self, item, value):
        """Sets the event variable by its type. If the type is not found, the
        type is assumed to be string.

        """
        if isinstance(value, int):
            es.event("setint", self.name, item, value)
        elif isinstance(value, float):
            es.event("setfloat", self.name, item, value)
        else:
            es.event("setstring", self.name, item, str(value))
Example #11
0
    def set_event_var(self, item, value):
        """Sets the event variable by its type. If the type is not found, the
        type is assumed to be string.

        """
        if isinstance(value, int):
            es.event('setint', self.name, item, value)
        elif isinstance(value, float):
            es.event('setfloat', self.name, item, value)
        else:
            es.event('setstring', self.name, item, str(value))
Example #12
0
 def executePlayerOption(self, userid, choice, popupid):
     target = popupid.replace("sourcerpg_player", "")
     if choice == 1:
         """ Give experience """
         popupName = "sourcerpg_addxp_player%s" % target
         self.createAmountMenu(popupName, self.addXp, popupid).send(userid)
         
     elif choice == 2:
         """ Give levels """
         popupName = "sourcerpg_addlevel_player%s" % target
         self.createAmountMenu(popupName, self.addLevels, popupid).send(userid)
         
     elif choice == 3:
         """ Give credits """
         popupName = "sourcerpg_addcredit_player%s" % target
         self.createAmountMenu(popupName, self.addCredits, popupid).send(userid)                
         
     elif choice == 4:
         """ Upgrade a skill """
         self.buildPlayerSkillsMenu("sourcerpg_upgrade_player%s" % target, target, self.upgradeSkill, popupid, True).send(userid)
         
     elif choice == 5:
         """ Downgrade a skill """
         self.buildPlayerSkillsMenu("sourcerpg_downgrade_player%s" % target, target, self.downgradeSkill, popupid, False).send(userid)
         
     elif choice == 6:
         """ Max all skills """
         if self.isOnline(target):
             """
             Player is online, assign all levels to the player's PlayerObject
             instance 
             """
             targetid = es.getuserid(target)
             for skill in sourcerpg.skills:
                 sourcerpg.players[targetid][skill.name] = int(skill.maxLevel)
                 es.event("initialize", "sourcerpg_skillupgrade")
                 es.event("setint",     "sourcerpg_skillupgrade", "userid", targetid)
                 es.event("setint",     "sourcerpg_skillupgrade", "level", int(skill.maxLevel))
                 es.event("setint",     "sourcerpg_skillupgrade", "cost",  0)
                 es.event("setstring",  "sourcerpg_skillupgrade", "skill", str(skill.name))
                 es.event("fire",       "sourcerpg_skillupgrade")
             self.chosenPlayer(userid, target, "sourcerpg_onlineplayers")
         else:
             """
             The player is offline so ensure that all the new values are
             assigned
             """
             query = "SELECT UserID FROM Player WHERE steamid=?"
             sourcerpg.database.execute(query, target)
             dbuserid = sourcerpg.database.fetchone()
             for skill in sourcerpg.skills:
                 query = "SELECT SkillID FROM Skill WHERE UserID=? AND name=?"
                 sourcerpg.database.execute(query, dbuserid, skill.name)
                 dbskillid = sourcerpg.database.fetchone()
                 if dbskillid is None:
                     query = "INSERT INTO Skill (name, level, UserID) VALUES (?, ?, ?)"
                     sourcerpg.database.execute(query, skill.name, int(skill.maxLevel), dbuserid)
                 else:
                     query = "UPDATE Skill SET level=? WHERE SkillID=?"
                     sourcerpg.database.execute(query, int(skill.maxLevel, dbskillid))
             self.chosenPlayer(userid, target, "sourcerpg_offlineplayers")
         tell(userid, 'maxed skills')
         
     elif choice == 8:
         """ Reset skills """
         if self.isOnline(target):
             player = es.getuserid(target)
             sourcerpg.players[player].resetSkills()
         else:
             """
             Because the player is offline, the next time they join .
             they'll be added to the database
             """
             sourcerpg.database.execute("SELECT UserID FROM Player WHERE steamid=?", target)
             targetid = sourcerpg.database.fetchone()
             sourcerpg.database.execute("DELETE FROM Player WHERE UserID=?", targetid)
             sourcerpg.database.execute("DELETE FROM Skill WHERE UserID=?", targetid)
Example #13
0
 def fire(self):
     """Fires the event."""
     es.event("fire", self.name)
Example #14
0
 def cancel(self):
     """Cancels the event."""
     es.event("cancel", self.name)
Example #15
0
 def cancel(self):
     """Cancels the event."""
     es.event('cancel', self.name)
Example #16
0
def event(argv):
    es.event(*argv)
Example #17
0
 def fire(self):
     """Fires the event."""
     es.event('fire', self.name)
Example #18
0
def event(argv):
  es.event(*argv)
Example #19
0
    def executePlayerOption(self, userid, choice, popupid):
        target = popupid.replace("sourcerpg_player", "")
        if choice == 1:
            """ Give experience """
            popupName = "sourcerpg_addxp_player%s" % target
            self.createAmountMenu(popupName, self.addXp, popupid).send(userid)

        elif choice == 2:
            """ Give levels """
            popupName = "sourcerpg_addlevel_player%s" % target
            self.createAmountMenu(popupName, self.addLevels,
                                  popupid).send(userid)

        elif choice == 3:
            """ Give credits """
            popupName = "sourcerpg_addcredit_player%s" % target
            self.createAmountMenu(popupName, self.addCredits,
                                  popupid).send(userid)

        elif choice == 4:
            """ Upgrade a skill """
            self.buildPlayerSkillsMenu("sourcerpg_upgrade_player%s" % target,
                                       target, self.upgradeSkill, popupid,
                                       True).send(userid)

        elif choice == 5:
            """ Downgrade a skill """
            self.buildPlayerSkillsMenu("sourcerpg_downgrade_player%s" % target,
                                       target, self.downgradeSkill, popupid,
                                       False).send(userid)

        elif choice == 6:
            """ Max all skills """
            if self.isOnline(target):
                """
                Player is online, assign all levels to the player's PlayerObject
                instance 
                """
                targetid = es.getuserid(target)
                for skill in sourcerpg.skills:
                    sourcerpg.players[targetid][skill.name] = int(
                        skill.maxLevel)
                    es.event("initialize", "sourcerpg_skillupgrade")
                    es.event("setint", "sourcerpg_skillupgrade", "userid",
                             targetid)
                    es.event("setint", "sourcerpg_skillupgrade", "level",
                             int(skill.maxLevel))
                    es.event("setint", "sourcerpg_skillupgrade", "cost", 0)
                    es.event("setstring", "sourcerpg_skillupgrade", "skill",
                             str(skill.name))
                    es.event("fire", "sourcerpg_skillupgrade")
                self.chosenPlayer(userid, target, "sourcerpg_onlineplayers")
            else:
                """
                The player is offline so ensure that all the new values are
                assigned
                """
                query = "SELECT UserID FROM Player WHERE steamid=?"
                sourcerpg.database.execute(query, target)
                dbuserid = sourcerpg.database.fetchone()
                for skill in sourcerpg.skills:
                    query = "SELECT SkillID FROM Skill WHERE UserID=? AND name=?"
                    sourcerpg.database.execute(query, dbuserid, skill.name)
                    dbskillid = sourcerpg.database.fetchone()
                    if dbskillid is None:
                        query = "INSERT INTO Skill (name, level, UserID) VALUES (?, ?, ?)"
                        sourcerpg.database.execute(query, skill.name,
                                                   int(skill.maxLevel),
                                                   dbuserid)
                    else:
                        query = "UPDATE Skill SET level=? WHERE SkillID=?"
                        sourcerpg.database.execute(
                            query, int(skill.maxLevel, dbskillid))
                self.chosenPlayer(userid, target, "sourcerpg_offlineplayers")
            tell(userid, 'maxed skills')

        elif choice == 8:
            """ Reset skills """
            if self.isOnline(target):
                player = es.getuserid(target)
                sourcerpg.players[player].resetSkills()
            else:
                """
                Because the player is offline, the next time they join .
                they'll be added to the database
                """
                sourcerpg.database.execute(
                    "SELECT UserID FROM Player WHERE steamid=?", target)
                targetid = sourcerpg.database.fetchone()
                sourcerpg.database.execute("DELETE FROM Player WHERE UserID=?",
                                           targetid)
                sourcerpg.database.execute("DELETE FROM Skill WHERE UserID=?",
                                           targetid)