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

Помогите Как правильно убить игрока

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

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

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    В моем плагин полностью переделана система урона и брони, т.е. я при событии урона я устанавливаю урон в ноль(event.setDamage(0)) ну и самостоятельно отнимаю хп игроку, если нужно отнять больше, чем есть хп у игрока, то убиваю его так player.setHealth(0), при этом игрок либо не умирает либо умерает 100500 раз. Как с этим бороться?
     
  2. Хостинг MineCraft
    <
  3. aceJKE

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

    Баллы:
    123
    Если он умирает 100500 раз --> ты вызываешь этот метод 100500 раз --> нужно вызвать его 1 раз и на этом успокоиться. В большинстве плагинов именно так и убивают setHealth(0);
     
  4. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    По идее же, после первого убийства продамажить этому игроку уже будет не возможно.[DOUBLEPOST=1426957410,1425456427][/DOUBLEPOST]Понял в чем проблема тысячи смертей, но есть другая проблема, т.к. система урона полностью переписана, об этом я писал в первом посте, то когда я уже убиваю игрока(setHealth(0)), у него почему-то полностью восстанавливаются хп и он остается жив, хотя эвент смерти срабатывает и вещи выпадают.
    Может NMS'ники посоветуют как ижектить мою систему урона в ядро?
     
  5. MrKiBa

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

    Баллы:
    66
    круто, хп 0, вещи выпали, а игрок жив? типа экран смерти не появляется? о, значит ты вызвал баг майна, вот эт да. ну тогда можешь написать еще функцию, чтобы он тогда просто отправлялся на спавн после смерти. Тоесть сдох и сразу на спавн, без экрана смерти, будет круто, хоть такой плагин уже есть, но ты его заново написал :D
    ну или я ниче не поял, ну ладно.. ._.
     
  6. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Ты все правильно понял, я как раз хотел сделать телепортацию на спавн, но если сервер чуть-чуть подлагнет, то игрок успеет подобрать свои вещи, ну или хотя бы их часть.
     
  7. MrKiBa

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

    Баллы:
    66
    Он не сможет подобрать дроп, пока сервер не ответит ему, что дроп был взят. Зайди на лагучий сервер, сломай блок или выброси предмет, во время лагов он у тебя не поднимется.
     
  8. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Никак не могу пофиксить это, вариант с телепортом работает, но вызывает конфликты с многими плагинами. Возможно дело в событии дамага, суть в том, что мне нужно чтобы при дамаге урон считался по моей формуле и игрок так же натурально откидывался и краснел, поэтому я не отменяю эвент, а просто ставлю setDamage(0) и хп отнимаю игроку сам. Может есть другие способы обработки события? Может нужно приоритет какой поставить?

    P.S. Где можно узнать какие приоритеты что дают?
     
  9. MrKiBa

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

    Баллы:
    66
    Ну по идее типа ты должен не отнимать хп, устанавливая его кол-во или уменьшая, а вызвать событие, которое используется при получении урона игроком от чего-либо.
     
  10. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Ну так если я при дамаге, буду вызывать событие дамага, то баккит будет сам считать броню, а мне нужно по моей формуле.
     
  11. MrKiBa

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

    Баллы:
    66
    изменяй ядро баккита :D
     
  12. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    @Shevchik ты же профи по инъекциям в ядро, может поможешь в этом пустяке.
     
  13. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    А нефиг ручками хп отнимать. Для кого придумали модификаторы урона а?
     
  14. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Можно ссылку на первоисточник?
     
  15. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    Фигачь его уроном бездны. Это тот вид урона, который никакие плагины не должны изменять(по логике вещей), ведь если игрок упал из мира, то он должен умереть, а не скитаться в бездне вечно... По моему весьма логичный способ.
     
  16. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    А броня будет считаться? Просто мне нужно игроку в броне нанести урон так, как буд-то на нем ее нет.
     
  17. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    По умолчанию ничто не блокирует урон от бездны(не должно, всё на совести плагинописцев/мододелов).
     
  18. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Попробовал сделать так: event.setDamage(DamageModifier.ARMOR, damage); но дамажит на какие-то левые очки дамага[DOUBLEPOST=1428251992,1428250583][/DOUBLEPOST]Ну так как продамажить сквозь броню.
     
  19. kirill2011s

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

    Баллы:
    103
    Кажется, зелья наносят прямой дамаг.[DOUBLEPOST=1428253306][/DOUBLEPOST]Еще, не полохой способ, вручную ставить здоровье и наносить урон 0.
     
  20. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Из-за этого и баг. А зелья попробую.[DOUBLEPOST=1428345089,1428253654][/DOUBLEPOST]
    Если ставить модификатор MAGIC, то не зависимо от дамага отнимается два сердца. Что делать?[DOUBLEPOST=1428348098][/DOUBLEPOST]@fromgate @Den_Abr @BeYkeR
     

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