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

Помогите Как вычислить вещь, созданную с помощью дюпа

Тема в разделе "Разработка плагинов для новичков", создана пользователем lexmint, 1 июл 2014.

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

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

    Баллы:
    88
    Здравствуйте, ув. форумчане :)

    Интересует актуальный вопрос. Как вычислить вещь, созданную в результате дюпа? В данном случае не простую, а бесконечную. Если еще больше конкретики, то зелье, которое можно использовать бесконечное количество раз.
    Обращался к документации по ItemStack, но имею ни малейшего понятия, что именно отличает ItemStack, содержащий одно зелье (обычное) и полученное в результате дюпа, бесконечное (визуально, в инвентаре числится, как одна единица).

    Буду признателен за поддержку.
     
  2. kirill2011s

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

    Баллы:
    103
    Ну по пробуйте отслеживать, когда выбрасывается зелье и проверять, если их кол-во не изменилось, то забираете его.
     
  3. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Ответ: количеством.
     
  4. dnebik

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik
    По моему слишком большой гемор с этим там для начала надо понять вообще от чего это происходит...
    так что советую не забивать этим мозг и просто поискать специальный плагин на определенный случай
    хотя в вашем случае можно просто если игрок держит поушен и нажимает ПКМ то отменить действие отобрать поушен и бросить нужный...

    думаю должно сроботать
     
  5. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Почему это происходит уже 3 тысячи раз разбиралось.
     
  6. dnebik

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik
    че то пытался написать но возникли две проблемы:
    1: почему то если у тебя лишь 1 поушен в руке то он не хотит менять его на воздух либо ремувать хоть пробую с другими предметами все работает
    2: не знаю как сделать чтобы предмет ремувался после того как выпьешь поушен а не после сразу после того как юзаешь(в плане нажимаешь ПКМ) его
     
  7. kirill2011s

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

    Баллы:
    103
    0. Научись писать по русски
    1. Зачем удалять поршень? Надо зелье удалять, а не поршень
    2. Отслеживаете либо поедание предмета(уже не помню как называется event)(это для выпивания) и отслеживаете клик пкм(для взрывных зелий)
     
  8. dnebik

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik
    извиняюсь за мой кривой русский ((
    и я вроде не говорил поРшенЬ я говорил поУшен!!

    и лучше бы помог чем искать ошибки...
     
  9. kirill2011s

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

    Баллы:
    103
    Боже мой, можно тогда не выражаться таким исковерканным английским? И повторюсь, я помог, предложил вам решение.
     
  10. SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Проблему дюпа надо было искоренять при открытие/вайпа сервера.
    Но столкнувшись с подобной проблемой, т.к. защитил сервер спустя неделя после вайпа, бесконечных зелек набралось уйма.
    Поставил OpenInv открываешь инвентарь игрока видишь зельку, зажимаешь шифт и жмешь на зельку если забирается то не дюпнутая, если не забираеться то дюпнутая, игрока в бан за дюп.
     
  11. Quickston

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

    Баллы:
    78
    Имя в Minecraft:
    Quickston
  12. SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
  13. Quickston

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

    Баллы:
    78
    Имя в Minecraft:
    Quickston
    Если после того, как игрок кинул зелье и getItemInHand оно осталось - этот стак удаляется.
     
  14. SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Тестил на 1.5.2 не работает, игроки бросались ими, пока их не искоренил всех.
     
  15. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Господи, у этих вещей тупо количество == 0.
    И фиксится это кстати вполне нормальным способом, без всяких запретов, тем более на чистом бакките то.
     
  16. Quickston

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

    Баллы:
    78
    Имя в Minecraft:
    Quickston
    Протестил - все работает.
     
  17. Автор темы
    lexmint

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

    Баллы:
    88
    Огромное спасибо :) Действительно, фиксится и удаляется все крайне легко, правда значения amount не 0, а отрицательные (-52, -37 и др.)
     
  18. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Отрицательные они после применения будут. В modfixng каждый тик сканировался хотбар игрока на предмет нулевых предметов, соответственно времени применить их не было. Правда потом я убрал это ибо допилил полную проверку валидности открытого инвентаря.
     
  19. Автор темы
    lexmint

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

    Баллы:
    88
    В таком случае, видимо, при тестах что-то упустил. Значение amount при каждом использовании нулевого зелья декрементируется? Я с помощью PlayerItemHeldEvent реализовал. Пожалуй, не самая надежная реализация, но на деле работает.
     
  20. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Да, декрементируется. PlayerItemHeld вполне сойдёт если вы проверяете и слот куда и слот откуда.
    (Всё это при условии что вы работаете только на бакките, на cauldron некоторые модовые инвентари даже не обнуляют количество предметов, так что дюпается целый стак.)
     

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