Change class should not remove equipped item skills.
This commit is contained in:
		| @@ -51,9 +51,11 @@ import org.l2jmobius.gameserver.model.base.ClassId; | ||||
| import org.l2jmobius.gameserver.model.base.SocialClass; | ||||
| import org.l2jmobius.gameserver.model.clan.Clan; | ||||
| import org.l2jmobius.gameserver.model.holders.ItemHolder; | ||||
| import org.l2jmobius.gameserver.model.holders.ItemSkillHolder; | ||||
| import org.l2jmobius.gameserver.model.holders.PlayerSkillHolder; | ||||
| import org.l2jmobius.gameserver.model.holders.SkillHolder; | ||||
| import org.l2jmobius.gameserver.model.interfaces.ISkillsHolder; | ||||
| import org.l2jmobius.gameserver.model.items.instance.ItemInstance; | ||||
| import org.l2jmobius.gameserver.model.skills.CommonSkill; | ||||
| import org.l2jmobius.gameserver.model.skills.Skill; | ||||
|  | ||||
| @@ -1456,7 +1458,27 @@ public class SkillTreesData implements IXmlReader | ||||
| 			 | ||||
| 			if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel())) | ||||
| 			{ | ||||
| 				player.removeSkill(skill, true, true); | ||||
| 				// Do not remove equipped item skills. | ||||
| 				boolean isItemSkill = false; | ||||
| 				SEARCH: for (ItemInstance item : player.getInventory().getItems()) | ||||
| 				{ | ||||
| 					final List<ItemSkillHolder> itemSkills = item.getItem().getAllSkills(); | ||||
| 					if (itemSkills != null) | ||||
| 					{ | ||||
| 						for (ItemSkillHolder itemSkillHolder : itemSkills) | ||||
| 						{ | ||||
| 							if (itemSkillHolder.getSkillId() == skill.getId()) | ||||
| 							{ | ||||
| 								isItemSkill = true; | ||||
| 								break SEARCH; | ||||
| 							} | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
| 				if (!isItemSkill) | ||||
| 				{ | ||||
| 					player.removeSkill(skill, true, true); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment