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

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

Discussion in 'Запросы на разработку плагинов' started by Artur97, Mar 17, 2017.

Thread Status:
Not open for further replies.
  1. Автор темы
    Artur97

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    96
    Имя в Minecraft:
    DonDays
    IntelliJ IDEA + Java JDK + BukkitAPI
     
  8. Bohdan_Hrytsak

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

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

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

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

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

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

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

    PS: Шедулер запускаетса один раз при старте сервера.
     
    Last edited: Mar 19, 2017
  12. DonDays

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    68
    Имя в Minecraft:
    Kachkan
    Всем спасибо , с данным вопросом в корне разобрался .
    Ставил плагин ItemLoreStats , в конфиге настройка есть ,и вообще плагин сам хороший
     
Thread Status:
Not open for further replies.

Share This Page