Читайте гайд по скиллам, lifetime — время жизни слугиПодскажите плз есть ai или параметр для деспавна нпс через время
например:
<set name="lifeTime" value="300" /> -не работает
И что такому дохрена "умному" человеку сложно было ткнуть пальцем куда смотреть ? Вроде как это и спросил а не то что lifetime это время слуги ! Там кстати для особо одорённых есть слово "например:" как пример что надо от непися и что не работает-(кстати для особо одорённых тоже написано)Читайте гайд по скиллам, lifetime — время жизни слуги
через что деспавнили в ext? deleteMe() , decayMe() ?привет, вроде из коробки не было, по крайне мере в прошлом году мы через ext делали рб которые пропадали через минуту после своего появления если их не убивали
npcInstance.deleteMe();через что деспавнили в ext? deleteMe() , decayMe() ?
package l2.gameserver.ai;
import l2.gameserver.ai.DefaultAI;
import l2.gameserver.model.instances.NpcInstance;
import l2.gameserver.ThreadPoolManager;
public class DespawnAI extends DefaultAI {
public DespawnAI(NpcInstance actor) {
super(actor);
}
@Override
protected void onEvtSpawn() {
super.onEvtSpawn();
ThreadPoolManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
NpcInstance actor = getActor();
if (actor != null) {
actor.deleteMe();
}
}
}, 30000L); //Spawn time
}
}
Ну мне это было хорошо потуму как надо было ещё реализовать автоматическую раздачу премиума окружающим без лишних байпасов.Вы как их - извращуги! У нас уже есть система которая все это делает. Переключение зон, активация и деактивация спауна и так далее. Но нет! Вы бежите делать народное творчество - это то хоть безобидное. Но в большинстве ии мрак, вам сложно уделить 15 мин почитав гайды.
если Аишка моба после смерти спаунит нпц который деспаунится через время, то да, в таком случаи лучше делать так. Но опять же есть рейд который раздает па всем участникам после смерти.Ну мне это было хорошо потуму как надо было ещё реализовать автоматическую раздачу премиума окружающим без лишних байпасов.
угу после сервер босса спавнится нпс и раздаёт всем вокруг итемку. В моём случае на активацию према.если Аишка моба после смерти спаунит нпц который деспаунится через время, то да, в таком случаи лучше делать так. Но опять же есть рейд который раздает па всем участникам после смерти.
package l2.gameserver.ai;
import l2.gameserver.model.Player;
import l2.gameserver.model.World;
import l2.gameserver.model.instances.NpcInstance;
import l2.gameserver.ThreadPoolManager;
import l2.gameserver.utils.ItemFunctions;
public class DespawnAI extends DefaultAI {
private static final int ITEM_ID = 9999; //Item ID
private static final long ITEM_COUNT = 1; //count
public DespawnAI(NpcInstance actor) {
super(actor);
}
@Override
protected void onEvtSpawn() {
super.onEvtSpawn();
final NpcInstance actor = getActor();
if (actor == null) return;
for (Player player : World.getAroundPlayers(actor, 900, 900)) { //reward radius
giveReward(player);
}
ThreadPoolManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
if (actor != null) actor.deleteMe();
}
}, 600000L); //NPC despawn time
}
@Override
protected void onEvtArrived() {
super.onEvtArrived();
NpcInstance actor = getActor();
if (actor == null) return;
for (Player player : World.getAroundPlayers(actor, 900, 900)) { //scan radius
giveReward(player);
}
}
private void giveReward(Player player) {
if (player == null) return;
String var = player.getVar("ServerBossDailyReward");
long lastTime = (var == null || var.isEmpty()) ? 0 : Long.parseLong(var);
long currentTime = System.currentTimeMillis();
if (currentTime - lastTime < 660000L) { //reward limit time
return;
}
ItemFunctions.addItem(player, ITEM_ID, ITEM_COUNT, true);
player.setVar("ServerBossDailyReward", String.valueOf(currentTime), -1);
player.sendMessage("Congratulations! You have received your reward.");
}
}