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

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

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

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

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

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

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

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    [code=java]//Your code[/code]
     
  5. Bohdan_Hrytsak

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

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

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

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

Share This Page