↑ ↓

Заточка стигм

Тема в разделе "Помощь", создана пользователем nokiafan1111, 25 июн 2017.

  1. TopicStarter Overlay
    Offline

    nokiafan1111 Ефрейтор

    331
    21
    51
    Кредиты:
    $329,63
    Репутация:
    2
    Всем привет.

    Столкнулся с проблемой при заточке стигм. Распишу по пуктам, объяснить сложновато)
    1) Забиваете все слоты стигмами, оригинальными.
    2) Берете любую стигму, любого класса и точите до +1
    3) Тпшаетесь в другую локацию или в релог
    4) Вуаля, у вас есть скил другово класса или же скилы стигм которые вы не одели.

    Может кто помочь с этой фичей? капнул сервис заточки. Что тут можно добавить или поменять, чтобы "заблокировать" присвоение скилов.

    public static void enchantStigmaAct(Player player, Item parentItem, Item targetItem, int currentEnchant, boolean result) {
    if (result) {
    currentEnchant++;
    } else {
    currentEnchant = 0;
    }

    if (!player.getInventory().decreaseByObjectId(parentItem.getObjectId(), 1)) {
    AuditLogger.info(player, "Possible enchant hack, can't remove 2nd stigma.");
    return;
    }

    targetItem.setEnchantLevel(currentEnchant);

    if (targetItem.isEquipped()) {
    player.getGameStats().updateStatsVisually();
    }

    ItemPacketService.updateItemAfterInfoChange(player, targetItem);

    if (targetItem.isEquipped()) {
    player.getEquipment().setPersistentState(PersistentState.UPDATE_REQUIRED);
    } else {
    player.getInventory().setPersistentState(PersistentState.UPDATE_REQUIRED);
    }

    if (result) {
    Stigma stigmaInfo = targetItem.getItemTemplate().getStigma();

    for (Stigma.StigmaSkill sSkill : stigmaInfo.getSkills()) {
    String sSkillStack = DataManager.SKILL_DATA.getSkillTemplate(sSkill.getSkillId()).getStack();

    for (PlayerSkillEntry psSkill : player.getSkillList().getStigmaSkills()) {
    if (psSkill.getSkillTemplate().getStack().equals(sSkillStack)) {
    SkillLearnService.removeSkill(player, psSkill.getSkillId());
    player.getEffectController().removeEffect(psSkill.getSkillId());
    }
    }
    }

    player.getSkillList().deleteHiddenStigmaSilent(player);

    //TODO block enchant to the max skill lvl
    Integer realSkillId = DataManager.SKILL_TREE_DATA.getStigmaTree().get(player.getRace()).get(DataManager.SKILL_DATA.getSkillTemplate(stigmaInfo.getSkills().get(0).getSkillId()).getStack()).get(targetItem.getEnchantLevel() + 1);
    if (realSkillId != null) {
    player.getSkillList().addStigmaSkill(player, realSkillId, 1);
    } else {
    log.error("No have Stigma skill for enchanted stigma item.");
    }

    StigmaService.recheckHiddenStigma(player);

    PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.STR_MSG_STIGMA_ENCHANT_SUCCESS(new DescriptionId(targetItem.getNameId())));
    } else {
    PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.STR_MSG_STIGMA_ENCHANT_FAIL(new DescriptionId(targetItem.getNameId())));
    player.getInventory().decreaseByObjectId(targetItem.getObjectId(), 1);
    }
    }