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

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

Discussion in 'Разработка плагинов для новичков' started by MasterCapeXD, Sep 18, 2016.

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

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

    Trophy Points:
    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 Активный участник Пользователь

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    Derik
    Как то так...
    Code:
        @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 Активный участник Пользователь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Share This Page