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

Помогите Ваншотный бросок снежком

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

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

    MasterCapeXD Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    MasterCapeXD
    Делаю большой проект (плагин). Все уже почти готово, и тут я понял, что мне надо сделать, чтобы при попадании снежком в моба, например свинью, свинья умирала.
    Пробовал двумя способами, но не работают.Вот они
    public void onShootBall (ProjectileHitEvent e, Material material)
    {
    Snowball ball = (Snowball) e.getEntity();
    ItemStack is = new ItemStack(material);
    ItemMeta meta = is.getItemMeta();

    if(e.getEntity() == ball )
    {
    if(e.getEntityType() == EntityType.PIG) {

    }
    }

    }
    }
    Вообще не подходит, потому что нет метода установки дамага или килл моба.
    А вот еще
    public void onShootBall (EntityDamageByEntityEvent e, Material material)
    {
    ItemStack is = new ItemStack(material);
    ItemMeta meta = is.getItemMeta();
    Snowball ball = (Snowball) e.getDamager();
    Player p = (Player) e.getDamager();
    if(e.getDamager() == p )
    {
    e.setDamage(200);
    В предыдущем я использовал дамагера Player, а в этом - snowball
    if(e.getDamager() == ball)
    {
    e.setDamage(200);
     
  2. Хостинг MineCraft
    <
  3. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Отнимай ХП так. (Если хочешь отнять все.)

    entity.setHealh(entity.getHealth() - entity.getHealth());
     
  4. Derik

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

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Как то так...
    Код:
        @EventHandler
        public void onShootBall(EntityDamageByEntityEvent e){
            String damag = e.getDamager().getName();
            Entity entity = e.getEntity();
            if(damag.equals("Snowball")){
               ((LivingEntity)entity).setHealth(0);
            }
        }
     
  5. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Точн... Можно ж было просто 0...
     
  6. ql_Nik_lp

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

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Омг.. Что за сбор быдлокодеров?
    event.getDamager().getType() == EntityType.SNOWBALL
    Проект он большой делает...
     
  7. Derik

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

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Да без разницы по type или name проверять...
     
  8. ql_Nik_lp

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

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Ну да, проверить совпадение двух интов, или же проверить совпадение массива символов, пфф, какая разница)))))
    Ведь это стоит того чтобы дать себе еще одно место в котором можно ошибиться из-за банальной опечатки.

    Без разницы ему...[DOUBLEPOST=1474233229,1474233174][/DOUBLEPOST]
    Это называется ноль, но никому не говори :good:
     
  9. Автор темы
    MasterCapeXD

    MasterCapeXD Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    MasterCapeXD
    Насчет проекта, да , делаю.Но на этом моменте я не смог закодить.Я новичок в коде плагинов, но все-таки, это не значит что я вообще нечего не умею.И все работало отлично.А вот с евентами я не очень розобрался и с их функциями.В этом деле главное - практика.Какие-то ивенты я уже знаю как юзать, другие - проблема.
    Но спасибо за ваши ответы)
     
  10. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    > Snowball ball = (Snowball) e.getEntity();
    > if(e.getEntity() == ball )
    А в моём мире это называется if(true) :)
     
  11. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    просто когда-то вроде ставил ноль, потом ошибками поливало через раз... Не помню, по этой ли причине...
     
  12. ql_Nik_lp

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

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Вряд ли, туда что так, что так 0 идет
     
  13. ql_Nik_lp

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

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Медленнее чем сравнение типов, делает тоже самое
     
  14. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ты прям замерял? Тесты скорости есть?
     

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