Beispiel #1
0
    def loadGifts(self):
        DEBUG_MSG("GiftModule  loadGifts")

        colTupe = ("sm_UUID", "sm_itemID", "sm_amount")
        filterMap = {"sm_roleID": self.databaseID}
        sql = util.getSelectSql("tbl_ItemGifts", colTupe, filterMap)

        @util.dbDeco
        def cb(result, rownum, error):
            DEBUG_MSG("GiftsModule  loadGiftsItem")
            if error is not None:
                ERROR_MSG("loadGifts      " + error)
                return
            if result is None:
                return
            for i in range(len(result)):
                giftItem = {}
                giftItem[GiftKeys.uuid] = int(result[i][0])
                giftItem[GiftKeys.itemID] = int(result[i][1])
                giftItem[GiftKeys.amount] = int(result[i][2])
                giftItem[GiftKeys.itemType] = ItemTypeEnum.Gift
                self.giftContainer[giftItem[GiftKeys.uuid]] = giftItem

                if giftItem[GiftKeys.uuid] not in self.bagUUIDList:
                    self.bagUUIDList.append(giftItem[GiftKeys.uuid])

        KBEngine.executeRawDatabaseCommand(sql, cb)
Beispiel #2
0
    def loadGifts(self):

        colTupe = ("sm_UUID", "sm_itemID", "sm_amount")
        filterMap = {"sm_roleID": self.databaseID}
        sql = util.getSelectSql("tbl_ItemGifts", colTupe, filterMap)

        @util.dbDeco
        def cb(result, rownum, error):
            DEBUG_MSG("GiftModule  loadGifts")
            if result is None:
                return
            for i in range(len(result)):
                giftItem = {}
                uuid = int(result[i][0])
                giftItem[GiftItemKeys.uuid] = uuid
                giftItem[GiftItemKeys.itemID] = int(result[i][1])
                giftItem[GiftItemKeys.amount] = int(result[i][2])
                giftItem[GiftItemKeys.itemState] = DBState.NoAction

                self.giftsContainer[giftItem[GiftItemKeys.uuid]] = giftItem

                if uuid not in self.bagUUIDList:
                    self.bagUUIDList.append(uuid)

        KBEngine.executeRawDatabaseCommand(sql, cb)
Beispiel #3
0
    def loadEquips(self):
        colTupe = ("sm_UUID", "sm_itemID", "sm_amount", "sm_star",
                   "sm_strongLevel", "sm_gem1", "sm_gem2", "sm_gem3")
        filterMap = {"sm_roleID": self.databaseID}
        sql = util.getSelectSql("tbl_ItemEquips", colTupe, filterMap)

        @util.dbDeco
        def cb(result, rownum, error):
            DEBUG_MSG("EquipModule  loadEquips")

            if result is None:
                return
            for i in range(len(result)):
                equipItem = {}
                equipItem[EquipItemKeys.itemType] = ItemTypeEnum.Equips
                uuid = int(result[i][0])

                equipItem[EquipItemKeys.uuid] = uuid
                equipItem[EquipItemKeys.itemID] = int(result[i][1])
                equipItem[EquipItemKeys.amount] = int(result[i][2])
                equipItem[EquipItemKeys.star] = int(result[i][3])
                equipItem[EquipItemKeys.strongLevel] = int(result[i][4])
                equipItem[EquipItemKeys.gem1] = int(result[i][5])
                equipItem[EquipItemKeys.gem2] = int(result[i][6])
                equipItem[EquipItemKeys.gem3] = int(result[i][7])
                equipItem[EquipItemKeys.state] = DBState.NoAction
                self.equipsContainer[uuid] = equipItem

                if uuid not in self.bagUUIDList:
                    self.bagUUIDList.append(uuid)

        KBEngine.executeRawDatabaseCommand(sql, cb)
Beispiel #4
0
    def loadDiamonds(self):
        colTupe = ("sm_UUID", "sm_itemID", "sm_amount")
        filterMap = {"sm_roleID": self.databaseID}
        sql = util.getSelectSql("tbl_ItemDiamonds", colTupe, filterMap)

        @util.dbDeco
        def cb(result, rownum, error):
            DEBUG_MSG("DiamondModule  loadDiamonds")
            if result is None:
                return
            for i in range(len(result)):
                pieceItem = {}
                uuid = int(result[i][0])
                pieceItem[DiamondItemKeys.uuid] = uuid
                pieceItem[DiamondItemKeys.itemID] = int(result[i][1])
                pieceItem[DiamondItemKeys.amount] = int(result[i][2])
                pieceItem[DiamondItemKeys.itemType] = ItemTypeEnum.Diamond

                self.diamondsContainer[pieceItem[
                    DiamondItemKeys.uuid]] = pieceItem

                if uuid not in self.bagUUIDList:
                    self.bagUUIDList.append(uuid)

        KBEngine.executeRawDatabaseCommand(sql, cb)
Beispiel #5
0
    def initMail(self):

        filterMap = {"sm_to_dbid": self.databaseID}
        sql = util.getSelectSql("tbl_Mails", filterValueMap=filterMap)

        @util.dbDeco
        def onMailsLoadCB(result, rownum, error):
            """
            加载邮件
            """
            if result is None:
                return

            for i in range(len(result)):
                mail = {}
                mail["mail_type"] = int(result[i][3])
                mail["title"] = result[i][4].decode('utf-8')
                mail["from_name"] = result[i][5].decode('utf-8')
                mail["text"] = result[i][6].decode('utf-8')
                mail["time"] = int(result[i][7])
                mail["attachment"] = result[i][8].decode('utf-8')
                mail["state"] = int(result[i][9])
                mail["extern_info"] = result[i][10].decode('utf-8')

                self.mails.insert(i, mail)

            DEBUG_MSG("mails load complete!")

        KBEngine.executeRawDatabaseCommand(sql, onMailsLoadCB)
Beispiel #6
0
    def loadUse(self):
        colTupe = ("sm_UUID", "sm_itemID", "sm_amount")
        filterMap = {"sm_roleID": self.databaseID}
        sql = util.getSelectSql("tbl_ItemUses", colTupe, filterMap)

        @util.dbDeco
        def cb(result, rownum, error):
            DEBUG_MSG("UseModule  loadUseItem")
            if error is not None:
                ERROR_MSG("UseModule      " + error)
                return
            if result is None:
                return
            for i in range(len(result)):
                useItem = {}
                useItem[UseItemKeys.uuid] = int(result[i][0])
                useItem[UseItemKeys.itemID] = int(result[i][1])
                useItem[UseItemKeys.amount] = int(result[i][2])
                useItem[UseItemKeys.itemType] = ItemTypeEnum.Use
                self.useContainer[useItem[UseItemKeys.uuid]] = useItem

                if useItem[UseItemKeys.uuid] not in self.bagUUIDList:
                    self.bagUUIDList.append(useItem[UseItemKeys.uuid])

        KBEngine.executeRawDatabaseCommand(sql, cb)
        pass
Beispiel #7
0
    def loadMaterial(self):

        colTupe = ("sm_UUID", "sm_itemID","sm_amount")
        filterMap = {"sm_roleID": self.databaseID}
        sql = util.getSelectSql("tbl_ItemMaterial", colTupe, filterMap)

        @util.dbDeco
        def cb(result, rownum, error):
            DEBUG_MSG("MaterialModule  loadMaterial")
            if result is None:
                ERROR_MSG("loadMaterial      " + error)
            for i in range(len(result)):
                item = {}
                uuid = int(result[i][0])
                item[MaterialItemKeys.uuid] = uuid
                item[MaterialItemKeys.itemID] = int(result[i][1])
                item[MaterialItemKeys.amount] = int(result[i][2])
                item[MaterialItemKeys.itemState] = DBState.NoAction

                self.materialsContainer[item[MaterialItemKeys.uuid]] = item

                if uuid not in self.bagUUIDList:
                    self.bagUUIDList.append(uuid)

        KBEngine.executeRawDatabaseCommand(sql, cb)
Beispiel #8
0
    def initOfflineData(self):
        colTuple = ("id", "sm_name", "sm_photoIndex", "sm_level", "sm_club",
                    "sm_fightValue", "sm_vipLevel", "sm_logoutTime")
        sql = util.getSelectSql("tbl_Avatar", colTuple)

        @util.dbDeco
        def queryResult(result, rownum, error):
            for item in result:
                playerInfo = {}
                playerInfo[FriendInfoKey.DBID] = int(item[0])
                playerInfo[FriendInfoKey.name] = item[1].decode('utf-8')
                playerInfo[FriendInfoKey.photoIndex] = str(item[2])
                playerInfo[FriendInfoKey.level] = int(item[3])
                playerInfo[FriendInfoKey.clubName] = item[4].decode('utf-8')
                playerInfo[FriendInfoKey.fightValue] = int(item[5])
                playerInfo[FriendInfoKey.vipLevel] = int(item[6])
                playerInfo[FriendInfoKey.onlineState] = int(item[7])

                self.dbidToOfflinePlayerInfo[playerInfo[
                    FriendInfoKey.DBID]] = playerInfo

                self.allPlayerInfo.append(playerInfo)
            self.allPlayerInfo.sort(key=lambda x: (x[
                FriendInfoKey.onlineState], x[FriendInfoKey.level]))

        KBEngine.executeRawDatabaseCommand(sql, queryResult)
Beispiel #9
0
    def reqCreateAvatar(self, job, name):
        """
        exposed.
        客户端请求创建一个角色
        """
        print("storing----------2")
        # if self.lastSelCharacter is not None:
        #     return
        # 判断是否重名

        if "kbe_bot_" in name:
            ERROR_MSG("kbe_bot_                                           " +
                      name)

        colTuple = ("id", )
        sql = util.getSelectSql("tbl_avatar",
                                colTuple,
                                filterValueMap={"sm_name": name})

        def queryResult(result, rownum, error):
            #         创建失败
            if result is None:
                return
            # 重名
            if len(result) >= 1:
                DEBUG_MSG(
                    "onCreateAvatarFail--------------------------------------------------"
                )
                # self.client.onCreateAvatarFail()
                return

            otherConfig = initCardConfig.OtherConfig[1]
            bagSize = otherConfig["bagSize"]

            cardConfig = initCardConfig.InitCardConfig[job]
            initFomation = cardConfig["initFomation"]

            param = {
                "name": name,
                "job": job,
                "bagSize": bagSize,
                "formation": initFomation
            }
            avatar = KBEngine.createBaseLocally("Avatar", param)
            if avatar is not None:
                # avatar.name = name
                # avatar.job = job
                # avatar.bagSize = 200
                avatar.writeToDB(self._onAvatarSaved)

        KBEngine.executeRawDatabaseCommand(sql, queryResult)
Beispiel #10
0
    def loadPiecesItem(self):
        colTupe = ("sm_UUID", "sm_itemID", "sm_amount")
        filterMap = {"sm_roleID": self.databaseID}
        sql = util.getSelectSql("tbl_ItemPieces", colTupe, filterMap)

        @util.dbDeco
        def cb(result, rownum, error):
            DEBUG_MSG("PiecesModule  loadPiecesItem")
            if result is None:
                return
            for i in range(len(result)):
                pieceItem = {}
                pieceItem[PieceItemKeys.uuid] = int(result[i][0])
                pieceItem[PieceItemKeys.itemID] = int(result[i][1])
                pieceItem[PieceItemKeys.amount] = int(result[i][2])
                self.piecesContainer[pieceItem[PieceItemKeys.uuid]] = pieceItem

                if pieceItem[PieceItemKeys.uuid] not in self.bagUUIDList:
                    self.bagUUIDList.append(pieceItem[PieceItemKeys.uuid])

        KBEngine.executeRawDatabaseCommand(sql, cb)
        pass