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

Работа верстака, не мнгновенная, а с ожиданием как у печки.

Тема в разделе "Запросы на разработку плагинов", создана пользователем Bukkake, 30 сен 2017.

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

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

    Баллы:
    66
    Имя в Minecraft:
    666
    Можно ли изменить принцип работы верстака, чтобы нужно было ждать некоторое время чтобы получить результат ? Принцип как у печки - нужно подождать окончания работы.
     
  2. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
  3. iD3LSY

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

    Баллы:
    76
    Есть пару вариантов, которые я придумал сразу.

    Создать ООП класс игрока, ООП класс скрафченных предметов (грубо говоря), а позже с помощью 1 шедулера проверять всех игроков. Через опр. время - выдавать вещь, а при крафте ее забирать.

    При крафте - удалять предмет (как и в I-ом вар-е), и записывать в Table<Player, Material, Long>. Каждые n-секунд (как пример) через шедулер снимать в Table соответственно, по окончанию - выдавать предмет соответственно.
     
  4. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Зач сложности с коллекциями?
    Событие крафта -> отмена события -> шед на сет результата через время для этого игрока.
    Еще нужны будут разные нюансы, если игрок закрыл меню или изменил крафт.
     
  5. CriticaMobslps

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

    Баллы:
    76
    Имя в Minecraft:
    CriticaMobs
    Может у тебя инет слабый или комп, если нет то придётся бомбить систему
     
  6. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Ты читаешь вообще тему?
     
  7. CriticaMobslps

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

    Баллы:
    76
    Имя в Minecraft:
    CriticaMobs
    А я по заголовку,ясно -_0
     
  8. iD3LSY

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

    Баллы:
    76
    Конечно, а давай сразу еще запустим 500 шедулеров? На час каждый к примеру. Скрафтит человек стак досок - на те.
     
  9. iD3LSY

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

    Баллы:
    76
    Вот эту кстати часть тоже не особо понял:
    вообще не понял. Ты скрафтил, у тебя закрылось меню крафта, забросило в список, обновляет со всеми другими игроками, в опр. момент дает шмот.
     
  10. Алмаз Гараев

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

    Баллы:
    76
    Он не понял ещё, что придется его серверу падать из за этого:))
     
  11. iD3LSY

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

    Баллы:
    76
    Не LuckyZeeRo этого не понял, не ТС. В любом случае придется париться из-за такого плагина.
     
  12. Nikolai_Faint

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

    Баллы:
    96
    Почему сразу падать? Просто нагрузка на ОЗУ,ЦП. И то! При условии что много игроков будут юзать верстак.
     
  13. Автор темы
    Bukkake

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

    Баллы:
    66
    Имя в Minecraft:
    666
    Много игроков не будет, 10-20 максимум.
     
  14. Nikolai_Faint

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

    Баллы:
    96
    Заказывай и ставь.
     
  15. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Эм.. Да хоть оверстак крафтит, событие одно, ItemStack result один. Какие 500 шедулеров?
     
  16. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Почему закрылось, он же сказал, что ждать надо. Ты закинул, но тебе в ячейку результата не сразу кидает вещь, а через время.
     
  17. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Да хоть 1000 будет. Во первых шедулеры почти не несут нагрузки, во вторых, сколько игроков из всех в онлайне одновременно будут использовать крафт? Да не больше 10%, и то - пик. В третьих, если конечно не говнокодить и уметь отменять ненужные шеды, то ты даже на одну десятую тика тпс не уменьшишь. Сам сервер обрабатывает и генерирует столько всего за тик, что твой шедулер это маленький атом в большом обьекте.
     
  18. Nikolai_Faint

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

    Баллы:
    96
    Окей. Но если смоделировать ситуацию где 1000 игроков сразу открывают такой верстак,есть шанс больших лагов/крашей.
     
  19. iD3LSY

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

    Баллы:
    76
    Во-первых. CraftItemEvent не возвращает скрафченный предмет, можно получить только рецепт (получить кол-во скрафченного можно, но костыльно).
    Во-вторых. сомневаюсь, очень сомневаюсь. @alexandrage, правда ли это? Я просто наслышан о том, как сервера ложились от таких как он...
     
    Последнее редактирование: 6 окт 2017
  20. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Эм, советую пойти и получше учить Bukkit API. Можно получить, при том не костыльно, а внимательно прочитав документацию по данному событию.
    Возьми тестовый сервер и запушь 5000 шедулеров синхронных с инициализацией айтемстака. Предоставь результаты с таймингов и код тестового плагина. Посмотрим.
     

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