def playerShop(self,playerInfo,shopID,value,itemInfo = None): if not shopID in self.tableData.keys(): return ErrorCode.shopIDError pvpShopItem = self.tableData[shopID] if playerInfo.costResource(pvpShopItem.cost_type,pvpShopItem.cost_value): itemID = pvpShopItem.buy_item_id item = itemTable.getItemConstInfo(itemID) if item.bodyid == 8:# resource playerInfo.addResource(item.buftype,value) else: return ErrorCode.resourceNotEnough
def randomValue(self, level): value = random.randint(self.from_num,self.to_num) level_info = levelTable.getItem(level) draw = itemTable.getItemConstInfo(self.itemid) if draw.buftype == ResourceType.cash: value *= level_info.monstercoins*draw.buffValue elif draw.buftype == ResourceType.revial: value *= level_info.recycle*draw.buffValue elif draw.buftype == ResourceType.awake_spell: value *= draw.buffValue return ResourceAndVlue((self.itemid,value))
def post(self): bodyData = self.request.body params = MessageTools.decode(bodyData) token = params.get("token") gift_no = params.get("gift_no", 1) player = playerDataManager.getPlayerByToken(token) returnData = MessData() # 玩家登录检测 if player == None: returnData = MessData(ErrorCode.tokenOutData) self.write(MessageTools.encode(returnData)) self.finish() return # 玩家connect id检测 connect_id = params.get("connect_id", "") # 玩家连接id ck_connectid = playerDataManager.check_connect_id(obj=player, post_connect_id=connect_id) if ck_connectid[0] is False: returnData = MessData(ck_connectid[1]) self.write(MessageTools.encode(returnData)) self.finish() return # 玩家礼包类型检测 gift_status = player.recharge_get_gifts_status.get("%d" % gift_no, False) if gift_status is False: returnData = MessData(ErrorCode.opeventCumulativeRechargeTypeError) self.write(MessageTools.encode(returnData)) self.finish() return # 是否领取检测 if int(gift_status) != 0: returnData = MessData(ErrorCode.opeventCumulativeRechargeStatusError) self.write(MessageTools.encode(returnData)) self.finish() return # 是否达到条件检测 rewords = openServerTable.getOpeventServer(1, gift_no) if not rewords: returnData = MessData(ErrorCode.opeventCumulativeRechargeRewordsError) self.write(MessageTools.encode(returnData)) self.finish() return if player.recharge_total_num < int(rewords.condition): returnData = MessData(ErrorCode.opeventCumulativeRechargeCompletedError) self.write(MessageTools.encode(returnData)) self.finish() return # 添加奖励 if rewords.item1 > 0: player.addResource(rewords.item1, rewords.num1) if rewords.item2 > 0: item = itemTable.getItemConstInfo(rewords.item2) player.addResource(item.buftype, rewords.num2) # 修改礼包状态 player.recharge_get_gifts_status["%d" % gift_no] = 1 str = MessageTools.encode(returnData) self.write(str) self.finish() if player != None: playerDataManager.checkNeedSave2DB(player.player_id)
def _process(self, params): token = params.get('token') drawtimes = params.get('drawtimes',1) free_draw = params.get('free_draw',0) player = playerDataManager.getPlayerByToken(token) returnData = MessData() if player == None: returnData = MessData(ErrorCode.tokenOutData) else: # Íæ¼Òconnect id¼ì²â connect_id = params.get('connect_id', '') # Íæ¼ÒÁ¬½Óid ck_connectid = playerDataManager.check_connect_id(obj=player, post_connect_id=connect_id) if ck_connectid[0] is False: returnData = MessData(ck_connectid[1]) self.write(MessageTools.encode(returnData)) self.finish() return if free_draw == 1: if GameTools.getDatetimeNow() < GameTools.string2datetime(player.last_free_draw_datetime) + datetime.timedelta(hours = 23): returnData = MessData(ErrorCode.skillincd) str = MessageTools.encode(returnData) self.write(str) self.finish() if player != None: playerDataManager.checkNeedSave2DB(player.player_id) return cost = 0 if drawtimes == 1: if free_draw == 0: cost = int(gloabalBase.getValue('draw1cost')) else: cost = int(gloabalBase.getValue('draw10cost')) if player.costResource(ResourceType.gems,cost): if free_draw == 1: player.last_free_draw_datetime = GameTools.getDateTimeNowString() rewards = [] if drawtimes == 1: rewards = drawRewardManager.draw1Reward(player.game_level) else: rewards = drawRewardManager.draw10Reward(player.game_level) for resourceAndVlue in rewards: itemid = resourceAndVlue.itemid value = resourceAndVlue.value item = itemTable.getItemConstInfo(itemid) resourceId = item.buftype player.addResource(resourceId,value) if item.quliaty > 3: drawHistoryManager.pushIntoHistory(player.name,resourceAndVlue) returnData.data = rewards else: returnData = MessData(ErrorCode.resourceNotEnough) str = MessageTools.encode(returnData) self.write(str) self.finish() if player != None: playerDataManager.checkNeedSave2DB(player.player_id)