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

Помогите Тонкости работы Scoreboard

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

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

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    Пытаюсь сделать бегущую строку в заглавии scoreboard, есть такой код:
    Код:
        protected void updateScoreboard() {
            for(Player p:Bukkit.getOnlinePlayers()){
                Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
                p.setScoreboard(board);
                Objective o = board.registerNewObjective("def", "dummy");
                o.setDisplayName(displayname);
                o.setDisplaySlot(DisplaySlot.SIDEBAR);
                Score s10 = o.getScore("§7");
                s10.setScore(10);
    /*тут еще несколько строк с различным содержимым*/
    }
    
    Если его вызвать раз в тик ( такая скорость нужна для бегущей строки), для игроков вся таблица выглядит мигающей. Суть вопроса такова: возможно ли обновлять раз в тик только заголовок борда, оставляя неизменным тело таблицы?
     
  2. Хостинг MineCraft
    <
  3. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ты создаёшь заново каждый раз. Получай уже существующую методом Player.getScoreboard() и обновляй заголовок.
     
  4. Автор темы
    Studenikin

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    Спасибо, то есть делать так:
    Код:
    for(Player p:Bukkit.getOnlinePlayers()){
                Scoreboard board = p.getScoreboard();
                Objective o = board.getObjective(DisplaySlot.SIDEBAR);
                o.setDisplayName(displayname);
            }
    ?
     
  5. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Да, не забыв единоразово поставить игроку "свою" доску.
     
  6. Автор темы
    Studenikin

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    спасибо, все получилось
     
Статус темы:
Закрыта.

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