Команда телепорта к NPC

accavit

Пляшущий с бубном
Участник
Сообщения
133
Розыгрыши
0
Решения
2
Репутация
0
Реакции
22
Баллы
220
Хроники
  1. Interlude
Исходники
Присутствуют
Сборка
Lucera 1.7
Доброго времени суток! Подскажите, пожалуйста, есть ли возможность Админа телепортироваться к определенному НПС? Например, хочу попасть к Rooney. Ищу что-то подобное команде //teleportto. Эта команда телепортирует только к игрокам. Телепорт по точкам локации не устраивает.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Доброго времени суток! Подскажите, пожалуйста, есть ли возможность Админа телепортироваться к определенному НПС? Например, хочу попасть к Rooney. Ищу что-то подобное команде //teleportto. Эта команда телепортирует только к игрокам. Телепорт по точкам локации не устраивает.
Через айди можно сделать
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
А в админке разве нету в телепорт меню ?
 
INCOGNITO, только по координатам

Я уже подумал о варианте создать раздел тп в админке со всеми точками спавна Rooney ))
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
INCOGNITO, только по координатам

Я уже подумал о варианте создать раздел тп в админке со всеми точками спавна Rooney ))

Java:
package handlers.admin;

import ru.catssoftware.gameserver.ai.CtrlIntention;
import ru.catssoftware.gameserver.gmaccess.gmController;
import ru.catssoftware.gameserver.gmaccess.gmHandler;
import ru.catssoftware.gameserver.model.L2Object;
import ru.catssoftware.gameserver.model.L2World;
import ru.catssoftware.gameserver.model.actor.instance.L2NpcInstance;
import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;

public class AdminNpcTeleport extends gmHandler {
    private static final String[] COMMANDS = {"teleport_to_npc"};

    public static void main(String... args) {
        gmController.getInstance().regCommand(new AdminNpcTeleport());
    }
 
    @Override
    public void runCommand(L2PcInstance admin, String... params) {
        String command = params[0];
        if (command.startsWith("teleport_to_npc")) {
            int npc_id = Integer.parseInt(params[0]);
            teleportToNpc(admin, npc_id);
        }
    }

    private void teleportToNpc(L2PcInstance player, int npc_id) {
        for (L2Object obj : L2World.getInstance().getAllVisibleObjects()) {
            if (obj instanceof L2NpcInstance) {
                L2NpcInstance npc = (L2NpcInstance) obj;
                if (npc.getNpcId() == npc_id) {
                    player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
                    player.teleToLocation(npc.getX(), npc.getY(), npc.getZ(), true);
                }
            }
        }
    }

    @Override
    public String[] getCommandList() {
        return COMMANDS;
    }

}
путь /data/scripts/handlers/admin
 
masone, класс, спасибо. Но не работает. Может ядро не понимает, что такое admin? Попробовать по-другому там написать?
1628972994658.png

Lexicon, такой команды не существует...
 
accavit, Извини, был невнимателен "Lucera 1.7" думал Lucera 2
посмотре я эту люсерю 1.7 ,как уже писал один оратор
я хз что у тебя в ядре, у меня есть, но у меня не чистая 1.7
попробуй //tptoNpc id
Java:
 else if (command.startsWith("tptoNpc")) {
            try {
                Integer oID = Integer.parseInt(params[1]);
                L2Object npc = L2World.getInstance().findObject(oID);
                if (npc == null) {
                    admin.sendMessage("No NPC founded.");
                    return;
                }
                teleportToNpc(npc, admin);
            } catch (StringIndexOutOfBoundsException e) {
            }
        }

Java:
private void teleportToNpc(L2Object npc, L2PcInstance player) {
        player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
        player.teleToLocation(npc.getX(), npc.getY(), npc.getZ(), true);
    }
то и есть дожно быт вроде так с начало ид нпс а потом команда 1234 tptoNpc вроде так :Maikka:
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Нужно собрать список обжидов всех нпц с айди руней, взять координаты рандомного из них и телепортировать игрока по этим координатам.
 
Назад
Сверху Снизу