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

Помогите Опыт при убийстве

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

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

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

    Баллы:
    66
    Skype:
    avanguard31
    Имя в Minecraft:
    Avanguard
    Помогите, хочу сам сделать плагин который при убийстве игрока/моба добавлял опыт. Это первая попытка написать плагин, в чем моя ошибка

    package ru.avanguard.aero;

    import org.bukkit.Bukkit
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.plugin.java.JavaPlugin;


    public class Aero extends JavaPlugin implements Listener
    {

    public void onEnable()
    {
    getLogger().info("Aero plugin enabled!");
    Bukkit.getPluginManager().registerEvents(this, this);
    }

    public void onDisable()
    {
    getLogger().info("Aero plugin disabled!");
    }
    @EventHandler
    public void onDamage(EntityDamageByEntityEvent e)
    {
    ((Player) e).getPlayer().setLevel(+0.5);
    }

    }
     
  2. Хостинг MineCraft
    <
  3. Bohdan_Hrytsak

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

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Вот тут
    Код:
    public void onDamage(EntityDamageByEntityEvent e)
    {
    ((Player) e).getPlayer().setLevel(+0.5);
    }
    
    PS: используй перед началом кода [.CODE=JAVA] в конце [/.CODE]
    без точки .Для вставки кода в сообщение.
     
    Последнее редактирование: 13 авг 2016
  4. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    [code=java]//Your code[/code]
     
  5. Bohdan_Hrytsak

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

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    cпс,не увидел опечатку.
     
  6. Dymeth

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

    Баллы:
    76
    Начальные знания английского языка позволяют понять, что ты используешь событие урона энтити, а не их смерти. Соответственно в твоём случае опыт в теории выдавался бы при каждом дамаге. Если хочешь использовать этот эвент, то вручную проверяй уровень здоровья энтити. Однако я бы посоветовал в данном случае примерять EntityDeathEvent.
    Ты кастуешь объект события в объект игрока. Это полный бред. События не наследуют игроков. События содержат несколько "равноправных" элементов. В данном случае это, например, объект энтити, получившей урон (жертва), энтити, произведшая урон (атакующая) и значение силы и причины урона.
    Также нужно учесть, что других энтити может атаковать не только игрок, но и любые другие агрессивные энтити.
    Плюс ко всему не понятно, к чему ты прибавляешь "0.5". Если к текущему уровню игрока, то так и пропиши.
     

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