Сообщений: 112
Тем: 26
Зарегистрирован: Sep 2012
Репутация:
-216
05-26-2013, 09:13 PM
(Сообщение последний раз редактировалось: 05-28-2013, 12:52 PM sakson.)
Здравствуйте!
Помогите решить данные 3 ошибки.Их было всего 7,своими силами исправил только 4,а вот остальные 3 не получается,что только не пробовал.
Код: ----------
1. ERROR in \Q10294_SevenSignToTheMonastery.java (at line 152)
ThreadPoolManager.[color=Red]schedule[/color](new MovieStartTask(player,24),7000L); //playe
r.showQuestMovie(24)
The method schedule(Q10294_SevenSignToTheMonastery.MovieStartTask, long) is unde
fined for the type ThreadPoolManager
----------
2. ERROR in \Q10294_SevenSignToTheMonastery.java (at line 370)
L2Npc npcTag = player.getKnownList().[color=Red]getKnownNpc[/color](AbyssalSaintessElcadia2
);
The method getKnownNpc(int) is undefined for the type PcKnownList
----------
3. ERROR in \Q10294_SevenSignToTheMonastery.java (at line 373)
npcTag.[color=Red]teleToLocationDelayed[/color](x, y, z, 0, false);
The method teleToLocationDelayed(int, int, int, int, boolean) is undefined for t
he type L2Npc
----------
3 problems (3 errors)The method schedule(quests.Q10294_SevenSignToTheMonastery.Q
10294_SevenSignToTheMonastery.MovieStartTask, long) is undefined for the type l2
.brick.gameserver.ThreadPoolManager
The method getKnownNpc(int) is undefined for the type l2.brick.gameserver.model.
actor.knownlist.PcKnownList
The method teleToLocationDelayed(int, int, int, int, boolean) is undefined for t
he type l2.brick.gameserver.model.actor.L2Npc
Failed executing script: D:\Server\game\data\scripts\quests\Q10294_SevenSignToTh
eMonastery\Q10294_SevenSignToTheMonastery.java. See Q10294_SevenSignToTheMonaste
ry.java.error.log for details.
Красным выделил тот код,в котором сама ошибка
Помогите пожалуйста решить данные ошибки.Буду очень признателен!
Код 1-ой ошибки:
Код: {
ThreadPoolManager.schedule(new MovieStartTask(player,24),7000L); //player.showQuestMovie(24)
st.set("movie", "1");
}
return null;
Код 2-ой ошибки:
Код: }
private void teleportWithTag(L2PcInstance player, int x, int y, int z) {
L2Npc npcTag = player.getKnownList().getKnownNpc(AbyssalSaintessElcadia2);
player.teleToLocation(x, y, z);
if (npcTag != null)
npcTag.teleToLocationDelayed(x, y, z, 0, false);
}
Код 3-ей ошибки,элемент код 2-го кода.Сама линия,на которую ссылается сервер:
Код: npcTag.teleToLocationDelayed(x, y, z, 0, false);
Сообщений: 555
Тем: 2
Зарегистрирован: Feb 2011
Репутация:
1,507
1. скорее всего у тебя пулменеджер на синглтоне, и там нужно сделать нечто .getInstance().schedule
2. возможно нет функционала по определениею нпц, но поиск объекта там точно есть. возьми его и проверь принадлежность к классу нпц
3. замени на teleToLocation(x, y, z);
Сообщений: 112
Тем: 26
Зарегистрирован: Sep 2012
Репутация:
-216
05-28-2013, 10:43 AM
(Сообщение последний раз редактировалось: 05-28-2013, 12:06 PM sakson.)
KID Написал:1. скорее всего у тебя пулменеджер на синглтоне, и там нужно сделать нечто .getInstance().schedule
2. возможно нет функционала по определениею нпц, но поиск объекта там точно есть. возьми его и проверь принадлежность к классу нпц
3. замени на teleToLocation(x, y, z);
Спасибо тебе добрый человек,счас буду пробовать
Добавлено через 1 час 19 минут
Эм.. добавил ".getInstance().",и все ровно ссылается на schedul
Код: 1. ERROR in \Q10294_SevenSignToTheMonastery.java (at line 152)
ThreadPoolManager.getInstance().[color=Red]schedul[/color]e(new MovieStartTask(player,24),7
000L);
The method schedule(Q10294_SevenSignToTheMonastery.MovieStartTask, long) is unde
fined for the type ThreadPoolManager
Квесты правлю 1 раз,вопросик еще можно вам?
Можно поинтересоваться как сделать "Функционал по определению НПС"?
Сообщений: 555
Тем: 2
Зарегистрирован: Feb 2011
Репутация:
1,507
Скинь код ThreadPoolManager
Сообщений: 112
Тем: 26
Зарегистрирован: Sep 2012
Репутация:
-216
05-28-2013, 02:09 PM
(Сообщение последний раз редактировалось: 05-28-2013, 04:03 PM sakson.)
KID Написал:Скинь код ThreadPoolManager
Вот держите:
Код: public class ThreadPoolManager
{
private static class SingletonHolder
{
protected static final ThreadPoolManager _instance = new ThreadPoolManager();
private SingletonHolder()
{
}
}
private class PurgeTask
implements Runnable
{
public void run()
{
_effectsScheduledThreadPool.purge();
_generalScheduledThreadPool.purge();
_aiScheduledThreadPool.purge();
}
final ThreadPoolManager this$0;
private PurgeTask()
{
this$0 = ThreadPoolManager.this;
super();
}
}
private static class PriorityThreadFactory
implements ThreadFactory
{
public Thread newThread(Runnable r)
{
Thread t = new Thread(_group, r);
t.setName((new StringBuilder()).append(_name).append("-").append(_threadNumber.getAndIncrement()).toString());
t.setPriority(_prio);
return t;
}
public ThreadGroup getGroup()
{
return _group;
}
private int _prio;
private String _name;
private AtomicInteger _threadNumber;
private ThreadGroup _group;
public PriorityThreadFactory(String name, int prio)
{
_threadNumber = new AtomicInteger(1);
_prio = prio;
_name = name;
_group = new ThreadGroup(_name);
}
}
private static final class RunnableWrapper
implements Runnable
{
public final void run()
{
try
{
_r.run();
}
catch(Throwable e)
{
Thread t = Thread.currentThread();
Thread.UncaughtExceptionHandler h = t.getUncaughtExceptionHandler();
if(h != null)
h.uncaughtException(t, e);
}
}
private final Runnable _r;
public RunnableWrapper(Runnable r)
{
_r = r;
}
}
public static ThreadPoolManager getInstance()
{
return SingletonHolder._instance;
}
private ThreadPoolManager()
{
_effectsScheduledThreadPool = new ScheduledThreadPoolExecutor(Config.THREAD_P_EFFECTS, new PriorityThreadFactory("EffectsSTPool", 5));
_generalScheduledThreadPool = new ScheduledThreadPoolExecutor(Config.THREAD_P_GENERAL, new PriorityThreadFactory("GeneralSTPool", 5));
_ioPacketsThreadPool = new ThreadPoolExecutor(Config.IO_PACKET_THREAD_CORE_SIZE, 0x7fffffff, 5L, TimeUnit.SECONDS, new LinkedBlockingQueue(), new PriorityThreadFactory("I/O Packet Pool", 6));
_generalPacketsThreadPool = new ThreadPoolExecutor(Config.GENERAL_PACKET_THREAD_CORE_SIZE, Config.GENERAL_PACKET_THREAD_CORE_SIZE + 2, 15L, TimeUnit.SECONDS, new LinkedBlockingQueue(), new PriorityThreadFactory("Normal Packet Pool", 6));
_generalThreadPool = new ThreadPoolExecutor(Config.GENERAL_THREAD_CORE_SIZE, Config.GENERAL_THREAD_CORE_SIZE + 2, 5L, TimeUnit.SECONDS, new LinkedBlockingQueue(), new PriorityThreadFactory("General Pool", 5));
_aiScheduledThreadPool = new ScheduledThreadPoolExecutor(Config.AI_MAX_THREAD, new PriorityThreadFactory("AISTPool", 5));
scheduleGeneralAtFixedRate(new PurgeTask(), 0x927c0L, 0x493e0L);
}
public static long validateDelay(long delay)
{
if(delay < 0L)
delay = 0L;
else
if(delay > 0x431bde82d7bL)
delay = 0x431bde82d7bL;
return delay;
}
public ScheduledFuture scheduleEffect(Runnable r, long delay)
{
try
{
delay = validateDelay(delay);
return _effectsScheduledThreadPool.schedule(new RunnableWrapper(r), delay, TimeUnit.MILLISECONDS);
}
catch(RejectedExecutionException e)
{
return null;
}
}
public ScheduledFuture scheduleEffectAtFixedRate(Runnable r, long initial, long delay)
{
try
{
delay = validateDelay(delay);
initial = validateDelay(initial);
return _effectsScheduledThreadPool.scheduleAtFixedRate(new RunnableWrapper(r), initial, delay, TimeUnit.MILLISECONDS);
}
catch(RejectedExecutionException e)
{
return null;
}
}
/**
* @deprecated Method removeEffect is deprecated
*/
@Deprecated
public boolean removeEffect(RunnableScheduledFuture r)
{
return _effectsScheduledThreadPool.remove(r);
}
public ScheduledFuture scheduleGeneral(Runnable r, long delay)
{
try
{
delay = validateDelay(delay);
return _generalScheduledThreadPool.schedule(new RunnableWrapper(r), delay, TimeUnit.MILLISECONDS);
}
catch(RejectedExecutionException e)
{
return null;
}
}
public ScheduledFuture scheduleGeneralAtFixedRate(Runnable r, long initial, long delay)
{
try
{
delay = validateDelay(delay);
initial = validateDelay(initial);
return _generalScheduledThreadPool.scheduleAtFixedRate(new RunnableWrapper(r), initial, delay, TimeUnit.MILLISECONDS);
}
catch(RejectedExecutionException e)
{
return null;
}
}
/**
* @deprecated Method removeGeneral is deprecated
*/
@Deprecated
public boolean removeGeneral(RunnableScheduledFuture r)
{
return _generalScheduledThreadPool.remove(r);
}
public ScheduledFuture scheduleAi(Runnable r, long delay)
{
try
{
delay = validateDelay(delay);
return _aiScheduledThreadPool.schedule(new RunnableWrapper(r), delay, TimeUnit.MILLISECONDS);
}
catch(RejectedExecutionException e)
{
return null;
}
}
public ScheduledFuture scheduleAiAtFixedRate(Runnable r, long initial, long delay)
{
try
{
delay = validateDelay(delay);
initial = validateDelay(initial);
return _aiScheduledThreadPool.scheduleAtFixedRate(new RunnableWrapper(r), initial, delay, TimeUnit.MILLISECONDS);
}
catch(RejectedExecutionException e)
{
return null;
}
}
public void executePacket(Runnable pkt)
{
_generalPacketsThreadPool.execute(pkt);
}
public void executeCommunityPacket(Runnable r)
{
_generalPacketsThreadPool.execute(r);
}
public void executeIOPacket(Runnable pkt)
{
_ioPacketsThreadPool.execute(pkt);
}
public void executeTask(Runnable r)
{
_generalThreadPool.execute(r);
}
public void executeAi(Runnable r)
{
_aiScheduledThreadPool.execute(new RunnableWrapper(r));
}
public String[] getStats()
{
return (new String[] {
"STP:", " + Effects:", (new StringBuilder()).append(" |- ActiveThreads: ").append(_effectsScheduledThreadPool.getActiveCount()).toString(), (new StringBuilder()).append(" |- getCorePoolSize: ").append(_effectsScheduledThreadPool.getCorePoolSize()).toString(), (new StringBuilder()).append(" |- PoolSize: ").append(_effectsScheduledThreadPool.getPoolSize()).toString(), (new StringBuilder()).append(" |- MaximumPoolSize: ").append(_effectsScheduledThreadPool.getMaximumPoolSize()).toString(), (new StringBuilder()).append(" |- CompletedTasks: ").append(_effectsScheduledThreadPool.getCompletedTaskCount()).toString(), (new StringBuilder()).append(" |- ScheduledTasks: ").append(_effectsScheduledThreadPool.getTaskCount() - _effectsScheduledThreadPool.getCompletedTaskCount()).toString(), " | -------", " + General:",
(new StringBuilder()).append(" |- ActiveThreads: ").append(_generalScheduledThreadPool.getActiveCount()).toString(), (new StringBuilder()).append(" |- getCorePoolSize: ").append(_generalScheduledThreadPool.getCorePoolSize()).toString(), (new StringBuilder()).append(" |- PoolSize: ").append(_generalScheduledThreadPool.getPoolSize()).toString(), (new StringBuilder()).append(" |- MaximumPoolSize: ").append(_generalScheduledThreadPool.getMaximumPoolSize()).toString(), (new StringBuilder()).append(" |- CompletedTasks: ").append(_generalScheduledThreadPool.getCompletedTaskCount()).toString(), (new StringBuilder()).append(" |- ScheduledTasks: ").append(_generalScheduledThreadPool.getTaskCount() - _generalScheduledThreadPool.getCompletedTaskCount()).toString(), " | -------", " + AI:", (new StringBuilder()).append(" |- ActiveThreads: ").append(_aiScheduledThreadPool.getActiveCount()).toString(), (new StringBuilder()).append(" |- getCorePoolSize: ").append(_aiScheduledThreadPool.getCorePoolSize()).toString(),
(new StringBuilder()).append(" |- PoolSize: ").append(_aiScheduledThreadPool.getPoolSize()).toString(), (new StringBuilder()).append(" |- MaximumPoolSize: ").append(_aiScheduledThreadPool.getMaximumPoolSize()).toString(), (new StringBuilder()).append(" |- CompletedTasks: ").append(_aiScheduledThreadPool.getCompletedTaskCount()).toString(), (new StringBuilder()).append(" |- ScheduledTasks: ").append(_aiScheduledThreadPool.getTaskCount() - _aiScheduledThreadPool.getCompletedTaskCount()).toString(), "TP:", " + Packets:", (new StringBuilder()).append(" |- ActiveThreads: ").append(_generalPacketsThreadPool.getActiveCount()).toString(), (new StringBuilder()).append(" |- getCorePoolSize: ").append(_generalPacketsThreadPool.getCorePoolSize()).toString(), (new StringBuilder()).append(" |- MaximumPoolSize: ").append(_generalPacketsThreadPool.getMaximumPoolSize()).toString(), (new StringBuilder()).append(" |- LargestPoolSize: ").append(_generalPacketsThreadPool.getLargestPoolSize()).toString(),
(new StringBuilder()).append(" |- PoolSize: ").append(_generalPacketsThreadPool.getPoolSize()).toString(), (new StringBuilder()).append(" |- CompletedTasks: ").append(_generalPacketsThreadPool.getCompletedTaskCount()).toString(), (new StringBuilder()).append(" |- QueuedTasks: ").append(_generalPacketsThreadPool.getQueue().size()).toString(), " | -------", " + I/O Packets:", (new StringBuilder()).append(" |- ActiveThreads: ").append(_ioPacketsThreadPool.getActiveCount()).toString(), (new StringBuilder()).append(" |- getCorePoolSize: ").append(_ioPacketsThreadPool.getCorePoolSize()).toString(), (new StringBuilder()).append(" |- MaximumPoolSize: ").append(_ioPacketsThreadPool.getMaximumPoolSize()).toString(), (new StringBuilder()).append(" |- LargestPoolSize: ").append(_ioPacketsThreadPool.getLargestPoolSize()).toString(), (new StringBuilder()).append(" |- PoolSize: ").append(_ioPacketsThreadPool.getPoolSize()).toString(),
(new StringBuilder()).append(" |- CompletedTasks: ").append(_ioPacketsThreadPool.getCompletedTaskCount()).toString(), (new StringBuilder()).append(" |- QueuedTasks: ").append(_ioPacketsThreadPool.getQueue().size()).toString(), " | -------", " + General Tasks:", (new StringBuilder()).append(" |- ActiveThreads: ").append(_generalThreadPool.getActiveCount()).toString(), (new StringBuilder()).append(" |- getCorePoolSize: ").append(_generalThreadPool.getCorePoolSize()).toString(), (new StringBuilder()).append(" |- MaximumPoolSize: ").append(_generalThreadPool.getMaximumPoolSize()).toString(), (new StringBuilder()).append(" |- LargestPoolSize: ").append(_generalThreadPool.getLargestPoolSize()).toString(), (new StringBuilder()).append(" |- PoolSize: ").append(_generalThreadPool.getPoolSize()).toString(), (new StringBuilder()).append(" |- CompletedTasks: ").append(_generalThreadPool.getCompletedTaskCount()).toString(),
(new StringBuilder()).append(" |- QueuedTasks: ").append(_generalThreadPool.getQueue().size()).toString(), " | -------", " + Javolution stats:", (new StringBuilder()).append(" |- FastList: ").append(FastList.report()).toString(), (new StringBuilder()).append(" |- FastMap: ").append(FastMap.report()).toString(), (new StringBuilder()).append(" |- FastSet: ").append(FastSet.report()).toString(), " | -------"
});
}
public void shutdown()
{
_shutdown = true;
try
{
_effectsScheduledThreadPool.awaitTermination(1L, TimeUnit.SECONDS);
_generalScheduledThreadPool.awaitTermination(1L, TimeUnit.SECONDS);
_generalPacketsThreadPool.awaitTermination(1L, TimeUnit.SECONDS);
_ioPacketsThreadPool.awaitTermination(1L, TimeUnit.SECONDS);
_generalThreadPool.awaitTermination(1L, TimeUnit.SECONDS);
_effectsScheduledThreadPool.shutdown();
_generalScheduledThreadPool.shutdown();
_generalPacketsThreadPool.shutdown();
_ioPacketsThreadPool.shutdown();
_generalThreadPool.shutdown();
_log.info("All ThreadPools are now stopped");
}
catch(InterruptedException e)
{
_log.log(Level.WARNING, "", e);
}
}
public boolean isShutdown()
{
return _shutdown;
}
public void purge()
{
_effectsScheduledThreadPool.purge();
_generalScheduledThreadPool.purge();
_aiScheduledThreadPool.purge();
_ioPacketsThreadPool.purge();
_generalPacketsThreadPool.purge();
_generalThreadPool.purge();
}
public String getPacketStats()
{
StringBuilder sb = new StringBuilder(1000);
ThreadFactory tf = _generalPacketsThreadPool.getThreadFactory();
if(tf instanceof PriorityThreadFactory)
{
PriorityThreadFactory ptf = (PriorityThreadFactory)tf;
int count = ptf.getGroup().activeCount();
Thread threads[] = new Thread[count + 2];
ptf.getGroup().enumerate(threads);
StringUtil.append(sb, new String[] {
"General Packet Thread Pool:\r\nTasks in the queue: ", String.valueOf(_generalPacketsThreadPool.getQueue().size()), "\r\nShowing threads stack trace:\r\nThere should be ", String.valueOf(count), " Threads\r\n"
});
Thread arr$[] = threads;
int len$ = arr$.length;
for(int i$ = 0; i$ < len$; i$++)
{
Thread t = arr$[i$];
if(t == null)
continue;
StringUtil.append(sb, new String[] {
t.getName(), "\r\n"
});
StackTraceElement arr$[] = t.getStackTrace();
int len$ = arr$.length;
for(int i$ = 0; i$ < len$; i$++)
{
StackTraceElement ste = arr$[i$];
StringUtil.append(sb, new String[] {
ste.toString(), "\r\n"
});
}
}
}
sb.append("Packet Tp stack traces printed.\r\n");
return sb.toString();
}
public String getIOPacketStats()
{
StringBuilder sb = new StringBuilder(1000);
ThreadFactory tf = _ioPacketsThreadPool.getThreadFactory();
if(tf instanceof PriorityThreadFactory)
{
PriorityThreadFactory ptf = (PriorityThreadFactory)tf;
int count = ptf.getGroup().activeCount();
Thread threads[] = new Thread[count + 2];
ptf.getGroup().enumerate(threads);
StringUtil.append(sb, new String[] {
"I/O Packet Thread Pool:\r\nTasks in the queue: ", String.valueOf(_ioPacketsThreadPool.getQueue().size()), "\r\nShowing threads stack trace:\r\nThere should be ", String.valueOf(count), " Threads\r\n"
});
Thread arr$[] = threads;
int len$ = arr$.length;
for(int i$ = 0; i$ < len$; i$++)
{
Thread t = arr$[i$];
if(t == null)
continue;
StringUtil.append(sb, new String[] {
t.getName(), "\r\n"
});
StackTraceElement arr$[] = t.getStackTrace();
int len$ = arr$.length;
for(int i$ = 0; i$ < len$; i$++)
{
StackTraceElement ste = arr$[i$];
StringUtil.append(sb, new String[] {
ste.toString(), "\r\n"
});
}
}
}
sb.append("Packet Tp stack traces printed.\r\n");
return sb.toString();
}
public String getGeneralStats()
{
StringBuilder sb = new StringBuilder(1000);
ThreadFactory tf = _generalThreadPool.getThreadFactory();
if(tf instanceof PriorityThreadFactory)
{
PriorityThreadFactory ptf = (PriorityThreadFactory)tf;
int count = ptf.getGroup().activeCount();
Thread threads[] = new Thread[count + 2];
ptf.getGroup().enumerate(threads);
StringUtil.append(sb, new String[] {
"General Thread Pool:\r\nTasks in the queue: ", String.valueOf(_generalThreadPool.getQueue().size()), "\r\nShowing threads stack trace:\r\nThere should be ", String.valueOf(count), " Threads\r\n"
});
Thread arr$[] = threads;
int len$ = arr$.length;
for(int i$ = 0; i$ < len$; i$++)
{
Thread t = arr$[i$];
if(t == null)
continue;
StringUtil.append(sb, new String[] {
t.getName(), "\r\n"
});
StackTraceElement arr$[] = t.getStackTrace();
int len$ = arr$.length;
for(int i$ = 0; i$ < len$; i$++)
{
StackTraceElement ste = arr$[i$];
StringUtil.append(sb, new String[] {
ste.toString(), "\r\n"
});
}
}
}
sb.append("Packet Tp stack traces printed.\r\n");
return sb.toString();
}
protected static final Logger _log = Logger.getLogger(l2/brick/gameserver/ThreadPoolManager.getName());
private ScheduledThreadPoolExecutor _effectsScheduledThreadPool;
private ScheduledThreadPoolExecutor _generalScheduledThreadPool;
private ScheduledThreadPoolExecutor _aiScheduledThreadPool;
private ThreadPoolExecutor _generalPacketsThreadPool;
private ThreadPoolExecutor _ioPacketsThreadPool;
private ThreadPoolExecutor _generalThreadPool;
private static final long MAX_DELAY = 0x431bde82d7bL;
private boolean _shutdown;
}
Сообщений: 555
Тем: 2
Зарегистрирован: Feb 2011
Репутация:
1,507
schedule смени на scheduleGeneral
Сообщений: 112
Тем: 26
Зарегистрирован: Sep 2012
Репутация:
-216
05-28-2013, 02:19 PM
(Сообщение последний раз редактировалось: 05-28-2013, 02:29 PM sakson.)
KID Написал:schedule смени на scheduleGeneral
Огромное тебе спасибО!!!!
Все вроде ошибочка исчезла
Код: getInstance().scheduleGeneral
Добавлено через 9 минут
KID Написал:1. скорее всего у тебя пулменеджер на синглтоне, и там нужно сделать нечто .getInstance().schedule
2. возможно нет функционала по определениею нпц, но поиск объекта там точно есть. возьми его и проверь принадлежность к классу нпц
3. замени на teleToLocation(x, y, z);
А как сделать принадлежность к классу НПС?Подскажи пожалуйста.
Сообщений: 555
Тем: 2
Зарегистрирован: Feb 2011
Репутация:
1,507
Скинь код l2.brick.gameserver.model.actor.knownlist.PcKnownList
Сообщений: 112
Тем: 26
Зарегистрирован: Sep 2012
Репутация:
-216
KID Написал:Скинь код l2.brick.gameserver.model.actor.knownlist.PcKnownList PcKnownList
Код: :
public class PcKnownList extends PlayableKnownList
{
public PcKnownList(L2PcInstance activeChar)
{
super(activeChar);
}
public boolean addKnownObject(L2Object object)
{
if(!super.addKnownObject(object))
return false;
if(object.getPoly().isMorphed() && object.getPoly().getPolyType().equals("item"))
{
getActiveChar().sendPacket(new SpawnItem(object));
} else
{
object.sendInfo(getActiveChar());
if(object instanceof L2Character)
{
L2Character obj = (L2Character)object;
if(obj.hasAI())
obj.getAI().describeStateToPlayer(getActiveChar());
}
}
return true;
}
protected boolean removeKnownObject(L2Object object, boolean forget)
{
if(!super.removeKnownObject(object, forget))
return false;
if(object instanceof L2AirShipInstance)
{
if(((L2AirShipInstance)object).getCaptainId() != 0 && ((L2AirShipInstance)object).getCaptainId() != getActiveChar().getObjectId())
getActiveChar().sendPacket(new DeleteObject(((L2AirShipInstance)object).getCaptainId()));
if(((L2AirShipInstance)object).getHelmObjectId() != 0)
getActiveChar().sendPacket(new DeleteObject(((L2AirShipInstance)object).getHelmObjectId()));
}
getActiveChar().sendPacket(new DeleteObject(object));
if(Config.CHECK_KNOWN && (object instanceof L2Npc) && getActiveChar().isGM())
getActiveChar().sendMessage((new StringBuilder()).append("Removed NPC: ").append(((L2Npc)object).getName()).toString());
return true;
}
public final L2PcInstance getActiveChar()
{
return (L2PcInstance)super.getActiveChar();
}
public int getDistanceToForgetObject(L2Object object)
{
if(object instanceof L2Vehicle)
return 10000;
int knownlistSize = getKnownObjects().size();
if(knownlistSize <= 25)
return 4000;
if(knownlistSize <= 35)
return 3500;
return knownlistSize > 70 ? 2310 : 2910;
}
public int getDistanceToWatchObject(L2Object object)
{
if(object instanceof L2Vehicle)
return 8000;
int knownlistSize = getKnownObjects().size();
if(knownlistSize <= 25)
return 3400;
if(knownlistSize <= 35)
return 2900;
return knownlistSize > 70 ? 1700 : 2300;
}
public volatile L2Playable getActiveChar()
{
return getActiveChar();
}
public volatile L2Character getActiveChar()
{
return getActiveChar();
}
}
Сообщений: 555
Тем: 2
Зарегистрирован: Feb 2011
Репутация:
1,507
|