Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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
Exemple #6
0
def _acquire_item(player, entity_id, number, generator_info):
    return acquire_item(player, entity_id, number, generator_info)
Exemple #7
0
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