Fix for pomanders on profession cancel.
This commit is contained in:
		| @@ -24,8 +24,11 @@ import com.l2jmobius.gameserver.model.L2SkillLearn; | ||||
| import com.l2jmobius.gameserver.model.PcCondOverride; | ||||
| import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; | ||||
| import com.l2jmobius.gameserver.model.actor.transform.Transform; | ||||
| import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionCancel; | ||||
| import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerProfessionChange; | ||||
| import com.l2jmobius.gameserver.model.holders.ItemHolder; | ||||
| import com.l2jmobius.gameserver.model.itemcontainer.PcInventory; | ||||
| import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance; | ||||
| import com.l2jmobius.gameserver.model.skills.Skill; | ||||
| import com.l2jmobius.gameserver.util.Util; | ||||
|  | ||||
| @@ -51,10 +54,8 @@ public final class SkillTransfer extends AbstractNpcAI | ||||
| 	private SkillTransfer() | ||||
| 	{ | ||||
| 		setPlayerProfessionChangeId(this::onProfessionChange); | ||||
| 		if (Config.SKILL_CHECK_ENABLE) | ||||
| 		{ | ||||
| 			setOnEnterWorld(Config.SKILL_CHECK_ENABLE); | ||||
| 		} | ||||
| 		setPlayerProfessionCancelId(this::onProfessionCancel); | ||||
| 		setOnEnterWorld(Config.SKILL_CHECK_ENABLE); | ||||
| 	} | ||||
| 	 | ||||
| 	public void onProfessionChange(OnPlayerProfessionChange event) | ||||
| @@ -74,6 +75,29 @@ public final class SkillTransfer extends AbstractNpcAI | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	public void onProfessionCancel(OnPlayerProfessionCancel event) | ||||
| 	{ | ||||
| 		final L2PcInstance player = event.getActiveChar(); | ||||
| 		final int index = getTransferClassIndex(player); | ||||
| 		 | ||||
| 		// is a transfer class | ||||
| 		if (index < 0) | ||||
| 		{ | ||||
| 			return; | ||||
| 		} | ||||
| 		 | ||||
| 		int pomanderId = PORMANDERS[index].getId(); | ||||
| 		// remove unsused HolyPomander | ||||
| 		PcInventory inv = player.getInventory(); | ||||
| 		for (L2ItemInstance itemI : inv.getAllItemsByItemId(pomanderId)) | ||||
| 		{ | ||||
| 			inv.destroyItem("[HolyPomander - remove]", itemI, player, null); | ||||
| 		} | ||||
| 		// remove holy pomander variable | ||||
| 		final String name = HOLY_POMANDER + event.getClassId(); | ||||
| 		player.getVariables().remove(name); | ||||
| 	} | ||||
| 	 | ||||
| 	@Override | ||||
| 	public String onEnterWorld(L2PcInstance player) | ||||
| 	{ | ||||
| @@ -110,6 +134,11 @@ public final class SkillTransfer extends AbstractNpcAI | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			// SkillTransfer or HolyPomander missing | ||||
| 			if (count > 0) | ||||
| 			{ | ||||
| 				player.getInventory().addItem("[HolyPomander - missing]", PORMANDERS[index].getId(), count, player, null); | ||||
| 			} | ||||
| 		} | ||||
| 		return super.onEnterWorld(player); | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDev
					MobiusDev