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)
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)
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)
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)
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)
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
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)
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)
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)
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