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

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Архив (https://forum.zone-game.info/forumdisplay.php?f=185)
-   -   Призыв монстра с помощью предмета (https://forum.zone-game.info/showthread.php?t=14883)

Aaron 02.07.2011 11:13

Призыв монстра с помощью предмета
 
Приветствую всех.

Подскажите, как реализовать призыв NPC (или моба) с помощью итема. Примерно так-же как и пета, только данный моб будет в "свободном полёте".

Спасибо за внимание. С уважением, Аарон.

Azagthtot 02.07.2011 11:16

Re: Призыв монстра с помощью предмета
 
В айтемхандлере спавнить моба с координатами игрока +/- некоторый разброс.

ANZO 02.07.2011 11:21

Re: Призыв монстра с помощью предмета
 
Сделать отдельный хендлер для предмета по типу:
Код:

public class SummonMob implements IItemHandler
{
       
        public void useItem(L2Playable playable, L2ItemInstance item, boolean forceUse)
        {
                L2PcInstance activeChar = (L2PcInstance) playable;
                L2NpcTemplate template1 = null;
               
                switch (item.getItemId())
                {
                        case ид предмета:
                                template1 = NpcTable.getInstance().getTemplate(ид моба);
                                break;
                       
                }
               
                if (template1 == null)
                        return;
               
                L2Object target = activeChar.getTarget();
                if (target == null)
                        target = activeChar;
               
                try
                {
                        L2Spawn spawn = new L2Spawn(template1);
                        spawn.setLocx(target.getX()+100);
                        spawn.setLocy(target.getY()+100);
                        spawn.setLocz(target.getZ());
                        spawn.spawnOne(false);                       
                }
                catch (Exception e)
                {
                        // !
                }
        }
}


Azagthtot 02.07.2011 11:26

Re: Призыв монстра с помощью предмета
 
ANZO, Создавать L2Spawn не стоит совсем. Это лишний объект. Достаточно

Код:

template1 = NpcTable.getInstance().getTemplate(ид моба);
L2Npc npc = new L2Npc(IdFactory.getInstance().nextId(),template1);
npc.spawnMe(target.getX()+100,target.getY()+100,target.getZ());


ANZO 02.07.2011 11:58

Re: Призыв монстра с помощью предмета
 
Цитата:

Сообщение от Azagthtot (Сообщение 129344)
ANZO, Создавать L2Spawn не стоит совсем. Это лишний объект. Достаточно

Код:

template1 = NpcTable.getInstance().getTemplate(ид моба);
L2Npc npc = new L2Npc(IdFactory.getInstance().nextId(),template1);
npc.spawnMe(target.getX()+100,target.getY()+100,target.getZ());


Ну или так :) Еще поправочка
Код:

template1 = NpcTable.getInstance().getTemplate(ид моба);
L2Npc npc = new L2Npc(IdFactory.getInstance().nextId(),template1);
npc.spawnMe(activeChar.getX()+100,activeChar.getY()+100,activeChar.getZ());



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

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