Removed packet locks and relative improvements.
This commit is contained in:
		| @@ -43,7 +43,6 @@ import org.l2jmobius.gameserver.network.SystemMessageId; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.ExChangeToAwakenedClass; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.ExShowUsm; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.SocialAction; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.UserInfo; | ||||
|  | ||||
| import ai.AbstractNpcAI; | ||||
| import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows; | ||||
| @@ -327,10 +326,7 @@ public class AwakeningMaster extends AbstractNpcAI | ||||
| 			player.setBaseClass(player.getActiveClass()); | ||||
| 		} | ||||
| 		player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER); | ||||
| 		final UserInfo ui = new UserInfo(player, false); | ||||
| 		ui.addComponentType(UserInfoType.BASIC_INFO); | ||||
| 		ui.addComponentType(UserInfoType.MAX_HPCPMP); | ||||
| 		player.sendPacket(ui); | ||||
| 		player.broadcastUserInfo(UserInfoType.BASIC_INFO, UserInfoType.MAX_HPCPMP); | ||||
| 		player.broadcastInfo(); | ||||
| 		 | ||||
| 		player.broadcastPacket(new SocialAction(player.getObjectId(), 20)); | ||||
|   | ||||
| @@ -16,7 +16,6 @@ | ||||
|  */ | ||||
| package handlers.effecthandlers; | ||||
|  | ||||
| import org.l2jmobius.commons.concurrent.ThreadPool; | ||||
| import org.l2jmobius.gameserver.data.xml.impl.SkillData; | ||||
| import org.l2jmobius.gameserver.enums.SubclassInfoType; | ||||
| import org.l2jmobius.gameserver.model.StatsSet; | ||||
| @@ -28,6 +27,7 @@ import org.l2jmobius.gameserver.model.olympiad.OlympiadManager; | ||||
| import org.l2jmobius.gameserver.model.skills.Skill; | ||||
| import org.l2jmobius.gameserver.network.SystemMessageId; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.ExStorageMaxCount; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.ExSubjobInfo; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.ability.ExAcquireAPSkillList; | ||||
| @@ -54,41 +54,41 @@ public class ClassChange extends AbstractEffect | ||||
| 	@Override | ||||
| 	public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) | ||||
| 	{ | ||||
| 		if (effected.isPlayer()) | ||||
| 		if (!effected.isPlayer()) | ||||
| 		{ | ||||
| 			final PlayerInstance player = effected.getActingPlayer(); | ||||
| 			// TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase() | ||||
| 			ThreadPool.schedule(() -> | ||||
| 			{ | ||||
| 				final int activeClass = player.getClassId().getId(); | ||||
| 				 | ||||
| 				if (!player.setActiveClass(_index)) | ||||
| 				{ | ||||
| 					player.sendMessage("You cannot switch your class right now!"); | ||||
| 					return; | ||||
| 				} | ||||
| 				 | ||||
| 				if (OlympiadManager.getInstance().isRegisteredInComp(player)) | ||||
| 				{ | ||||
| 					OlympiadManager.getInstance().unRegisterNoble(player); | ||||
| 				} | ||||
| 				 | ||||
| 				final Skill identifyCrisis = SkillData.getInstance().getSkill(IDENTITY_CRISIS_SKILL_ID, 1); | ||||
| 				if (identifyCrisis != null) | ||||
| 				{ | ||||
| 					identifyCrisis.applyEffects(player, player); | ||||
| 				} | ||||
| 				 | ||||
| 				final SystemMessage msg = new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_SWITCHED_S1_TO_S2); | ||||
| 				msg.addClassId(activeClass); | ||||
| 				msg.addClassId(player.getClassId().getId()); | ||||
| 				player.sendPacket(msg); | ||||
| 				 | ||||
| 				player.broadcastUserInfo(); | ||||
| 				player.sendPacket(new AcquireSkillList(player)); | ||||
| 				player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); | ||||
| 				player.sendPacket(new ExAcquireAPSkillList(player)); | ||||
| 			}, 100); | ||||
| 			return; | ||||
| 		} | ||||
| 		 | ||||
| 		final PlayerInstance player = effected.getActingPlayer(); | ||||
| 		if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) | ||||
| 		{ | ||||
| 			player.sendMessage("You cannot switch your class right now!"); | ||||
| 			return; | ||||
| 		} | ||||
| 		 | ||||
| 		final Skill identityCrisis = SkillData.getInstance().getSkill(IDENTITY_CRISIS_SKILL_ID, 1); | ||||
| 		if (identityCrisis != null) | ||||
| 		{ | ||||
| 			identityCrisis.applyEffects(player, player); | ||||
| 		} | ||||
| 		 | ||||
| 		if (OlympiadManager.getInstance().isRegisteredInComp(player)) | ||||
| 		{ | ||||
| 			OlympiadManager.getInstance().unRegisterNoble(player); | ||||
| 		} | ||||
| 		 | ||||
| 		final int activeClass = player.getClassId().getId(); | ||||
| 		player.setActiveClass(_index); | ||||
| 		 | ||||
| 		final SystemMessage msg = new SystemMessage(SystemMessageId.YOU_HAVE_SUCCESSFULLY_SWITCHED_S1_TO_S2); | ||||
| 		msg.addClassId(activeClass); | ||||
| 		msg.addClassId(player.getClassId().getId()); | ||||
| 		player.sendPacket(msg); | ||||
| 		 | ||||
| 		player.broadcastUserInfo(); | ||||
| 		player.sendPacket(new ExStorageMaxCount(player)); | ||||
| 		player.sendPacket(new AcquireSkillList(player)); | ||||
| 		player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); | ||||
| 		player.sendPacket(new ExAcquireAPSkillList(player)); | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment