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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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