Показать сообщение отдельно
Непрочитано 12.11.2011, 23:12   #16
Аватар для Mifesto
Пользователь

По умолчанию Re: [JAVA] маленький скрипт

Попробуй так
Код:
package com.l2jfrozen.gameserver.ai.special;

import com.l2jfrozen.gameserver.model.actor.instance.L2NpcInstance;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.quest.Quest;
import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
import java.util.concurrent.Future;

/*  
	@Author  morfeus

	21336 -- Ketra orc white captain
	21378 -- Scarlet Stakato Noble
	21381 -- Assassin Beetle
*/

public class RebornCorpse  extends Quest implements Runnable
{
	public int CNT = 4;
    private static final int[] monsters = new int[]{21336,21378,21381};
    public RebornCorpse(int questId, String name, String descr)
    {
        super(questId, name, descr);
        for(final int MobIds  : monsters)
        {
             addKillId(MobIds);
        }
        addSpawn(21336, 119319, 112238, -3695, 9074, false, 0);
		addSpawn(21336, 119247, 112349, -3691, 9438, false, 0);
		addSpawn(21336, 119225, 112176, -3698, 7247, false, 0);
		addSpawn(21336, 119139, 112318, -3690, 6712, false, 0);
    }
    @Override
    public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet)
    {
		if(npc.getNpcId() == monsters[0] && CNT == 1)
		{
			CNT = 4;
			delaySpawnMe = ThreadPoolManager.getInstance().scheduleAi(new delayedSpawn(monsters[1]), 5000);
		}
		else if(npc.getNpcId() == monsters[1] && CNT == 1)
		{
			CNT = 4;
			delaySpawnMe = ThreadPoolManager.getInstance().scheduleAi(new delayedSpawn(monsters[2]), 5000);
		}
		else if(npc.getNpcId() == monsters[2] && CNT == 1)
		{
			delaySpawnMe = ThreadPoolManager.getInstance().scheduleAi(new delayedSpawn(monsters[0]), 5000);
			CNT = 4;
		}
                else
                     CNT--;
        return super.onKill(npc, killer, isPet);
    }
    Future<?> delaySpawnMe;
    public class delayedSpawn implements Runnable
    {
        int nd;
        public delayedSpawn(int npid)
        {
            nd = npid;
        }

        @Override
        public void run()
        {
            switch (nd)
            {
                case 21336:
					addSpawn(21378, 119319, 112238, -3695, 9074, false, 0);
					addSpawn(21378, 119247, 112349, -3691, 9438, false, 0);
					addSpawn(21378, 119225, 112176, -3698, 7247, false, 0);
					addSpawn(21378, 119139, 112318, -3690, 6712, false, 0);
                    break;
                case 21378:
					addSpawn(21381, 119319, 112238, -3695, 9074, false, 0);
					addSpawn(21381, 119247, 112349, -3691, 9438, false, 0);
					addSpawn(21381, 119225, 112176, -3698, 7247, false, 0);
					addSpawn(21381, 119139, 112318, -3690, 6712, false, 0);
                    break;
			    case 21381:
					addSpawn(21336, 119319, 112238, -3695, 9074, false, 0);
					addSpawn(21336, 119247, 112349, -3691, 9438, false, 0);
					addSpawn(21336, 119225, 112176, -3698, 7247, false, 0);
					addSpawn(21336, 119139, 112318, -3690, 6712, false, 0);
                    break;
                default:
                {
                    addSpawn(21336, 119319, 112238, -3695, 9074, false, 0);
					addSpawn(21336, 119247, 112349, -3691, 9438, false, 0);
					addSpawn(21336, 119225, 112176, -3698, 7247, false, 0);
					addSpawn(21336, 119139, 112318, -3690, 6712, false, 0);
                }
            }
        }
    }

    @Override
    public void run()
    {
    }
}
Добавлено через 5 минут
так же ИД мобов должен быть уникальным, так как если что то убьет в другой локе этого моба то оно тоже убдет работать.

Последний раз редактировалось Mifesto; 12.11.2011 в 23:54. Причина: Добавлено сообщение
Mifesto вне форума Отправить сообщение для Mifesto с помощью ICQ Ответить с цитированием