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

Идея Сделать плагин на ограничение максимально допустимого уровня прокачки персонажа

Тема в разделе "Запросы на разработку плагинов", создана пользователем Artur97, 17 мар 2017.

Статус темы:
Закрыта.
  1. Автор темы
    Artur97

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

    Баллы:
    68
    Имя в Minecraft:
    Kachkan
    Кто бы мог подумать что такой вещи до сих пор нету в паутине интернет пространства . Перерыл все что мог - итог , ничего подобного нету
    Кто может , имеет время и возможности прошу сделать ! Уверен это будет полезно и для друг кто возможно ранее искал и не нашел ничего подобного .
    Версия желательно 1.10-1.11.2
     
  2. Хостинг MineCraft
    <
  3. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    О какой прокачке идёт речь?
     
  4. Автор темы
    Artur97

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

    Баллы:
    68
    Имя в Minecraft:
    Kachkan
    Обычные уровни , которые можно потратить на зачарование и ремонт в ванильном майнкрафт

    Хотелось бы становить максимальный уровень , после которого експ не ростет
     
  5. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    if(player.getLevel() > 30) {
    e.setCancelled(true);
    }
    Название евента не помню, но точно знаю что там есть Orb/Pickup
     
  6. Автор темы
    Artur97

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

    Баллы:
    68
    Имя в Minecraft:
    Kachkan
    Собственно как это все провернуть ? Я чайник
     
  7. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    IntelliJ IDEA + Java JDK + BukkitAPI
     
  8. Bohdan_Hrytsak

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

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Должно работать.
    Код:
    package ua.haipls.ml;
    
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerExpChangeEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scheduler.BukkitRunnable;
    
    public class MaxLevel extends JavaPlugin implements Listener{
        int maxlevels;  
        public void onEnable(){
            getServer().getPluginManager().registerEvents(this, this);
            saveDefaultConfig();
            maxlevels = getConfig().getInt("maxlevels");
            if(getConfig().getBoolean("command_provsi")){
              new BukkitRunnable() {
                @Override
                public void run() {
                    for(Player p : Bukkit.getOnlinePlayers()){
                        if(p.getLevel() >= maxlevels){
                            p.setLevel(maxlevels);
                        }
                    }
                  
                }
            }
            .runTaskTimer(this, 0, getConfig().getInt("interval"));
        }
        }
        @EventHandler
        public void levels(PlayerExpChangeEvent e){
            if(e.getPlayer().getLevel() >= maxlevels){
            e.setAmount(0);
            e.getPlayer().setLevel(maxlevels);
            }
        }
    
    }
    
    
    https://yadi.sk/d/UTIEPwX83G883f
     
  9. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Зачем шедулер? Тоже самое выполнить можно один раз прии старте и при входе, нах*й так сервер грузить?
     
  10. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    Можно в 3 командых блока это сделать.
     
  11. Bohdan_Hrytsak

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

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Евент проверяет уровень игрока при получения опыта.А шедулер нужен если уровень выдан был комадной,шедулер возможно отключить в конфиге,и там же настроить интервал.

    PS: Шедулер запускаетса один раз при старте сервера.
     
    Последнее редактирование: 19 мар 2017
  12. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    PlayerExpChangeEvent выполняется и при его модификации командой, насколько я знаю
     
  13. Bohdan_Hrytsak

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

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Ну проверь у меня не выполнялса.После достижения 30 лвл я прописал команду /xp 25L Haipls уровень стал 55 и не изменилса,но после получения опыта путем убийства моба, он стал 30 лвл как и должен.
     
  14. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Отслеживать PlayerCommandPreprocessEvent. Уж лучше, чем шедулеры
     
  15. Bohdan_Hrytsak

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

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Не думаю что 1 шедулер что то сделает страшное серверу.Командой возможно выдать лвл другому игроку и как тогда отслеживать?
     
  16. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    1 шедулер в основном потоке + 600 онлайн. Залагает страшно
     
  17. Dymeth

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

    Баллы:
    76
    Вряд ли на сервере, где важна система уровней, кто-то будет командами выдавать опыт.
    Я так понимаю, DonDays предлагает проверять уровень игрока после использования команды /xp (и подобных)
     
  18. Автор темы
    Artur97

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

    Баллы:
    68
    Имя в Minecraft:
    Kachkan
    Всем спасибо , с данным вопросом в корне разобрался .
    Ставил плагин ItemLoreStats , в конфиге настройка есть ,и вообще плагин сам хороший
     
Статус темы:
Закрыта.

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