Пример #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")
Пример #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
Пример #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
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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
Пример #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
Пример #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))
Пример #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))
Пример #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)
Пример #13
0
 def fire(self):
     """Fires the event."""
     es.event("fire", self.name)
Пример #14
0
 def cancel(self):
     """Cancels the event."""
     es.event("cancel", self.name)
Пример #15
0
 def cancel(self):
     """Cancels the event."""
     es.event('cancel', self.name)
Пример #16
0
def event(argv):
    es.event(*argv)
Пример #17
0
 def fire(self):
     """Fires the event."""
     es.event('fire', self.name)
Пример #18
0
def event(argv):
  es.event(*argv)
Пример #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)