示例#1
0
    def decEquip(self, uuid, count):
        if uuid not in self.equipsContainer:
            self.onEquipError(EquipModuleError.Equip_not_exist)
            return

        curCount = self.equipsContainer[uuid]["amount"]
        itemID = self.equipsContainer[uuid]["itemID"]
        if curCount < count:
            self.onEquipError(EquipModuleError.Equip_not_enough)
            return

        if curCount > count:
            setMap = {"amount": curCount - count}
            filterMap = {"roleID": self.databaseID, "UUID": uuid}
            sql = util.getUpdateSql("tbl_ItemEquips", setMap, filterMap)

            @util.dbDeco
            def cb(result, rownum, error):
                self.equipsContainer[uuid]["amount"] = curCount - count

                self.noticeClientBagUpdate(uuid,itemID , curCount - count)

            KBEngine.executeRawDatabaseCommand(sql, cb)
        elif curCount == count:
            filterMap = {"roleID": self.databaseID, "UUID": uuid}
            sql = util.getDelSql("tbl_ItemEquips", filterMap)

            @util.dbDeco
            def cb(result, rownum, error):
                del self.equipsContainer[uuid]
                self.noticeClientBagUpdate(uuid, itemID, 0)
                return

            KBEngine.executeRawDatabaseCommand(sql, cb)
示例#2
0
    def delMail(self, mailTime):
        @util.dbDeco
        def delSucCB(result, rownum, error):
            for i in range(len(self.mails)):
                if self.mails[i]["time"] == mailTime:
                    del self.mails[i]
                    break

        filterValueMap = {"to_dbid": self.databaseID, "time": mailTime}
        sql = util.getDelSql("tbl_Mails", filterValueMap)
        KBEngine.executeRawDatabaseCommand(sql, delSucCB)
示例#3
0
    def delAllMailByType(self, mailType):
        @util.dbDeco
        def delSucCB(result, rownum, error):
            for i in range(len(self.mails) - 1, -1, -1):
                if self.mails[i]["state"] == Mails.Mail_State_read:
                    del self.mails[i]
            self.getMail()

        filterValueMap = {
            "to_dbid": self.databaseID,
            "state": Mails.Mail_State_read
        }
        sql = util.getDelSql("tbl_Mails", filterValueMap)
        KBEngine.executeRawDatabaseCommand(sql, delSucCB)
示例#4
0
    def onDelYouFriend(self, selfDBID, toDBID, toMethod):
        # 在线
        if toDBID in self.dbidToMailBox:
            mb = self.dbidToMailBox[toDBID]
            args = {"delDBID": selfDBID}
            mb.onPlayerMgrCmd(toMethod, args)

        # 离线
        elif toDBID in self.dbidToOfflinePlayerInfo:
            rowValueMap = {"parentID": toDBID, "sm_value": selfDBID}
            sql = util.getDelSql("tbl_Avatar_friendDBIDList", rowValueMap,
                                 False)

            KBEngine.executeRawDatabaseCommand(sql, None)
示例#5
0
    def decPieces(self, uuid, count):
        if uuid not in self.piecesContainer:
            self.client.onPieceError(PieceCombineError.Piece_not_exist)
            return

        curCount = self.piecesContainer[uuid]["amount"]
        itemID = self.piecesContainer[uuid]["itemID"]
        if curCount < count:
            self.client.onPieceError(PieceCombineError.Piece_not_enough)
            return

        if curCount > count:
            setMap = {"amount": curCount - count}
            filterMap = {"roleID": self.databaseID, "UUID": uuid}
            sql = util.getUpdateSql("tbl_ItemPieces", setMap, filterMap)

            @util.dbDeco
            def cb(result, rownum, error):
                self.piecesContainer[uuid]["amount"] = curCount - count
                self.writeToDB()
                self.noticeClientBagUpdate(uuid, itemID, curCount - count)

                return

            KBEngine.executeRawDatabaseCommand(sql, cb)
        elif curCount == count:
            filterMap = {"roleID": self.databaseID, "UUID": uuid}
            sql = util.getDelSql("tbl_ItemPieces", filterMap)

            @util.dbDeco
            def cb(result, rownum, error):

                del self.piecesContainer[uuid]
                self.writeToDB()

                self.noticeClientBagUpdate(uuid, itemID, 0)
                return True

            KBEngine.executeRawDatabaseCommand(sql, cb)
示例#6
0
    def decDiamond(self, uuid, count):
        if uuid not in self.diamondsContainer:
            self.onDiamondError(DiamondModuleError.Diamond_not_exist)
            return
        ERROR_MSG("-----------decDiamond---------uuid-----------" + str(uuid))
        curCount = self.diamondsContainer[uuid]["amount"]
        itemID = self.diamondsContainer[uuid]["itemID"]

        if curCount < count:
            self.onDiamondError(DiamondModuleError.Diamond_not_enough)
            return

        if curCount > count:
            setMap = {"amount": curCount - count}
            filterMap = {"roleID": self.databaseID, "UUID": uuid}
            sql = util.getUpdateSql("tbl_ItemDiamonds", setMap, filterMap)

            @util.dbDeco
            def cb(result, rownum, error):

                self.diamondsContainer[uuid]["amount"] = curCount - count

                self.noticeClientBagUpdate(uuid, itemID, curCount - count)
                self.writeToDB()
                return

            KBEngine.executeRawDatabaseCommand(sql, cb)
        elif curCount == count:
            filterMap = {"roleID": self.databaseID, "UUID": uuid}
            sql = util.getDelSql("tbl_ItemDiamonds", filterMap)

            @util.dbDeco
            def cb(result, rownum, error):
                del self.diamondsContainer[uuid]
                self.noticeClientBagUpdate(uuid, itemID, 0)
                return

            KBEngine.executeRawDatabaseCommand(sql, cb)
示例#7
0
 def delEquipDB(self, item):
     filterMap = {"roleID": self.databaseID, "UUID": item["UUID"]}
     sql = util.getDelSql("tbl_ItemEquips", filterMap)
     KBEngine.executeRawDatabaseCommand(sql, None, self.id)