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

Помогите Вопрос, связанный с голограммами

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

  1. Автор темы
    CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Доброго времени суток, всем читающим.

    Пишу плагин на кланы. И столкнулся с проблемой. При создании клана, на точке, на которой он создан - появляется голограмма. На данный момент, моя реализация работы с голограммами меня совсем не устраивает. Дело в том, что созданную голограмму я помещаю в мапу <Клан, Голограмма>, и потом, когда игрок умирает, перезаходит, перерождается и т.д. я, с помощью пакетов, передаю игроку все голограммы, с помощью цикла.

    Не очень то разумное решение, ведь голограмм может быть 100 или даже 1000. Что делать тогда?

    Тут же, в голову пришла другая идея - слушать PlayerMoveEvent и передавать игроку голограммы ближайших кланов, скажем, в радиусе 32 блоков.

    Собственно, вопрос:
    Как лучше всего реализовать то, что я хочу?
     
  2. Хостинг MineCraft
    <
  3. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    слушать PlayerMoveEvent и передавать игроку голограммы ближайших кланов, скажем, в радиусе 32 блоков.
     
  4. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Так а что, ты голограммы сам создаешь? Если через HolographicDisplays (HoloAPI?), оно не умеет само по расстоянию работать?
     
  5. Автор темы
    CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Зависимости мне ни к чему :)
    Голограммы создаю сам, через армор стенды.

    PlayerMoveEvent, как мне кажется, слушать будет слишком мажорно.
    При большом количестве игроков, уверен, это скажется на производительности.
     
  6. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    А зачем передавать то? Энтити сама себя передаст, когда игрок подойдет.
     
  7. Автор темы
    CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Так на пакетах и рефлексии же всё.
     
  8. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ну на скоко я знаю, стойка это самая оптимизированная энтити в майне. Так что не страшно если их много будет. Когда создаешь стойки добавляй ей какойнибудь NBT таг. И тупо отменяй потом евент смерти стойки если на ней есть NBT таг.
     
  9. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Они тоже тикаются, если что.
    Она не дохнет, если что.
     
  10. Автор темы
    CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Ну что, решение поизящнее никак больше не придумать? :(
    Античит слушает PlayerMoveEvent, еще и кланы мои. Не очень то хорошо.
     
  11. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ну а что насчёт шедулера?
     
  12. Автор темы
    CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Да я вот думаю, создам раннабл, который будет проходится по всем голограммам и чекать в радиусе 32 блоков плееров. Дальше проверять, отправлена ли голограмма. Если нет - отпрвлять, если да - ничего не делать. Так, думаю, проще всего.
     
  13. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Ну раз в 5 тиков не такое уж преступление.
     
  14. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ну и пусть тикает, интелекта у нее нету же.
     
    Последнее редактирование: 10 авг 2016
  15. Dymeth

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

    Баллы:
    76
    У меня по такому же принципу NPC реализованы. Посылаю их клиенту их после отправки
    PacketPlayOutMapChunk. Так же вроде и ванильный майн делает...
    P.S. У самого голограммы на стендах (причём ещё и над передвигающимися мобами), поэтому хотел поинтересоваться, почему используешь NMS, а не тот же CraftBukkit? Нагрузочка со стороны баккита исключается или что?
     

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