Ejemplo n.º 1
0
    def readMail(self, mailTime):
        findKey = -1
        mailsCount = len(self.mails)

        state = Mails.Mail_State_read

        @util.dbDeco
        def updateSucCB(result, rownum, error):
            if findKey != -1:
                self.mails[findKey]["state"] = state

                self.client.onOperateSuc("readMail")

        for i in range(mailsCount):
            mail = self.mails[i]

            if mail["time"] == mailTime:
                if mail["state"] != Mails.Mail_State_Not_Open:
                    return
                findKey = i
                if mail["attachment"] != "":
                    state = Mails.Mail_State_Has_Open_Not_Get

                setValueMap = {"state": state}
                filterValueMap = {"to_dbid": self.databaseID, "time": mailTime}
                sql = util.getUpdateSql("tbl_Mails", setValueMap,
                                        filterValueMap)
                KBEngine.executeRawDatabaseCommand(sql, updateSucCB)

                break
Ejemplo n.º 2
0
    def __updateGifts(self, configID, addCount):

        # 1、是否存在
        isFind = False
        for item in self.giftContainer.values():
            if item["itemID"] != configID:
                continue
            isFind = True
            curCount = item["amount"]

            setMap = {"amount": curCount + addCount}
            filterMap = {"roleID": self.databaseID, "UUID": item["UUID"]}
            sql = util.getUpdateSql("tbl_ItemGifts", setMap, filterMap)

            @util.dbDeco
            def cb(result, rownum, error):
                self.giftContainer[
                    item["UUID"]]["amount"] = curCount + addCount

                self.noticeClientBagUpdate(item["UUID"], configID,
                                           curCount + addCount)
                return

            KBEngine.executeRawDatabaseCommand(sql, cb)
            break
        if isFind == True:
            return
        return self.__insertGift(configID, addCount)
Ejemplo n.º 3
0
    def updateGiftDB(self, item):
        setMap = {"amount": item["amount"]}
        filterMap = {"roleID": self.databaseID, "UUID": item["UUID"]}
        item["state"] = DBState.NoAction
        sql = util.getUpdateSql("tbl_ItemGifts", setMap, filterMap)

        KBEngine.executeRawDatabaseCommand(sql, None, self.id)
Ejemplo n.º 4
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)
Ejemplo n.º 5
0
    def __updateEquips(self, paramMap):

        # 1、是否存在
        isFind = False
        for item in self.equipsContainer.values():
            if item["itemID"] != paramMap["itemID"]:
                continue
            isFind = True
            curCount = item["amount"]

            setMap = {"amount": curCount + paramMap["amount"]}
            filterMap = {"roleID": self.databaseID, "UUID": item["UUID"]}
            sql = util.getUpdateSql("tbl_ItemEquips", setMap, filterMap)

            @util.dbDeco
            def cb(result, rownum, error):
                self.equipsContainer[item["UUID"]]["amount"] = curCount + paramMap["amount"]

                self.noticeClientBagUpdate(item["UUID"], paramMap["itemID"], curCount + paramMap["amount"])

            KBEngine.executeRawDatabaseCommand(sql, cb)
            break

        if isFind == True:
            return
        return self.__insertEquip(paramMap )
Ejemplo n.º 6
0
    def updateEquipDB(self, item):
        setMap = {}
        setMap[EquipItemKeys.star] = item["star"]
        setMap[EquipItemKeys.strongLevel] = item["strongLevel"]
        setMap[EquipItemKeys.gem1] = item["gem1"]
        setMap[EquipItemKeys.gem2] = item["gem2"]
        setMap[EquipItemKeys.gem3] = item["gem3"]
        filterMap = {"roleID": self.databaseID, "UUID": item["UUID"]}

        item["state"] = DBState.NoAction
        sql = util.getUpdateSql("tbl_ItemEquips", setMap, filterMap)
        KBEngine.executeRawDatabaseCommand(sql, None, self.id)
Ejemplo n.º 7
0
    def updateEquipProps(self,uuid,setMap):

        filterMap = {"roleID": self.databaseID, "UUID": uuid}
        sql = util.getUpdateSql("tbl_ItemEquips", setMap, filterMap)

        @util.dbDeco
        def cb(result, rownum, error):
            item = self.equipsContainer[uuid]

            for k,v in setMap.items():
                item[k] = v

            return True
        KBEngine.executeRawDatabaseCommand(sql,cb)
Ejemplo n.º 8
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)
Ejemplo n.º 9
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)