Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

[Решено] Fake Entity

Тема в разделе "Разработка плагинов для новичков", создана пользователем xDark, 21 окт 2016.

Статус темы:
Закрыта.
  1. Автор темы
    xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Код:
    public class FakePlayer {
        private String name;
        private Location loc;
        private EntityPlayer fake;
        private Player var1;
    
        public FakePlayer(String name, Location location, Player accept) {
            this.name = name;
            this.loc = location;
            this.var1 = accept;
            MinecraftServer server = MinecraftServer.getServer();
            WorldServer world = ((CraftWorld) loc.getWorld()).getHandle();
            PlayerInteractManager manager = new PlayerInteractManager(world);
            this.fake = new EntityPlayer(server, world, name, manager);
        }
    
        public void spawn() {
            if (this.name == null || this.var1 == null || this.loc == null) {
                return;
            }
            this.fake.setLocation(loc.getX(), loc.getY(), loc.getZ(), 0, 0);
            Packet20NamedEntitySpawn packet = new Packet20NamedEntitySpawn(this.fake);
            ((CraftPlayer) this.var1).getHandle().playerConnection.sendPacket(packet);
        }
    
        public Location getLocation() {
            return this.loc;
        }
    
        public void a(Location loc) {
            this.loc = loc;
        }
    
        public void despawn() {
            if (this.name == null || this.var1 == null || this.loc == null) {
                return;
            }
            Packet29DestroyEntity despawnPacket = new Packet29DestroyEntity(this.fake.id);
            ((CraftPlayer) this.var1).getHandle().playerConnection.sendPacket(despawnPacket);
    
        }
    
        public int getId() {
            return this.fake.id;
        }
    }
    
    Как сделать так, чтобы игрок смог атаковать этого фэйк энтити?
    Заранее спасибо.
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    up[DOUBLEPOST=1477069065,1477065691][/DOUBLEPOST]UP[DOUBLEPOST=1477072019][/DOUBLEPOST]UP x3
    @Dereku @CoolBoy
     
  4. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Ты отправляешь игроку пакет фейк-ентити. Он его видит - и на этом всё.
    Ты должен создать свой, кастомный класс, который будет наследоваться от CraftPlayer (вроде так), если, например, нужен ентити-игрок.

    Другой способ - отправлять игроку пакет атаки по ентити. Но это всё будет на визуальном уровне и урон по ентити придётся высчитывать вручную.

    Вообще, получится куча нмс, костылей и говна. Не люблю такое(

    Алсо, майнкрафтом более не занимаюсь. Если то, что написано выше - бред, то увы, значит я уже всё забыл.
     
  5. Автор темы
    xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Эх, жаль, спасибо за помощь :) Буду думать дальше, пытаться что - то с крафт плаером сделать :)
     
    Последнее редактирование: 21 окт 2016
  6. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Не обязательно CraftPlayer.
     
  7. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    EntityPlayer maybe?
     
  8. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Лучше ванильные классы наследовать офк. Но опять-таки смотря что надо - если наша энтитя игрок, то от EntityHuman/EntityPlayer.
     
  9. Автор темы
    xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Решено. Закрыто.
    Спасибо @CoolBoy и @Dereku за помощь.
     
Статус темы:
Закрыта.

Поделиться этой страницей