def taskDailyReward(request, response): """ 日常任务领取 """ player = request.player task_id = getattr(request.logic_request, "taskId", 0) task_id = int(task_id) task = get_dailytask(task_id) if player.dailytask_is_done(task.category): player.dailytask_done(task.category) #扫荡券 if task.is_vip_sweep: vip = get_vip(player.vip_level) acquire_item(player, Static.ITEM_SWEEP_ID, number=vip.sweepCount, info=u"VIP领取") else: for reward in task.rewards: reward_send(player, reward, info=u"日常任务领取") else: player.update_dailytask(task.category) AlertHandler(player, response, AlertID.ALERT_DAILYTASK_UNDONE, u"taskDailyReward:taskGid(%s) is not done" % (task_id)) return response
def guildShopBuy(request, response): """ 公会商店购买 """ player = request.player shopId = getattr(request.logic_request, "shopId", 0) info = u"公会商店购买" # 获取商店的信息。 guildShop = get_guildshop(shopId) if not player.guildshop.can_buy(shopId): return response if player.guild.gold < guildShop.cost: AlertHandler( player, response, AlertID.ALERT_GUILD_GOLD_NOT_ENOUGH, u"guildShopBuy need guild_gold %s now player has %s" % (guildShop.cost, player.guild.gold)) return response player.guildshop.buy(shopId) if guildShop.is_item: acquire_item(player, guildShop.itemId, number=guildShop.count, info=info) elif guildShop.is_equipfragment: acquire_equipfragment(player, guildShop.itemId, guildShop.count, info=info) elif guildShop.is_artifactfragment: acquire_artifactfragment(player, guildShop.itemId, number=guildShop.count, info=info) elif guildShop.is_soul: acquire_soul(player, guildShop.itemId, guildShop.count, info=info) else: raise ErrorException( player, u"mysteryShopBuy:arenashop(%s) is error" % (guildShop.itemId)) player.guild.sub_gold(guildShop.cost, info=info) rewards = [] rewards.append({"type": guildShop.itemId, "count": guildShop.count}) response.common_response.player.set("guild", player.guild.to_dict()) response.common_response.player.set("guildShop", player.guildshop.to_dict()) response.logic_response.set("rewards", rewards) return response
def debugGetAllHeroes(request, response): """ 英雄组队升级 """ player = request.player items = get_items() equips = get_equips() equipsfras = get_equipfragments() arts = get_artifacts() artfras = get_artifactfragments() souls = get_souls() for item in items: acquire_item(player, item, 10000) for equip in equips: acquire_equip(player, equip, 10000) for eqfa in equipsfras: acquire_equipfragment(player, eqfa, 10000) for art in arts: acquire_artifact(player, art, 10000) for artfa in artfras: acquire_artifactfragment(player, artfa, 10000) for soul in souls: acquire_soul(player, soul, 10000) playerheroes = player.heroes.all().keys() for hero in playerheroes: player.heroes.delete(hero) acquire_hero(player, 111000109, level=30, star=5, upgrade=9) acquire_hero(player, 111000209, level=30, star=5, upgrade=9) acquire_hero(player, 111000309, level=30, star=5, upgrade=9) acquire_hero(player, 111000509, level=30, star=5, upgrade=9) acquire_hero(player, 113000309, level=30, star=5, upgrade=9) acquire_hero(player, 112000209, level=30, star=5, upgrade=9) acquire_hero(player, 112000409, level=30, star=5, upgrade=9) acquire_hero(player, 112000509, level=30, star=5, upgrade=9) acquire_hero(player, 112000609, level=30, star=5, upgrade=9) acquire_hero(player, 112000709, level=30, star=5, upgrade=9) acquire_hero(player, 113000109, level=30, star=5, upgrade=9) acquire_hero(player, 114000209, level=30, star=5, upgrade=9) acquire_hero(player, 114000309, level=30, star=5, upgrade=9) acquire_hero(player, 114000409, level=30, star=5, upgrade=9) acquire_hero(player, 114000509, level=30, star=5, upgrade=9) acquire_hero(player, 114000609, level=30, star=5, upgrade=9) acquire_hero(player, 115000209, level=30, star=5, upgrade=9) acquire_hero(player, 115000309, level=30, star=5, upgrade=9) acquire_hero(player, 115000509, level=30, star=5, upgrade=9) acquire_hero(player, 116000109, level=30, star=5, upgrade=9) acquire_hero(player, 116000209, level=30, star=5, upgrade=9) acquire_hero(player, 116000309, level=30, star=5, upgrade=9) acquire_hero(player, 116000409, level=30, star=5, upgrade=9) acquire_hero(player, 116000509, level=30, star=5, upgrade=9) acquire_hero(player, 114000709, level=30, star=5, upgrade=9) acquire_hero(player, 116000709, level=30, star=5, upgrade=9) acquire_hero(player, 112000809, level=30, star=5, upgrade=9) return response
def equipDecompose(request, response): """ 装备分解 """ playerequip_ids = getattr(request.logic_request, "playerEquipIds", []) player = request.player rewards = [] refine_item_id = Static.ITEM_REFINE_ID for playerequip_id in playerequip_ids: playerequip = player.equips.get(playerequip_id) if not playerequip: raise ErrorException( player, u"equipDecompose:playerequip_id(%s) is not existed" % playerequip_id) if not playerequip.can_decompose: player.update_equip(playerequip) AlertHandler( player, response, AlertID.ALERT_EQUIP_CAN_NOT_DECOMPOSE, u"equipDecompose: playerequip_id(%s) can not decompose" % (playerequip_id)) return response refinexp = playerequip.equip.decomposeRefinePoint for i in range(0, playerequip.refineLevel): equiprefine = get_equiprefine(playerequip.equip.quality, i) refinexp += equiprefine.refineXp info = u"装备分解:%s:%s" % (playerequip_id, playerequip.equip_id) refinepoint = get_item(refine_item_id).number number = refinexp / refinepoint if number > 0: acquire_item(player, refine_item_id, number=number, info=info) rewards.append({"type": refine_item_id, "count": number}) player.delete_equip(playerequip_id, True) ActionLogWriter.equip_delete(player, playerequip.pk, playerequip.equip_id, info) response.logic_response.set("rewards", rewards) return response
def honorShopBuy(request, response): """ 荣誉商店兑换 """ arenashop_id = getattr(request.logic_request, "honorShopId", 0) player = request.player #检查竞技场开放状态 if not player.isOpenArena: return response arenashop = get_arenashop(arenashop_id) if not arenashop: raise ErrorException( player, u"honorShopBuy:arenashop(%s) no existed" % arenashop_id) info = u"荣誉商店兑换:%s" % arenashop_id if not player.arenashop.can_exchange(arenashop_id): response.common_response.player.set("honorShop", player.arenashop.to_dict()) AlertHandler( player, response, AlertID.ALERT_ARENASHOP_CAN_NO_EXCHANGE, u"honorShopBuy:arenashop(%s) can not buyed buyItem(%s) shopItem(%s)" % (arenashop_id, str( player.arenashop.buyItem), str(player.arenashop.shopItem))) return response if player.PVP.honor < arenashop.score: response.common_response.player.set("arena", player.PVP.to_dict()) AlertHandler( player, response, AlertID.ALERT_HONOR_NOT_ENOUGH, u"honorShopBuy:arenashop(%s) can not buyed honor(%s) playerhonor(%s)" % (arenashop_id, arenashop.score, player.PVP.honor)) return response player.PVP.sub_honor(arenashop.score, info=info) player.arenashop.exchange(arenashop.pk) if arenashop.is_item: acquire_item(player, arenashop.itemId, number=arenashop.count, info=info) elif arenashop.is_equipfragment: acquire_equipfragment(player, arenashop.itemId, arenashop.count, info=info) elif arenashop.is_artifactfragment: acquire_artifactfragment(player, arenashop.itemId, number=arenashop.count, info=info) elif arenashop.is_soul: acquire_soul(player, arenashop.itemId, number=arenashop.count, info=info) else: raise ErrorException( player, u"honorShopBuy:arenashop(%s) is error" % (arenashop_id)) response.common_response.player.set("honorShop", player.arenashop.to_dict()) # 这里只是为了更新荣誉点数,因为买东西消耗了这个 response.common_response.player.set("arena", player.PVP.to_dict()) return response
def _acquire_item(player, entity_id, number, generator_info): return acquire_item(player, entity_id, number, generator_info)
def equipMelt(request, response): """ 装备回炉 """ playerequip_id = getattr(request.logic_request, "playerEquipId", 0) player = request.player playerequip = player.equips.get(playerequip_id) if not playerequip: raise ErrorException( player, u"equipMelt:playerequip_id(%s) is not existed" % playerequip_id) if not playerequip.can_melt: player.update_equip(playerequip) AlertHandler( player, response, AlertID.ALERT_EQUIP_CAN_NOT_MELT, u"equipMelt:playerequip_id(%s) can not melt" % (playerequip_id)) return response #根据 装备分类,装备等级,精炼等级 计算回炉消耗的钻石。 # diamond = Static.EQUIP_QUALITY_RATIO * playerequip.equip.quality + Static.EQUIP_LEVEL_RATIO * playerequip.level + Static.EQUIP_REFINELEVEL_RATIO * playerequip.refineLevel diamond = playerequip.equip.quality * (playerequip.level + playerequip.refineLevel * 4) / 5 if player.yuanbo < diamond: AlertHandler( player, response, AlertID.ALERT_DIAMOND_NOT_ENOUGH, u"equipMelt:playerequip_id(%s) melt costYuanbo(%s) playerYuanbo(%s)" % (playerequip_id, diamond, player.yuanbo)) return response gold = 0 refinexp = 0 for i in range(1, playerequip.level): equipenhance = get_equipenhance(i) gold += equipenhance.gold for i in range(0, playerequip.refineLevel): equiprefine = get_equiprefine(playerequip.equip.quality, i) refinexp += equiprefine.refineXp info = u"装备回炉:%s:%s" % (playerequip_id, playerequip.equip_id) player.sub_yuanbo(diamond, info) playerequip.melt() rewards = [] gold = int(Static.EQUIP_GOLD_RATIO * gold) player.add_gold(gold, info) rewards.append({"type": Static.GOLD_ID, "count": gold}) refine_item_id = Static.ITEM_REFINE_ID refinepoint = get_item(refine_item_id).number number = refinexp / refinepoint if number > 0: acquire_item(player, refine_item_id, number=number, info=info) rewards.append({"type": refine_item_id, "count": number}) #检查装备精炼大师 & 强化大师 if playerequip.playerhero_id > 0: playerhero = player.heroes.get(playerequip.playerhero_id) # 之所以不用or将两个表达式相连是因为每个表达式里面有对应的操作,如果满足了第一个条件那么第二个就不会执行。 check_refine = playerhero.check_equip_refinemaster() check_enhance = playerhero.check_equip_enhancemaster() if check_refine or check_enhance: player.update_hero(playerhero, True) player.update_equip(playerequip, True) response.logic_response.set("rewards", rewards) return response