def harvest_1245(data, player): """ 收获符文石,待测试 """ request = mine_pb2.positionRequest() request.ParseFromString(data) response = mine_pb2.drawStones() response.position = request.position detail_info = player.mine.detail_info(request.position) ret, stype, last_increase, limit, normal, lucky, lineup, guard_time = detail_info num = sum(normal.values()) + sum(lucky.values()) if player.runt.bag_is_full(num): response.res.result = False response.res.result_no = 12451 return response.SerializePartialToString() stones = player.mine.harvest(request.position) # print 'stones', stones if stones: if not add_stones(player, stones, response): response.res.result = False response.res.result_no = 824 return response.SerializePartialToString() else: response.res.result = False response.res.result_no = 12450 response.res.message = u"没有可以领取的符文石" player.mine.save_data() player.runt.save() hook_task(player, CONDITIONId.GAIN_RUNT, 1) return response.SerializePartialToString()
def query_1243(data, player): """ 查看矿点详细信息 """ request = mine_pb2.positionRequest() request.ParseFromString(data) response = mine_pb2.mineDetail() response.position = request.position detail_info = player.mine.detail_info(request.position) # print detail_info last_increase = detail_info.get('increase', 0) stype = detail_info['type'] mine_item = game_configs.mine_config[detail_info['mine_id']] limit = mine_item.outputLimited normal = detail_info['normal'] lucky = detail_info['lucky'] guard_time = detail_info.get('guard_time', 0) stage_id = detail_info.get('stage_id', 0) seek_help = detail_info.get('seek_help', 0) response.res.result = True mstatus = player.mine.mine_info(request.position) one_mine_info(player, mstatus, response.mine) response.limit = limit for sid, num in normal.items(): one_type = response.normal.add() one_type.stone_id = int(sid) one_type.stone_num = num for sid, num in lucky.items(): one_type = response.lucky.add() one_type.stone_id = int(sid) one_type.stone_num = num response.increase = int(last_increase) if stype == 2: response.stage_id = int(stage_id) response.seek_help = seek_help line_up_info(player, response.lineup) if stype == 1: response.accelerate_times = detail_info.get('accelerate_times', 0) _uid = detail_info['uid'] char_obj = tb_character_info.getObj(_uid) if char_obj.exists(): lineup = char_obj.hget('copy_slots') response.lineup.ParseFromString(lineup) mid = player.mine.mid(request.position) mine_item = game_configs.mine_config.get(mid) response.genUnit = mine_item.timeGroup1 / mine_item.outputGroup1 response.rate = mine_item.increase response.incrcost = mine_item.increasePrice response.guard_time = int(guard_time) player.mine.save_data() print response, '=========================aaa' return response.SerializePartialToString()
def harvest_1245(data, player): """ 收获符文石,待测试 """ request = mine_pb2.positionRequest() request.ParseFromString(data) response = mine_pb2.drawStones() response.position = request.position detail_info = player.mine.detail_info(request.position) normal = detail_info['normal'] lucky = detail_info['lucky'] num = sum(normal.values()) + sum(lucky.values()) if player.runt.bag_is_full(num): response.res.result = False response.res.result_no = 124501 logger.error('mine harvest bag is full!') return response.SerializePartialToString() normal, lucky = player.mine.harvest(request.position) if normal: if not add_stones(player, normal, response.normal): response.res.result = False response.res.result_no = 124502 logger.error('mine harvest add stones fail!') return response.SerializePartialToString() if not add_stones(player, lucky, response.lucky): response.res.result = False response.res.result_no = 124503 logger.error('mine harvest add stones fail!') return response.SerializePartialToString() else: response.res.result = False response.res.result_no = 124504 response.res.message = u"没有可以领取的符文石" logger.error('mine harvest no stones to harvest!') return response.SerializePartialToString() player.mine.save_data() player.runt.save() player.act.mine_get_runt() target_update(player, [58]) hook_task(player, CONDITIONId.GAIN_RUNT, 1) tlog_action.log('MineHarvest', player, request.position, str(normal), str(lucky)) response.res.result = True logger.debug('mine harvest:%s', response) return response.SerializePartialToString()
def acc_mine_1250(data, player): """ 增产, 只有主矿能增产, 增产累计时长,ok """ request = mine_pb2.positionRequest() request.ParseFromString(data) response = mine_pb2.IncreaseResponse() detail_info = player.mine.detail_info(request.position) last_increase = detail_info['increase'] now = xtime.timestamp() main_mine = game_configs.mine_config.get(10001) if last_increase + main_mine.increasTime * 60 - now > main_mine.increasMaxTime * 60: response.res.result = True response.result_no = 12501 return response.SerializePartialToString() mine_item = game_configs.mine_config[detail_info['mine_id']] increasePrice = mine_item.increasePrice price = CommonGroupItem(0, increasePrice, increasePrice, const.GOLD) result = item_group_helper.is_afford(player, [price]) # 校验 if not result.get('result'): response.res.result = False response.res.result_no = result.get('result_no') response.res.message = u'消费不足!' return response.SerializePartialToString() else: response.res.result = True # print 'price', price need_gold = item_group_helper.get_consume_gold_num([price]) def func(): consume_return_data = item_group_helper.consume(player, [price], const.MINE_ACC) item_group_helper.get_return(player, consume_return_data, response.consume) player.pay.pay(need_gold, const.MINE_ACC, func) last_time = player.mine.increase_mine() player.mine.save_data() tlog_action.log('MineAcc', player, time.strftime("%Y-%m-%d %X", time.localtime(int(last_time)))) response.position = 0 response.last_time = int(last_time) return response.SerializePartialToString()
def query_1243(data, player): """ 查看矿点详细信息 """ request = mine_pb2.positionRequest() request.ParseFromString(data) response = mine_pb2.mineDetail() response.position = request.position detail_info = player.mine.detail_info(request.position) ret, stype, last_increase, limit, normal, lucky, lineup, guard_time = detail_info # print 'query 1243', normal, lucky if ret == 0: response.res.result = True mstatus = player.mine.mine_info(request.position) one_mine_info(mstatus, response.mine) response.limit = limit for sid, num in normal.items(): one_type = response.normal.add() one_type.stone_id = int(sid) one_type.stone_num = num for sid, num in lucky.items(): one_type = response.lucky.add() one_type.stone_id = int(sid) one_type.stone_num = num response.increase = int(last_increase) if stype == 2: response.stage_id = int(lineup) if stype == 1: if lineup is not None: response.lineup.ParseFromString(lineup.get('line_up')) mid = player.mine.mid(request.position) main_mine = game_configs.mine_config.get(mid) response.genUnit = int((60 / main_mine.timeGroup1) * main_mine.outputGroup1) response.rate = main_mine.increase response.incrcost = main_mine.increasePrice response.guard_time = int(guard_time) else: response.res.result = False response.res.result_no = ret player.mine.save_data() # print '1243-response', response return response.SerializePartialToString()
def reward_1249(data, player): """ 宝箱领奖,ok """ request = mine_pb2.positionRequest() request.ParseFromString(data) response = mine_pb2.boxReward() response.position = request.position items = response.data if not player.mine.reward(request.position): items.res.result = False items.res.result_no = 12490 items.res.message = u"已领取" return items.SerializePartialToString() player.mine.save_data() drop_id = game_configs.base_config['warFogChest'] add_items(player, items, [drop_id]) # print 'reward_1249-response', response return response.SerializePartialToString()
def reward_1249(data, player): """ 宝箱领奖,ok """ request = mine_pb2.positionRequest() request.ParseFromString(data) response = mine_pb2.boxReward() response.position = request.position items = response.data if not player.mine.reward(request.position): items.res.result = False items.res.result_no = 12490 items.res.message = u"已领取" return items.SerializePartialToString() player.mine.save_data() drop_id = game_configs.base_config['warFogChest'] add_items(player, items.gain, [drop_id]) # print 'reward_1249-response', response tlog_action.log('MineBox', player) return response.SerializePartialToString()
def query_shop_1247(data, player): """ 查看神秘商人信息,ok """ request = mine_pb2.positionRequest() request.ParseFromString(data) shop_ids = player.mine.shop_info(request.position) response = mine_pb2.shopStatus() if shop_ids: response.res.result = True for shop_id, status in shop_ids.items(): one_shop = response.shop.add() one_shop.shop_id = shop_id one_shop.status = status else: response.res.result = False response.res.message = u"商人不存在" player.mine.save_data() # print 'query_shop_1247-response', response return response.SerializePartialToString()
def acc_mine_1250(data, player): """ 增产, 只有主矿能增产, 增产累计时长,ok """ request = mine_pb2.positionRequest() request.ParseFromString(data) response = mine_pb2.IncreaseResponse() detail_info = player.mine.detail_info(request.position) ret, stype, last_increase, limit, normal, lucky, lineup, guard_time = detail_info now = xtime.timestamp() main_mine = game_configs.mine_config.get(10001) if last_increase + main_mine.increasTime * 60 - now > main_mine.increasMaxTime * 60: response.res.result = True response.result_no = 12501 return response.SerializePartialToString() increasePrice = player.mine.price(request.position) price = CommonGroupItem(0, increasePrice, increasePrice, const.GOLD) result = item_group_helper.is_afford(player, [price]) # 校验 if not result.get('result'): response.res.result = False response.res.result_no = result.get('result_no') response.res.message = u'消费不足!' return response.SerializePartialToString() else: response.res.result = True # print 'price', price need_gold = item_group_helper.get_consume_gold_num([price]) def func(): consume_return_data = item_group_helper.consume(player, [price], const.MINE_ACC) # 消耗 item_group_helper.get_return(player, consume_return_data, response.consume) player.pay.pay(need_gold, const.MINE_ACC, func) last_time = player.mine.acc_mine() player.mine.save_data() response.position = 0 response.last_time = int(last_time) return response.SerializePartialToString()
def search_1241(data, player): """ 搜索矿点,ok """ # print 'search_1241' request = mine_pb2.positionRequest() request.ParseFromString(data) response = mine_pb2.searchResponse() response.position = request.position logger.debug('response.position:%s', response.position) if player.mine.can_search(request.position): player.mine.search_mine(request.position) player.mine.save_data() one_mine = player.mine.mine_info(request.position) one_mine_info(player, one_mine, response.mine) response.res.result = True hook_task(player, CONDITIONId.MINE_EXPLORE, 1) else: response.res.result = False response.res.result_no = 12410 response.res.message = u"超出探索范围" # print '1241-response', response player.mine.save_data() return response.SerializePartialToString()