Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Призыв монстра с помощью предмета
#1
Приветствую всех.

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

Спасибо за внимание. С уважением, Аарон.
Иной раз Нищий, решает судьбу целого Царства. (С) Аарон Салутари
Ответ
#2
В айтемхандлере спавнить моба с координатами игрока +/- некоторый разброс.
Ответ
#3
Сделать отдельный хендлер для предмета по типу:
Код:
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)
        {
            // !
        }
    }
}
Ответ
#4
ANZO, Создавать L2Spawn не стоит совсем. Это лишний объект. Достаточно

Код:
template1 = NpcTable.getInstance().getTemplate(ид моба);
L2Npc npc = new L2Npc(IdFactory.getInstance().nextId(),template1);
npc.spawnMe(target.getX()+100,target.getY()+100,target.getZ());
Ответ
#5
Azagthtot Написал:ANZO, Создавать L2Spawn не стоит совсем. Это лишний объект. Достаточно

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

Ну или так Smile Еще поправочка
Код:
template1 = NpcTable.getInstance().getTemplate(ид моба);
L2Npc npc = new L2Npc(IdFactory.getInstance().nextId(),template1);
npc.spawnMe([B]activeChar[/B].getX()+100,[B]activeChar.[/B]getY()+100,[B]activeChar.[/B]getZ());
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)