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

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

mego4el 04.11.2011 17:37

Re: [JAVA] маленький скрипт
 
спасибо! что-то вроде этого?

Код:

public class RebornCorpse  extends Quest implements Runnable
{
        public RebornCorpse(int questId, String name, String descr)
        {
        super(questId, name, descr);
        }
        List<L2NpcInstance> _currentMobs = new ArrayList<L2NpcInstance>();
        //_currentMobs={21336,21378,21381};
        int _activePhase = 0;

public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet)
{
    _currentMobs.remove(npc);
    if(_currentMobs.isEmpty())
      nextPhase();
    return null;
}
private void nextPhase()
        {
    _activePhase++;
    if(_activePhase>3) _activePhase = 1;
    switch(_activePhase)
        {
    case 1:
                _currentMobs.add(addSpawn(21336, 119319, 112238, -3695, 9074, false, 0));
                _currentMobs.add(addSpawn(21336, 119247, 112349, -3691, 9438, false, 0));
                _currentMobs.add(addSpawn(21336, 119225, 112176, -3698, 7247, false, 0));
                _currentMobs.add(addSpawn(21336, 119139, 112318, -3690, 6712, false, 0));
                break;
        case 2:
                _currentMobs.add(addSpawn(21378, 119319, 112238, -3695, 9074, false, 0));
                _currentMobs.add(addSpawn(21378, 119247, 112349, -3691, 9438, false, 0));
                _currentMobs.add(addSpawn(21378, 119225, 112176, -3698, 7247, false, 0));
                _currentMobs.add(addSpawn(21378, 119139, 112318, -3690, 6712, false, 0));
        case 3:
                _currentMobs.add(addSpawn(21381, 119319, 112238, -3695, 9074, false, 0));
                _currentMobs.add(addSpawn(21381, 119247, 112349, -3691, 9438, false, 0));
                _currentMobs.add(addSpawn(21381, 119225, 112176, -3698, 7247, false, 0));
                _currentMobs.add(addSpawn(21381, 119139, 112318, -3690, 6712, false, 0));
    break;
    }
        }
    @Override
    public void run()
    {
    }
}

но чето оно не хочет фурычить(

Azagthtot 04.11.2011 18:24

Re: [JAVA] маленький скрипт
 
:facepalm:
Вы хотя бы процесс запустить не хотите? Ну так, для прикола.
А так же квест к мобам прицепить...

mego4el 04.11.2011 19:21

Re: [JAVA] маленький скрипт
 
Цитата:

Вы хотя бы процесс запустить не хотите? Ну так, для прикола.
А так же квест к мобам прицепить...
всмысле? я вроде же запустил..?
а как можно это сделать? я просто с аррэями плохо знаком((

Добавлено через 17 часов 40 минут
я просто плохо ориентируюсь в коде явы(

Z3oM 06.11.2011 12:46

Re: [JAVA] маленький скрипт
 
А импорты? О_о так на голяк та не будет...

mego4el 07.11.2011 02:39

Re: [JAVA] маленький скрипт
 
Цитата:

А импорты? О_о так на голяк та не будет...
ну как бэ понятно что импорты, ибо вообще бы не компилилось )

Mifesto 12.11.2011 23:12

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 минут
так же ИД мобов должен быть уникальным, так как если что то убьет в другой локе этого моба то оно тоже убдет работать.

pchayka 13.11.2011 01:04

Re: [JAVA] маленький скрипт
 
Azagthtot показал самый оптимальный вариант :boyan:

mego4el 23.07.2012 23:41

Re: [JAVA] маленький скрипт
 
Azagthtot, спасибо я разобрался=)

Добавлено через 1 час 45 минут
все понятно. закрывайте

x3k 29.07.2012 22:31

Re: [JAVA] маленький скрипт
 
off:
Свернуть ↑Развернуть ↓


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

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