Fixed skill reduce on skill success.

Contributed by yksdtc.
This commit is contained in:
MobiusDev 2016-12-28 17:52:20 +00:00
parent 650669f741
commit 9ffa9d022f
3 changed files with 11 additions and 3 deletions

View File

@ -25,6 +25,7 @@ import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.holders.ItemChanceHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.items.type.ActionType;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.SystemMessageId;
@ -83,6 +84,9 @@ public class CreateItemRandom extends AbstractEffect
return;
}
player.addItem("CreateItems", selectedItem.getId(), selectedItem.getCount(), player, true);
if ((item.getItem().getDefaultAction() != ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS) || player.destroyItem("Consume", item.getObjectId(), 1, player, true))
{
player.addItem("CreateItems", selectedItem.getId(), selectedItem.getCount(), player, true);
}
}
}

View File

@ -173,12 +173,16 @@ public class ItemSkillsTemplate implements IItemHandler
{
case CAPSULE:
case SKILL_REDUCE:
case SKILL_REDUCE_ON_SKILL_SUCCESS:
{
if (!hasConsumeSkill && item.getItem().hasImmediateEffect())
{
return true;
}
break;
}
case SKILL_REDUCE_ON_SKILL_SUCCESS:
{
return false;
}
}
return hasConsumeSkill;

View File

@ -319,7 +319,7 @@ public class SkillCaster implements Runnable
}
// Consume the required items. Should happen after use message is displayed and SetupGauge
if ((_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0) && !((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE)))
if ((_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0) && !((_item != null) && ((_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE) || (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS))))
{
if (!caster.destroyItemByItemId(_skill.toString(), _skill.getItemConsumeId(), _skill.getItemConsumeCount(), null, true))
{