• SiteAnalyzer, технический и SEO-анализ сайтов

[Инстанс] Внутренняя часть Каспара

Дмитрий

Ефрейтор
Не работают суммоны - юны Абила и Энгеус из коконов.
Квест у них не запускается.
Изучение файла TallocsSummonAI2.java показало, что используется dialogId = 59, который поменялся в последних версиях и не обрабатывается вторая страница сообщения.
Исправил так:
было
Код:
	public boolean onDialogSelect(Player player, int dialogId, int questId, int extendedRewardIndex) {
		if (dialogId == 59 && isTransformed.compareAndSet(false, true)) {
			PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(getObjectId(), 0));
			if (player.getSummon() != null) { // to do remove
				PacketSendUtility.sendMessage(player, "please dismiss your summon first.");
				return true;
			}
стало
Код:
	public boolean onDialogSelect(Player player, int dialogId, int questId, int extendedRewardIndex) {

		if(dialogId == DialogAction.SELECT_ACTION_1011.id()){
			PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(getObjectId(), 1011));
		}
		if (dialogId == DialogAction.MAKE_MERCENARY.id() && isTransformed.compareAndSet(false, true)) {
			PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(getObjectId(), 0));
			if (player.getSummon() != null) { // to do remove
				PacketSendUtility.sendMessage(player, "please dismiss your summon first.");
				return true;
			}

Диалог работает!
НО! В консоли бегут ошибки! От каждого движения перса!
Суммон идет за персом, но воевать не хочет.

Код:
01:59:26.048 ERROR[PacketProcessor:1]: - Error handling client (pandim) message :[C] 0x2F0 CM_DIALOG_SELECT
java.lang.NullPointerException: null
		at com.aionemu.gameserver.model.stats.container.SummonGameStats.getMovementSpeed(SummonGameStats.java:144) ~[AL-Game.jar:na]
		at com.aionemu.gameserver.model.stats.container.CreatureGameStats.getMovementSpeedFloat(CreatureGameStats.java:284) ~[AL-Game.jar:na]
		at com.aionemu.gameserver.network.aion.serverpackets.SM_EMOTION.<init>(SM_EMOTION.java:92) ~[AL-Game.jar:na]
		at ai.instance.tallocsHollow.TallocsSummonAI2.onDialogSelect(TallocsSummonAI2.java]:67) ~[na:na]
		at com.aionemu.gameserver.controllers.NpcController.onDialogSelect(NpcController.java:290) ~[AL-Game.jar:na]
		at com.aionemu.gameserver.network.aion.clientpackets.CM_DIALOG_SELECT.runImpl(CM_DIALOG_SELECT.java:102) ~[AL-Game.jar:na]
		at com.aionemu.gameserver.network.aion.AionClientPacket.run(AionClientPacket.java:64) ~[AL-Game.jar:na]
		at com.aionemu.commons.utils.concurrent.ExecuteWrapper.execute(ExecuteWrapper.java:48) [al-commons.jar:na]
		at com.aionemu.commons.utils.concurrent.ExecuteWrapper.execute(ExecuteWrapper.java:41) [al-commons.jar:na]
		at com.aionemu.commons.network.PacketProcessor$PacketProcessorTask.run(PacketProcessor.java:266) [al-commons.jar:na]
		at java.lang.Thread.run(Unknown Source) [na:1.7.0_21]
01:59:26.194 WARN [pool-2-thread-6]: - Exception in a Runnable execution:
java.lang.NullPointerException: null
		at com.aionemu.gameserver.model.stats.container.SummonGameStats.getMovementSpeed(SummonGameStats.java:144) ~[AL-Game.jar:na]
		at com.aionemu.gameserver.model.stats.container.CreatureGameStats.getMovementSpeedFloat(CreatureGameStats.java:284) ~[AL-Game.jar:na]
		at com.aionemu.gameserver.controllers.movement.PlayableMoveController.moveToDestination(PlayableMoveController.java:89) ~[AL-Game.jar:na]
		at com.aionemu.gameserver.taskmanager.tasks.PlayerMoveTaskManager.run(PlayerMoveTaskManager.java:46) ~[AL-Game.jar:na]
		at com.aionemu.commons.utils.concurrent.ExecuteWrapper.execute(ExecuteWrapper.java:48) ~[al-commons.jar:na]
		at com.aionemu.commons.utils.concurrent.RunnableWrapper.run(RunnableWrapper.java:40) [al-commons.jar:na]
		at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.7.0_21]
		at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source) [na:1.7.0_21]
		at java.util.concurrent.FutureTask.runAndReset(Unknown Source) [na:1.7.0_21]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source) [na:1.7.0_21]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [na:1.7.0_21]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_21]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_21]
		at java.lang.Thread.run(Unknown Source) [na:1.7.0_21]
01:59:26.389 WARN [pool-2-thread-16]: - Exception in a Runnable execution:
java.lang.NullPointerException: null
		at com.aionemu.gameserver.mode

Помогите, кто может! Или укажите на сборку (не моложе 4.7.5) где это работает!
 
Это не квест. Это AI моба. Именно TallocsSummonAI2.java. Просто в 4.0 были изменения в структуре пакетов и идентификаторов диалогов.
С Id я (вроде) разобрался, а вот с пакетами надо глубже копать. Как я догадываюсь, надо посмотреть суммонов у заклинателя.
А этих суммонов из Каспара я не в одной из сборок после 4 рабочих не нашел :(
Думал, может кто копался;)
 
Назад
Сверху