drakola 10 Опубликовано 10 апреля, 2017 (изменено) Привет всем. дело в том что когда кидаешь фир на моба он бегает как бешеный в перед и назад и при этом может еще и атаковать как мне исправить и где? мне как то давали совет удалить в файле L2Character.java || isAfraid() в строках с public boolean isAllSkillsDisabled() и с public boolean isAttackingDisabled() я удалил фир стал работать но все равно не так как надо. 11 (Показать контент) /** * Return true if the L2Character can't use its skills (ex : stun,* sleep...).*/public boolean isAllSkillsDisabled() {return _allSkillsDisabled || isStunned() || isSleeping() || isImmobileUntilAttacked() || isParalyzed() || isPetrified();}/*** Return true if the L2Character can't attack (stun, sleep, attackEndTime,* fakeDeath, paralyse).*/public boolean isAttackingDisabled() {return isStunned() || isSleeping() || isImmobileUntilAttacked() || isAttackingNow() || isFakeDeath() || isParalyzed()|| isPetrified() || isFallsdown() || isPhysicalAttackMuted() || isCoreAIDisabled();}public final Calculator[] getCalculators() {return _calculators;}public final boolean isConfused() {return _isConfused;}public final void setIsConfused(boolean value) {_isConfused = value;}public final boolean isDead() {return _isDead;}public final void setIsDead(boolean value) {_isDead = value;} Изменено 13 апреля, 2017 пользователем Demoncool Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 10 апреля, 2017 @@zGosu у меня в L2Character.java так public boolean isOutOfControl() { return isConfused() || isAfraid(); } а в L2AttackableAI.java я не понял где. есть только public void run() { onEvtThink(); } и вот это protected void onEvtThink() { // Check if the thinking action is already in progress if (_thinking || _actor.isCastingNow() || _actor.isAllSkillsDisabled()) { return; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 апреля, 2017 (изменено) В 10.04.2017 в 17:07, drakola сказал: @@zGosu у меня в L2Character.java так public boolean isOutOfControl() { return isConfused() || isAfraid(); } а в L2AttackableAI.java я не понял где. есть только public void run() { onEvtThink(); } и вот это protected void onEvtThink() { // Check if the thinking action is already in progress if (_thinking || _actor.isCastingNow() || _actor.isAllSkillsDisabled()) { return; } Если во время фира моб подбигает и бьет скилом, то надо // Check if the thinking action is already in progress добавляете: if (npc.isAllSkillsDisabled() || npc.isAfraid()) npc.abortCast(); P.S. Этот фикс работает на L2JServer. Для других сборок фикс может немного отличаться (обычно смотрят в сам эффект) Изменено 10 апреля, 2017 пользователем zGosu 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 10 апреля, 2017 В 10.04.2017 в 11:02, gvb сказал: У вас формула не верно написана в EffectFear.java метод onStart() вот формула public boolean onStart() { // Fear skills cannot be used L2Pcinstance to L2Pcinstance. // Heroic Dread, Curse: Fear, Fear, Horror, Sword Symphony, Word of Fear and Mass Curse Fear are the exceptions. if (getEffected() instanceof L2PcInstance && getEffector() instanceof L2PcInstance) { switch (getSkill().getId()) { case 65: case 98: case 1092: case 1169: case 1272: case 1376: case 1381: // all ok break; default: return false; } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 апреля, 2017 В 10.04.2017 в 17:20, drakola сказал: вот формула public boolean onStart() { // Fear skills cannot be used L2Pcinstance to L2Pcinstance. // Heroic Dread, Curse: Fear, Fear, Horror, Sword Symphony, Word of Fear and Mass Curse Fear are the exceptions. if (getEffected() instanceof L2PcInstance && getEffector() instanceof L2PcInstance) { switch (getSkill().getId()) { case 65: case 98: case 1092: case 1169: case 1272: case 1376: case 1381: // all ok break; default: return false; } } Какая формула? Ее тут нет) Тут просто ID скилов перечислено, которые не отвечают за обрыв скила и т.п. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 10 апреля, 2017 В 10.04.2017 в 17:12, zGosu сказал: Если во время фира моб подбигает и бьет скилом, то надо // Check if the thinking action is already in progress добавляете: if (npc.isAllSkillsDisabled() || npc.isAfraid()) npc.abortCast(); P.S. Этот фикс работает на L2JServer. Для других сборок фикс может немного отличаться (обычно смотрят в сам эффект) ошибка в гс at ru.catssoftware.gameserver.ai.L2AttackableAI.onEvtThink(L2AttackableAI.java:1633) at ru.catssoftware.gameserver.ai.L2CharacterAI.onEvtArrived(L2CharacterAI.java:700) at ru.catssoftware.gameserver.ai.L2AttackableAI.onEvtArrived(L2AttackableAI.java:563) at ru.catssoftware.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:449) at ru.catssoftware.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:375) at ru.catssoftware.gameserver.GameTimeController$ArrivedCharacterManager.callTask(GameTimeController.java:218) at ru.catssoftware.gameserver.GameTimeController$ArrivedCharacterManager.callTask(GameTimeController.java:197) at ru.catssoftware.gameserver.taskmanager.AbstractFIFOPeriodicTaskManager.run(AbstractFIFOPeriodicTaskManager.java:62) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.runAndReset(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 апреля, 2017 В 10.04.2017 в 17:43, drakola сказал: ошибка в гс at ru.catssoftware.gameserver.ai.L2AttackableAI.onEvtThink(L2AttackableAI.java:1633) at ru.catssoftware.gameserver.ai.L2CharacterAI.onEvtArrived(L2CharacterAI.java:700) at ru.catssoftware.gameserver.ai.L2AttackableAI.onEvtArrived(L2AttackableAI.java:563) at ru.catssoftware.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:449) at ru.catssoftware.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:375) at ru.catssoftware.gameserver.GameTimeController$ArrivedCharacterManager.callTask(GameTimeController.java:218) at ru.catssoftware.gameserver.GameTimeController$ArrivedCharacterManager.callTask(GameTimeController.java:197) at ru.catssoftware.gameserver.taskmanager.AbstractFIFOPeriodicTaskManager.run(AbstractFIFOPeriodicTaskManager.java:62) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.runAndReset(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) В 10.04.2017 в 17:12, zGosu сказал: Если во время фира моб подбигает и бьет скилом, то надо // Check if the thinking action is already in progress добавляете: if (npc.isAllSkillsDisabled() || npc.isAfraid()) npc.abortCast(); P.S. Этот фикс работает на L2JServer. Для других сборок фикс может немного отличаться (обычно смотрят в сам эффект) Лучше правьте в самом эффекте, а не в AI 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 10 апреля, 2017 В 10.04.2017 в 17:55, zGosu сказал: Как фиксить бег я скидывал выше. За отмену каста отвечает метод abortCast() За отмену автоатаки - abortAttack() Пора уже учиться самому править такие не сложные баги. так дела то тогда в L2Character.java а не в L2AttackableAI.java и EffectFear.java Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 10 апреля, 2017 В 10.04.2017 в 19:15, drakola сказал: так дела то тогда в L2Character.java а не в L2AttackableAI.java и EffectFear.java Вам виднее. Если такая проблема только с мобами, то править надо L2AttackableAI.java. В остальных случаях в EffectFear.java Где у меня присутствует проверка на FEAR (Показать контент) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 10 апреля, 2017 В 10.04.2017 в 19:26, zGosu сказал: Вам виднее. Если такая проблема только с мобами, то править надо L2AttackableAI.java. В остальных случаях в EffectFear.java Где у меня присутствует проверка на FEAR (Показать контент) public final boolean isAfraid() { return _isAfraid; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 11 апреля, 2017 В 10.04.2017 в 19:31, drakola сказал: public final boolean isAfraid() { return _isAfraid; Это просто метод. Я скинул фикс с бегом и как оборвать атаку\каст. Дело за Вами осталось) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 621 Опубликовано 13 апреля, 2017 (изменено) В 10.04.2017 в 08:04, drakola сказал: мне как то давали совет удалить в файле L2Character.java || isAfraid() в строках с public boolean isAllSkillsDisabled() и с public boolean isAttackingDisabled() после выполнения таких дебильных советов не стоит удивляться самым странным проблемам появившимся после правок. Изменено 13 апреля, 2017 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 13 апреля, 2017 используем спойлер для читабельности тем. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 13 апреля, 2017 В 13.04.2017 в 14:15, Gaikotsu сказал: после выполнения таких дебильных советов не стоит удивляться самым странным проблемам появившимся после правок. если это || isAfraid() в строках с public boolean isAllSkillsDisabled() и с public boolean isAttackingDisabled() вернуть обратно то при фире моб просто стоит и не двигается. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 13 апреля, 2017 В 13.04.2017 в 18:51, drakola сказал: если это || isAfraid() в строках с public boolean isAllSkillsDisabled() и с public boolean isAttackingDisabled() вернуть обратно то при фире моб просто стоит и не двигается. ну а так он будет всех бить в фире) Просто добавь метод, который будет заставлять их бегать и всё. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 13 апреля, 2017 В 13.04.2017 в 18:52, zGosu сказал: ну а так он будет всех бить в фире) Просто добавь метод, который будет заставлять их бегать и всё. не подскажешь какой метод надо найти ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 13 апреля, 2017 В 13.04.2017 в 18:56, drakola сказал: не подскажешь какой метод надо найти ? На передвижение. Если знаете английский, то без проблем его найдете. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 13 апреля, 2017 (изменено) В 13.04.2017 в 18:57, zGosu сказал: На передвижение. Если знаете английский, то без проблем его найдете. в том то и дело что нет ))) может это ? // Caclulate the Nb of ticks between the current position and the destination // One tick added for rounding reasons int ticksToMove = 1 + (int) ((GameTimeController.TICKS_PER_SECOND * distance) / speed); m._xDestination = x; m._yDestination = y; m._zDestination = z; // this is what was requested from client Изменено 13 апреля, 2017 пользователем drakola Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 13 апреля, 2017 В 13.04.2017 в 18:58, drakola сказал: в том то и дело что нет ))) может это ? // Caclulate the Nb of ticks between the current position and the destination // One tick added for rounding reasons int ticksToMove = 1 + (int) ((GameTimeController.TICKS_PER_SECOND * distance) / speed); m._xDestination = x; m._yDestination = y; m._zDestination = z; // this is what was requested from client это не метод.... moveToLocation или похожие на него. методов на передвижение много. Но обычно пользуются тем, что я выделил, или new Location. Тут надо смотреть, не двигается вообще (и мобы и игроки). Если только мобы, то править надо только для них (L2Attackable) или смотреть ограничения в фир эффекте или методе на передвижение. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 13 апреля, 2017 В 13.04.2017 в 20:38, zGosu сказал: это не метод.... moveToLocation или похожие на него. методов на передвижение много. Но обычно пользуются тем, что я выделил, или new Location. Тут надо смотреть, не двигается вообще (и мобы и игроки). Если только мобы, то править надо только для них (L2Attackable) или смотреть ограничения в фир эффекте или методе на передвижение. public void moveTo(int x, int y, int z, int offset) { moveToLocation(x, y, z, offset); } public boolean moveTo(int x, int y, int z) { return moveToLocation(x, y, z, 0); } // the CtrlEvent.EVT_ARRIVED will be sent when the character will actually arrive // to destination by GameTimeController // Send a Server->Client packet CharMoveToLocation to the actor and all L2PcInstance in its _knownPlayers broadcastPacket(new MoveToLocation(this)); protected boolean moveToLocation(int x, int y, int z, int offset) { // Get the Move Speed of the L2Charcater float speed = getStat().getMoveSpeed(); if (speed <= 0 || isMovementDisabled()) { // actionFail(); return _AIdisabled; } вот все что есть Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 14 апреля, 2017 В 13.04.2017 в 22:19, drakola сказал: public void moveTo(int x, int y, int z, int offset) { moveToLocation(x, y, z, offset); } public boolean moveTo(int x, int y, int z) { return moveToLocation(x, y, z, 0); } // the CtrlEvent.EVT_ARRIVED will be sent when the character will actually arrive // to destination by GameTimeController // Send a Server->Client packet CharMoveToLocation to the actor and all L2PcInstance in its _knownPlayers broadcastPacket(new MoveToLocation(this)); protected boolean moveToLocation(int x, int y, int z, int offset) { // Get the Move Speed of the L2Charcater float speed = getStat().getMoveSpeed(); if (speed <= 0 || isMovementDisabled()) { // actionFail(); return _AIdisabled; } вот все что есть Я фикс до этого выше Вам кидал (потом Модерация его удалила). Я так понял он Вам не помог. Поэтому рекомендую выбрать один из следующих вариантов: 1) Попросить разработчика, что бы исправили баг 2) Взять код из сборки, где работает этот эффект 3) Ну если нет разработчика и Вы не умеете копировать код из одного места в другое (т.к. фикс я Вам кидал, а Вы не можете его вставить ), то просить человека, что бы он за Вас поправил баг (платно\бесплатно - как повезет). Fear.7zFetching info... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 14 апреля, 2017 В 14.04.2017 в 06:52, zGosu сказал: Я фикс до этого выше Вам кидал (потом Модерация его удалила). Я так понял он Вам не помог. Поэтому рекомендую выбрать один из следующих вариантов: 1) Попросить разработчика, что бы исправили баг 2) Взять код из сборки, где работает этот эффект 3) Ну если нет разработчика и Вы не умеете копировать код из одного места в другое (т.к. фикс я Вам кидал, а Вы не можете его вставить ), то просить человека, что бы он за Вас поправил баг (платно\бесплатно - как повезет). вы мне скинули эффект в нем то как раз все хорошо. а вот в L2Character.java косяк какой то. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 14 апреля, 2017 В 14.04.2017 в 16:34, drakola сказал: вы мне скинули эффект в нем то как раз все хорошо. а вот в L2Character.java косяк какой то. Вы удалили в Character проверку на фир эффект... Верните его обратно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
drakola 10 Опубликовано 14 апреля, 2017 (изменено) В 14.04.2017 в 16:41, zGosu сказал: Вы удалили в Character проверку на фир эффект... Верните его обратно. || isAfraid это ? вернул. /** * Return true if the L2Character can't use its skills (ex : stun, * sleep...). */ public boolean isAllSkillsDisabled() { return _allSkillsDisabled || isStunned() || isSleeping() || isImmobileUntilAttacked() || isParalyzed() || isPetrified()|| isAfraid() ; } /** * Return true if the L2Character can't attack (stun, sleep, attackEndTime, * fakeDeath, paralyse). */ public boolean isAttackingDisabled() { return isStunned() || isSleeping() || isImmobileUntilAttacked() || isAttackingNow() || isFakeDeath() || isParalyzed() || isPetrified() || isFallsdown() || isPhysicalAttackMuted() || isCoreAIDisabled() || isAfraid(); } Изменено 14 апреля, 2017 пользователем drakola Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 14 апреля, 2017 В 14.04.2017 в 16:50, drakola сказал: || isAfraid это ? Да 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты