1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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