09-15-2012, 06:44 AM
shocked Написал:
Я не знаю, что он дальше с ним делать будет, в предоставленном им коде он из списка удалял элементы, так что скорее всего нужен.
Spawn и Unspawn мобов
|
09-15-2012, 06:44 AM
shocked Написал: Я не знаю, что он дальше с ним делать будет, в предоставленном им коде он из списка удалял элементы, так что скорее всего нужен.
Благодарю вас!
Вроде бы со всем разобрался, но вот только наткнулся на 1 проблему: НПЦ заспаунены, запущен таймер ожидания до их удаления 60 сек. метод спауна: Код: protected void spawnMonsters(int respawnDelay) В методе добавляет всех поставленных нпц в список _npcInsts, из которого потом мне и надо брать инфу о заспауненых ранее мобах. Список работает нормально, т.е. очищается и заполняется как надо. Но тут другая трабла: когда использую анспаун: Код: protected void unspawnMobs() Мобы удаляются только в том случае, если их ниразу не убивали и они не респались. Т.е. если убить хоть 1 моба - то он появится через время респа, даже если метод unspawnMobs() не влияет на это никак. Он удаляет только тех, кого ниразу не убивали. В итоге на одном месте будет два моба. Как отловить мобов, которые прошли через респаун? Хотя я чуть недопонимаю, если они есть в списке, почему их не удаляет??=(
09-15-2012, 07:37 PM
halaymoon Написал:Хотя я чуть недопонимаю, если они есть в списке, почему их не удаляет??=( Потому что после addSpawn() мы получаем ссылку на объект и храним эту ссылку в List. После респавна этот нпц объект этого же типа, но с другой ссылкой, которой, понятное дело, у тебя нету в списке. Надеюсь правильно понял вопрос.
09-15-2012, 07:39 PM
Кажется понял теперь))
А как получать ссылки на мобов после их респавна?
09-15-2012, 08:18 PM
halaymoon Написал:Кажется понял теперь)) [src=java] private final List<L2Spawn> _npcSpawns = new ArrayList<L2Spawn>(); protected void spawnMonsters(int respawnDelay) { for(int[] npcSpawn2 : MOBS_IN_FIRST) { FestivalSpawn currSpawn = new FestivalSpawn(npcSpawn2); L2NpcTemplate npcTemplate = NpcTable.getInstance().getTemplate(currSpawn._npcId); try { L2Spawn npcSpawn = new L2Spawn(npcTemplate); npcSpawn.setLocx(currSpawn._x); npcSpawn.setLocy(currSpawn._y); npcSpawn.setLocz(currSpawn._z); npcSpawn.setHeading(Rnd.nextInt(65536)); npcSpawn.setAmount(1); npcSpawn.setRespawnDelay(respawnDelay); npcSpawn.startRespawn(); L2NpcInstance festivalMob = (L2NpcInstance) npcSpawn.doSpawn(); SpawnTable.getInstance().addNewSpawn(npcSpawn, false); _npcSpawns.add(npcSpawn); } catch(Exception e) { if(Config.ENABLE_ALL_EXCEPTIONS) e.printStackTrace(); } currSpawn = null; } } protected void unspawnMobs() { for(L2Spawn spawn : _npcSpawns) { if(spawn != null) { // spawn.getAllSpawned(); можно получить список всех заспауненых нпс spawn.despawnAll(); // удаляем всех заспауненых } } _npcSpawns.clear(); } [/src] |
« Предыдущая | Следующая »
|
Возможно похожие темы ... | |||||
Тема | Автор | Ответы | Просмотры | Последний пост | |
Нет агра мобов после респа | 0 | 895 |
03-30-2020, 06:54 PM Последний пост: Kagaku |
||
Хп мобов | 6 | 2,367 |
03-04-2018, 08:08 AM Последний пост: silok |
||
Пропадание мобов | 7 | 2,057 |
11-09-2017, 04:35 PM Последний пост: Map |
||
Добавление РБ и Мобов | 1 | 1,571 |
01-23-2017, 08:52 PM Последний пост: virusoflove |
||
Spawn в клиенте | 3 | 1,216 |
11-21-2015, 08:33 PM Последний пост: Donatte |
||
Random spawn | 3 | 1,675 |
10-31-2015, 01:13 PM Последний пост: Gaikotsu |
||
Spawn в Reflection'е . Как сделать? | 1 | 1,458 |
07-25-2015, 06:09 PM Последний пост: Gaikotsu |
||
прыжки мобов/игроков | 4 | 1,583 |
04-19-2015, 02:48 PM Последний пост: KoKoS |
||
Spawn [Help!] | 7 | 2,086 |
11-01-2014, 09:56 PM Последний пост: Snowball1 |
||
Длина имен мобов | 0 | 880 |
03-16-2014, 12:54 PM Последний пост: gre4ka |