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

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

Discussion in 'Разработка плагинов для новичков' started by CraftCoder, May 11, 2015.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    173
    Имя в Minecraft:
    _Shevchik_
    ChunkUnloadEvent
     
  9. Автор темы
    CraftCoder

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Share This Page