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

Помогите Удаление энтити из мира

Тема в разделе "Разработка плагинов для новичков", создана пользователем CraftCoder, 11 май 2015.

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

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Как полностью удалить энтити из мира.
    Я делаю так:
    Код:
    entity.getLocation.getChunk.load
    entity.remove
    
    Но все равно не удаляется если не прогружен этот чанк.
     
  2. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Прогружай
     
  3. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Я же написал код с прогрузкой, но чанк не подгружается почему-то.
     
  4. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Я не знаю подробностей работы API с чанками, но, возможно, после .load следует дождаться события OnChunkLoaded или типа того? Вдруг load только помечает его как необходимый для загрузки и она выполняется немного позже по факту?
     
  5. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Суть в том что метод remove не удаляет энтитю, он самом деле просто выставляет внутренний флаг чтобы энтитя удалилась на следующем тике. Но в случае чанка рядом с которым никого нет этот чанк выгрузится раньше чем энтитя удалится. Поэтому чанк нужно держать загруженным хотя-бы 2 тика.
     
  6. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    А как правильно удерживать чанки загруженными?
     
  7. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    ChunkUnloadEvent
     
  8. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Т.е. мне нужные чанки добавлять в очередь и не отгружать 2 тика? А это большая нагрузка? Есть другой способ удалить энтитю?
     
  9. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Смотря как считать, сама загрузка чанка уже дело небыстрое.
    Другое способ - ручками читать файлы чанков и удалять записи об энтитях.
     
  10. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    А по-проще нет ничего?
    Я придумал, я сделаю глобальный лист с айдишками энтитей и при подгрузке чанка будут удалять энтитю, если ее айди есть в листе.
    ОФФТОП:
    Если у меня есть в мире блок сундук и я этому блоку поставлю тип AIR, то что будет?
     
  11. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Будет воздух, блоки то сразу меняются.
     
  12. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    А вещи из сундука не выпадут?
    Во время этого эвента уже можно удалять энтити? Или нужно ждать?
    Похоже, что вещи из него дропаются(
     
  13. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    А если телепортировать энтити на спавн и удалять там?
    Возможно, скрывать при этом и изолировать ото всех.
     
  14. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    А оно нормально тпшнется если чанк не прогружен? Кстати, я слышал, что в каждом мире есть определенные чанки, которые загружены независимо не от чего. Как их узнать?
     
  15. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Тп в мир 0, на спавн, можно даже по у под блоки, например у=-2, падать будет явно больше 2х тиков.
     
  16. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Я так понял эти подгруженные чанки называются спавн чанками и находятся возле спавна мира. Сейчас попробую тпшить в спавн мира и удалять.
    Какого хрена у энтити меняется айди при отгрузке чанка?
     

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