Как задать единственную смерть нпсу

Eternal12

Знаменитый
Участник
Сообщения
45
Розыгрыши
0
Репутация
1
Реакции
12
Баллы
1 245
Хроники
  1. The 2nd Throne: Gracia
Исходники
Присутствуют
Сборка
L2 Open
Не могу понять как задать что бы нпс/моб после смерти больше не воскрешал.
А то происходит так начинается ивент спавнится нпс его убиваешь и через секунд 10 он снова воскрешается.
Пробовал откапать функции в L2Spawn и L2Npc . isRespawnable если подключить то ругается, ошибка.
View hidden content is available for registered users!
При окончании ивента по аналогии прописал удаление моб пропадает.
 
Решение
_npcSpawn1.stopRespawn();
stopRespawn как вариант добавить после его спавна
import com.l2open.gameserver.model.L2Spawn;
import com.l2open.gameserver.model.actor.L2Npc;

private boolean _doRespawn;

_lastNpcSpawn1.setTitle("Kill Me");
stopRespawn();

public void stopRespawn()
{
_doRespawn = false;
}

[javac] C:\Games\T2.3 (Gracia Final) - L2Open\Game\src\main\java\com\l2open\gameserver\model\entity\TvTEvent.java:153: error: non-static method stopRespawn() cannot be referenced from a static context
[javac] stopRespawn();
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] 1 error
[javac] 4 warnings
 
_npcSpawn1.stopRespawn();
 
Решение
Установили после init()? Там вроде в init() _doRespawn выставляетс в true
_npcSpawn1.setLocx(55276);
_npcSpawn1.setLocy(219105);
_npcSpawn1.setLocz(-3223);
_npcSpawn1.setAmount(1);
_npcSpawn1.setHeading(1);
_npcSpawn1.stopRespawn();

SpawnTable.getInstance().addNewSpawn(_npcSpawn1, false);
_npcSpawn1.init();
_lastNpcSpawn1 = _npcSpawn1.getLastSpawn();
_lastNpcSpawn1.setCurrentHp(9999);
щяс попробуем по другому
 
Сделайте ему респ дольше ивента да и все
 
Какую то чушь предлагаете) у опенах в утилитном классе Function есть метод spawn, если вызвать с параметром resp=0 то он белше не реснется после смерти
 
С какого перпугу это стало чушью если это просто хелпер который делает тоже самое? Вы вольны использовать любой из возможных способов, просто потому что можете.
 
я о том что вы изобретаете велосипед который уже был кем то изобретен лет 10 назад
 
Попробовал поставил после init нпсы перестали респавниться вовсе
Не стоит добавлять моба которого спавнишь в общий список ( SpawnTable.getInstance().addNewSpawn(_npcSpawn1, false); )
создай в своем классе евента переменую этого НПС-а либо список для хранения НПС-ов которых спавнишь что бы по окончанию евента их удалить если они еще живы
L2NpcInstance npcInstance = Functions.spawn(caster.getX(), caster.getY() - 130, caster.getZ(), 13098); - пример как заспавнить моба, после смерти он не реснется
 
Да, так не сработает,
_npcSpawn1.stopRespawn();
должен быть после
_npcSpawn1.init();
Всё ок да верное рещение, моб после смерти перестал ресаться. Забыл ивент возобновить.Спасибо

спасибо, попробую и такое решение что бы в порядок код привести. Пока работает так уже доволен.
 
Последнее редактирование модератором:
в админке должна быть возможность делать разовый спавн 'admin_spawn_once' или чет типа того, тебе просто надо было глянуть как это работает.
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…