Перейти к содержанию
Авторизация  
Elhares

Проблемы С Antharas (Не Выходит Из Берлоги)

Рекомендуемые сообщения

Доброе время суток.

 

Есть проблема, на самом деле их 2, первая связана с епик боссом Antharas.

Я новичок в этой сфере, есть сборка l2jteon interlude, наткнулся на проблему с Антарасом вот скрин:

 

pre_1402460788__shot000371.png

 

Захожу через квест (portal stone) жду 30 минут, он выскакивает и начинает рычать, и все больше ничего не делает.

 

Вот уже дня 3 пытаюсь это исправить ничего не получается

в папке ai скрипт присутствует antharas.java я никаких ошибках там не замечал. Вот сам скрипт:

package ai.individual;

 

import net.sf.l2j.ExternalConfig;

import net.sf.l2j.gameserver.ai.CtrlIntention;

import net.sf.l2j.gameserver.instancemanager.GrandBossManager;

import net.sf.l2j.gameserver.model.L2CharPosition;

import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;

import net.sf.l2j.gameserver.model.actor.instance.L2GrandBossInstance;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.model.zone.type.L2BossZone;

import net.sf.l2j.gameserver.network.serverpackets.Earthquake;

import net.sf.l2j.gameserver.network.serverpackets.PlaySound;

import net.sf.l2j.gameserver.network.serverpackets.SpecialCamera;

import net.sf.l2j.gameserver.templates.StatsSet;

import net.sf.l2j.util.Rnd;

import ai.group_template.L2AttackableAIScript;

 

/**

* Antharas AI

* @author Emperorc

*/

public class Antharas extends L2AttackableAIScript

{

 

private static final int ANTHARAS = 29019;

 

//Antharas Status Tracking :

private static final byte DORMANT = 0; //Antharas is spawned and no one has entered yet. Entry is unlocked

private static final byte WAITING = 1; //Antharas is spawend and someone has entered, triggering a 30 minute window for additional people to enter

//before he unleashes his attack. Entry is unlocked

private static final byte FIGHTING = 2; //Antharas is engaged in battle, annihilating his foes. Entry is locked

private static final byte DEAD = 3; //Antharas has been killed. Entry is locked

 

private static long _LastAction = 0;

 

private static L2BossZone _Zone;

 

// Boss: Antharas

public Antharas(int id,String name,String descr)

{

super(id,name,descr);

int[] mob = {ANTHARAS};

this.registerMobs(mob);

_Zone = GrandBossManager.getInstance().getZone(179700,113800,-7709);

StatsSet info = GrandBossManager.getInstance().getStatsSet(ANTHARAS);

int status = GrandBossManager.getInstance().getBossStatus(ANTHARAS);

if (status == DEAD)

{

// load the unlock date and time for antharas from DB

long temp = info.getLong("respawn_time") - System.currentTimeMillis();

// if antharas is locked until a certain time, mark it so and start the unlock timer

// the unlock time has not yet expired. Mark Antharas as currently locked. Setup a timer

// to fire at the correct time (calculate the time between now and the unlock time,

// setup a timer to fire after that many msec)

if (temp > 0)

{

this.startQuestTimer("antharas_unlock", temp, null, null);

}

else

{

// the time has already expired while the server was offline. Immediately spawn antharas in his cave.

// also, the status needs to be changed to DORMANT

L2GrandBossInstance antharas = (L2GrandBossInstance) addSpawn(ANTHARAS,185708,114298,-8221,32768,false,0);

GrandBossManager.getInstance().setBossStatus(ANTHARAS,DORMANT);

antharas.broadcastPacket(new Earthquake(185708,114298,-8221,20,10));

GrandBossManager.getInstance().addBoss(antharas);

}

}

else

{

int loc_x = info.getInteger("loc_x");

int loc_y = info.getInteger("loc_y");

int loc_z = info.getInteger("loc_z");

int heading = info.getInteger("heading");

int hp = info.getInteger("currentHP");

int mp = info.getInteger("currentMP");

L2GrandBossInstance antharas = (L2GrandBossInstance) addSpawn(ANTHARAS,loc_x,loc_y,loc_z,heading,false,0);

GrandBossManager.getInstance().addBoss(antharas);

antharas.setCurrentHpMp(hp,mp);

if (status == WAITING)

{

// Start timer to lock entry after 30 minutes

this.startQuestTimer("waiting",ExternalConfig.Antharas_Wait_Time, antharas, null);

}

else if (status == FIGHTING)

{

_LastAction = System.currentTimeMillis();

// Start repeating timer to check for inactivity

this.startQuestTimer("antharas_despawn",60000, antharas, null, true);

}

}

}

 

public String onAdvEvent (String event, L2NpcInstance npc, L2PcInstance player)

{

if (npc != null)

{

long temp = 0;

if (event.equalsIgnoreCase("waiting"))

{

npc.teleToLocation(185452,114835,-8221);

npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition(181911,114835,-7678,0));

this.startQuestTimer("antharas_has_arrived",2000, npc, null, true);

npc.broadcastPacket(new PlaySound(1, "BS02_A", 1, npc.getObjectId(), 185452, 114835, -8221));

GrandBossManager.getInstance().setBossStatus(ANTHARAS,FIGHTING);

}

else if (event.equalsIgnoreCase("camera_1"))

{

this.startQuestTimer("camera_2",3000, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),700,13,-19,0,20000));

}

else if (event.equalsIgnoreCase("camera_2"))

{

this.startQuestTimer("camera_3",10000, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),700,13,0,6000,20000));

}

else if (event.equalsIgnoreCase("camera_3"))

{

this.startQuestTimer("camera_4",200, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),3700,0,-3,0,10000));

}

else if (event.equalsIgnoreCase("camera_4"))

{

this.startQuestTimer("camera_5",10800, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1100,0,-3,22000,30000));

}

else if (event.equalsIgnoreCase("camera_5"))

{

this.startQuestTimer("antharas_despawn",60000, npc, null, true);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1100,0,-3,300,7000));

_LastAction = System.currentTimeMillis();

}

else if (event.equalsIgnoreCase("antharas_despawn"))

{

temp = System.currentTimeMillis() - _LastAction;

if (temp > 900000)

{

npc.teleToLocation(185708,114298,-8221);

GrandBossManager.getInstance().setBossStatus(ANTHARAS,DORMANT);

npc.setCurrentHpMp(npc.getMaxHp(),npc.getMaxMp());

_Zone.oustAllPlayers();

this.cancelQuestTimer("antharas_despawn", npc, null);

}

}

else if (event.equalsIgnoreCase("antharas_has_arrived"))

{

int dx = Math.abs(npc.getX() - 181911);

int dy = Math.abs(npc.getY() - 114835);

if (dx <= 50 && dy <= 50)

{

this.startQuestTimer("camera_1",2000, npc, null);

npc.getSpawn().setLocx(181911);

npc.getSpawn().setLocy(114835);

npc.getSpawn().setLocz(-7678);

npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);

this.cancelQuestTimer("antharas_has_arrived", npc, null);

}

else

{

npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(181911,114835,-7678,0));

}

}

else if (event.equalsIgnoreCase("spawn_cubes"))

{

addSpawn(31859,177615,114941,-7709,0,false,900000);

int radius = 1500;

for (int i=0; i < 20;i++)

{

int x = (int) (radius*Math.cos(i*.331)); //.331~2pi/19

int y = (int) (radius*Math.sin(i*.331));

addSpawn(31859,177615+x,114941+y,-7709,0,false,900000);

}

this.cancelQuestTimer("antharas_despawn", npc, null);

this.startQuestTimer("remove_players",900000, null, null);

}

}

else

{

if (event.equalsIgnoreCase("antharas_unlock"))

{

L2GrandBossInstance antharas = (L2GrandBossInstance) addSpawn(ANTHARAS,185708,114298,-8221,32768,false,0);

GrandBossManager.getInstance().addBoss(antharas);

GrandBossManager.getInstance().setBossStatus(ANTHARAS,DORMANT);

antharas.broadcastPacket(new Earthquake(185708,114298,-8221,20,10));

}

else if (event.equalsIgnoreCase("remove_players"))

{

_Zone.oustAllPlayers();

}

}

return super.onAdvEvent(event, npc, player);

}

 

public String onAttack (L2NpcInstance npc, L2PcInstance attacker, int damage, boolean isPet)

{

_LastAction = System.currentTimeMillis();

if (GrandBossManager.getInstance().getBossStatus(ANTHARAS) != FIGHTING)

{

_Zone.oustAllPlayers();

}

return super.onAttack(npc, attacker, damage, isPet);

}

 

public String onKill (L2NpcInstance npc, L2PcInstance killer, boolean isPet)

{

npc.broadcastPacket(new PlaySound(1, "BS01_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));

this.startQuestTimer("spawn_cubes", 10000, npc, null);

GrandBossManager.getInstance().setBossStatus(ANTHARAS,DEAD);

long respawnTime = ExternalConfig.Interval_Of_Antharas_Spawn + Rnd.get(ExternalConfig.Random_Of_Antharas_Spawn);

this.startQuestTimer("antharas_unlock", respawnTime, null, null);

// also save the respawn time so that the info is maintained past reboots

StatsSet info = GrandBossManager.getInstance().getStatsSet(ANTHARAS);

info.set("respawn_time",(System.currentTimeMillis() + respawnTime));

GrandBossManager.getInstance().setStatsSet(ANTHARAS,info);

return super.onKill(npc,killer,isPet);

}

 

public static void main(String[] args)

{

// now call the constructor (starts up the ai)

new Antharas(-1,"antharas","ai");

}

}

 

 

По началу я думал что из-за геодаты, однако я поменял её 2 раза и 1 раз отключал результат тот же.

Пробовал его ударит, не дотягивался до него и пришлось на виверна сесть после чего я ударил его а ему все равно, он стоит и ничего не делает. Буду очень благодарен за помощь :)

 

Не по теме но все же, есть 2 проблема которую я не могу решить и она связанна с нубо квестом (Tutorial на нг соски)

выбиваю гем, отдаю нпц и он даёт соски и рекомендацию а дальше всё, нпц не принимает мою рекомендацию, просто нажимаю на квест и от него никакой реакций. Спс за внимание.

Изменено пользователем Elhares

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Вы уверены что проблема не в ядре?

2. Это квест!

Это скрипт тараса вынесенный в датапак, не знаете? лучше промолчите
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Вы уверены что проблема не в ядре?

2. Это квест!

 

Как узнать есть ли проблема в ядре?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как узнать есть ли проблема в ядре?

копать ядро)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

Как узнать есть ли проблема в ядре?

Если остальные эпики пашут нормально то какая проблема в ядре? если тарас есть глубоко в пещере попробуй его удалить сделать рестарт и зайти еще раз

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

копать ядро)

Не вводите людей в заблуждение, зачем копать ядро когда у него весь скрипт в дп ? м?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если остальные эпики пашут нормально то какая проблема в ядре? если тарас есть глубоко в пещере попробуй его удалить сделать рестарт и зайти еще раз

 

Могу сказать точно что валакас пашет нормально. Скоро проведу тест остальных.

Когда тарас стоит в глубине пещеры его ударить не получится т.к он сразу тп меня в город

 

вот список всего что есть в папке ai:

antharas.java; baium.java; benom.py; core.java;...orfen.java; zaken.java

Изменено пользователем Elhares

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

Могу сказать точно что валакас пашет нормально. Скоро проведу тест остальных.

Когда тарас стоит в глубине пещеры его ударить не получится т.к он сразу тп меня в город

Я правильно понял, что он выходит, начинает рычать но дальше ничего не происходит? панель скилов появляется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не вводите людей в заблуждение, зачем копать ядро когда у него весь скрипт в дп ? м?

 

А если АИ у тараса не в скриптах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

А если АИ у тараса не в скриптах?

А ты думаешь он аи из ядра выдрал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я правильно понял, что он выходит, начинает рычать но дальше ничего не происходит? панель скилов появляется?

 

Так и есть, просто ничего нельзя с ним сделать,бегаю себе спокойно по логове. Кстати видео не показывает, мб в этом дело?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так и есть, просто ничего нельзя с ним сделать,бегаю себе спокойно по логове. Кстати видео не показывает, мб в этом дело?

ну так, такого события у вас в коде и нет, лучше будет дернуть рабочего из какой нибудь сборки

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну так, такого события у вас в коде и нет, лучше будет дернуть рабочего из какой нибудь сборки

 

Я как то пытался, и у выдавали ошибку, можно по подробнее как это сделать?

 

P.S разве это не оно?

 

lse if (event.equalsIgnoreCase("camera_1"))

{

this.startQuestTimer("camera_2",3000, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),700,13,-19,0,20000));

}

else if (event.equalsIgnoreCase("camera_2"))

{

this.startQuestTimer("camera_3",10000, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),700,13,0,6000,20000));

}

else if (event.equalsIgnoreCase("camera_3"))

{

this.startQuestTimer("camera_4",200, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),3700,0,-3,0,10000));

}

else if (event.equalsIgnoreCase("camera_4"))

{

this.startQuestTimer("camera_5",10800, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1100,0,-3,22000,30000));

}

else if (event.equalsIgnoreCase("camera_5"))

{

 

Изменено пользователем Elhares

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я как то пытался, и у выдавали ошибку, можно по подробнее как это сделать?

 

P.S разве это не оно?

 

lse if (event.equalsIgnoreCase("camera_1"))

{

this.startQuestTimer("camera_2",3000, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),700,13,-19,0,20000));

}

else if (event.equalsIgnoreCase("camera_2"))

{

this.startQuestTimer("camera_3",10000, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),700,13,0,6000,20000));

}

else if (event.equalsIgnoreCase("camera_3"))

{

this.startQuestTimer("camera_4",200, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),3700,0,-3,0,10000));

}

else if (event.equalsIgnoreCase("camera_4"))

{

this.startQuestTimer("camera_5",10800, npc, null);

npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1100,0,-3,22000,30000));

}

else if (event.equalsIgnoreCase("camera_5"))

{

 

оно-оно, снова с телефона не увидел ><

ща посмотрю код, секунду

как вариант это событие выдернуть из другой сборки

Изменено пользователем Energy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все аи на теонах в датапаке не чего в ядре нету, можете даже не искать. (Переписывайте аи, или возьмите с акисов, у них вроде с ним проблем нету)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Вы уверены что проблема не в ядре?

2. Это квест!

Это скрипт тараса вынесенный в датапак, не знаете? лучше промолчите

енерджи красава, я ему 2 дня уже втираю что он дно лови +

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

оно-оно, снова с телефона не увидел ><

ща посмотрю код, секунду

как вариант это событие выдернуть из другой сборки

 

Пытался выдернуть из других сборок (где скрипт так же как и у меня написан и даже у тех у кого он по другому написан)

Выскакивали ошибки в gameserver при загрузки сервера, по мере возможности я их исправлял но в итоге финал один и тот же, не выходит он и всё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пытался выдернуть из других сборок (где скрипт так же как и у меня написан и даже у тех у кого он по другому написан)

Выскакивали ошибки в gameserver при загрузки сервера, по мере возможности я их исправлял но в итоге финал один и тот же, не выходит он и всё.

импорты то менял?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

импорты то менял?)

 

вот в этом и прикол, я не знаю как (ну я прогуглю конечно, но так что бы знать с чего начать)

 

где находится эти импорты? там есть путь но я не понимаю куда ведёт, и откуда их звять? пробовал менять названия с

 

com.l2jfrozen.gameserver

(сборка фрозена)

на

net.sf.l2j .gameserver

(сборка теона)

 

скрипт грузился без ошибок однако эфекта небыло

Изменено пользователем Elhares

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот в этом и прикол, я не знаю как (ну я прогуглю конечно, но так что бы знать с чего начать)

 

где находится эти импорты? там есть путь но я не понимаю куда ведёт, и откуда их звять? пробовал менять названия с

 

com.l2jfrozen.gameserver

(сборка фрозена)

на

net.sf.l2j .gameserver

(сборка теона)

 

скрипт грузился без ошибок однако эфекта небыло

лучше дерни этот скрипт из ацисов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

лучше дерни этот скрипт из ацисов

 

svn acis-a не нашёл antharas.java , щас попробую скачать сборку от них и выдернуть от туда

Изменено пользователем Elhares

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

он должен оттуда спускатся по идее.

Точка спавнахз

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...