Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Ветка 7 семи печатей (https://forum.zone-game.info/showthread.php?t=29087)

sakson 26.05.2013 21:13

Ветка 7 семи печатей
 
Здравствуйте!
Помогите решить данные 3 ошибки.Их было всего 7,своими силами исправил только 4,а вот остальные 3 не получается,что только не пробовал.
Код:

----------
1. ERROR in \Q10294_SevenSignToTheMonastery.java (at line 152)
        ThreadPoolManager.schedule(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().getKnownNpc(AbyssalSaintessElcadia2
);
                           
The method getKnownNpc(int) is undefined for the type PcKnownList
----------
3. ERROR in \Q10294_SevenSignToTheMonastery.java (at line 373)
        npcTag.teleToLocationDelayed(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);

KID 27.05.2013 12:02

Re: Ветка 7 семи печатей
 
1. скорее всего у тебя пулменеджер на синглтоне, и там нужно сделать нечто .getInstance().schedule
2. возможно нет функционала по определениею нпц, но поиск объекта там точно есть. возьми его и проверь принадлежность к классу нпц
3. замени на teleToLocation(x, y, z);

sakson 28.05.2013 10:43

Re: Ветка 7 семи печатей
 
Цитата:

Сообщение от KID (Сообщение 301586)
1. скорее всего у тебя пулменеджер на синглтоне, и там нужно сделать нечто .getInstance().schedule
2. возможно нет функционала по определениею нпц, но поиск объекта там точно есть. возьми его и проверь принадлежность к классу нпц
3. замени на teleToLocation(x, y, z);

Спасибо тебе добрый человек,счас буду пробовать :)

Добавлено через 1 час 19 минут
Эм.. добавил ".getInstance().",и все ровно ссылается на schedul

Код:

1. ERROR in \Q10294_SevenSignToTheMonastery.java (at line 152)
        ThreadPoolManager.getInstance().schedule(new MovieStartTask(player,24),7
000L);                                                               
                                                   
The method schedule(Q10294_SevenSignToTheMonastery.MovieStartTask, long) is unde
fined for the type ThreadPoolManager

Квесты правлю 1 раз,вопросик еще можно вам?
Можно поинтересоваться как сделать "Функционал по определению НПС"?

KID 28.05.2013 13:22

Re: Ветка 7 семи печатей
 
Скинь код ThreadPoolManager

sakson 28.05.2013 14:09

Re: Ветка 7 семи печатей
 
Цитата:

Сообщение от KID (Сообщение 302008)
Скинь код 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;




}


KID 28.05.2013 14:14

Re: Ветка 7 семи печатей
 
schedule смени на scheduleGeneral

sakson 28.05.2013 14:19

Re: Ветка 7 семи печатей
 
Цитата:

Сообщение от KID (Сообщение 302026)
schedule смени на scheduleGeneral

Огромное тебе спасибО!!!!
Все вроде ошибочка исчезла
Код:

getInstance().scheduleGeneral
Добавлено через 9 минут
Цитата:

Сообщение от KID (Сообщение 301586)
1. скорее всего у тебя пулменеджер на синглтоне, и там нужно сделать нечто .getInstance().schedule
2. возможно нет функционала по определениею нпц, но поиск объекта там точно есть. возьми его и проверь принадлежность к классу нпц
3. замени на teleToLocation(x, y, z);


А как сделать принадлежность к классу НПС?Подскажи пожалуйста.

KID 28.05.2013 15:59

Re: Ветка 7 семи печатей
 
Скинь код l2.brick.gameserver.model.actor.knownlist.PcKnownL ist

sakson 28.05.2013 16:02

Re: Ветка 7 семи печатей
 
Цитата:

Сообщение от KID (Сообщение 302061)
Скинь код l2.brick.gameserver.model.actor.knownlist.PcKnownL ist

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();
    }
}


KID 28.05.2013 16:10

Re: Ветка 7 семи печатей
 
и еще PlayableKnownList


Текущее время: 15:39. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot