[Tutorial/LIB] Создаем Scoreboard'ы

Bukkit.getOfflinePlayer(ChatColor.BLUE+ "blabla")
Игрок с голубым ником? :eek:
Не игрок. Это для строк со своим названием используется на скорбоардах. Типо "Время:" или еще чего.

если на сервере 2 человека отнимает по 2 если 1 то по 1 очку
вопрос почему и как это лечить
Что ты этим хотел сделать?
 
если на сервере 2 человека отнимает по 2 если 1 то по 1 очку
вопрос почему и как это лечить
3550144.jpg
 
эм после выполнения того кода что я написал из скорборда отнимается по 2 очка если на сервере 2 человека
В каком классе находится этот код? Для чего ты его используешь?
 
эм после выполнения того кода что я написал из скорборда отнимается по 2 очка если на сервере 2 человека
Все забыли про запятые что-ли? Пишите понятнее, да и чего там сложного. Я как понимаю, ты хочешь отнимать по 2 очка, если на сервере 2 человека в онлайне?

1) Создаем переменную: int players = Bukkit.getOnlinePlayers().lenght (или как-то так)
2) А строку: sapi.setScore(Bukkit.getOfflinePlayer(ChatColor.BLUE+ "blabla"), sc - 1), замени на это: sapi.setScore(Bukkit.getOfflinePlayer(ChatColor.BLUE+ "blabla"), sc - players);

И тогда у тебя будет снимать по стольку баллов, сколько игроков на сервере.
 
del
 
Последнее редактирование:
Хелпми, как вывести онлайн фракции в которой состоит игрок.
Код:
  public void onJoin(PlayerJoinEvent e)
  {
    Player p = e.getPlayer();
    Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard();
    this.sb.add(sb);
    Team jedi = sb.registerNewTeam("Jedi");
    jedi.setPrefix(ChatColor.DARK_AQUA + " ");
    Team sith = sb.registerNewTeam("Sith");
    sith.setPrefix(ChatColor.DARK_RED + " ");
    p.setScoreboard(sb);
    for (Scoreboard board : this.sb) {
      if (Levels.getFaction(p).equalsIgnoreCase("Jedi")) { // Проверка из какой фракции игрок
        board.getTeam("Jedi").addPlayer(p);
      } else if (Levels.getFaction(p).equalsIgnoreCase("Sith")) { // Проверка из какой фракции игрок
        board.getTeam("Sith").addPlayer(p);
      }
    }
    updateScoreboard(p);
  }
  @SuppressWarnings("deprecation")
public static void updateScoreboard(Player p)
  {
    p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
    Scoreboard playerBoard = p.getScoreboard();
    for (Objective obj : playerBoard.getObjectives()) {
      obj.unregister();
    }
    Objective stats = playerBoard.registerNewObjective("Stats", "dummy");
    stats.setDisplaySlot(DisplaySlot.SIDEBAR);
    stats.setDisplayName(ChatColor.DARK_GREEN + "§a§UniWars");
    stats.getScore(ChatColor.GOLD + "Сторона").setScore(17);
      if (!Levels.faction.containsKey(p.getName())) {
         stats.getScore(ChatColor.GRAY +"-").setScore(16);
      } else if (((String)Levels.faction.get(p.getName())).equalsIgnoreCase("Jedi")) {
        stats.getScore(ChatColor.DARK_AQUA + "Светлая").setScore(16);
      } else if (((String)Levels.faction.get(p.getName())).equalsIgnoreCase("Sith")) {
        stats.getScore(ChatColor.DARK_RED + "Темная").setScore(16);
        }
    stats.getScore(ChatColor.DARK_GRAY +"  ").setScore(15);
    stats.getScore(ChatColor.GOLD + "Баланс").setScore(9);
    stats.getScore(Main.econ.getBalance(p.getName()) + " ").setScore(8);
    stats.getScore("").setScore(7);
    stats.getScore(ChatColor.GOLD + "Убийств").setScore(6);
    stats.getScore(Levels.kills.get(p.getName()) + "").setScore(5);
    stats.getScore("   ").setScore(4);
    stats.getScore(ChatColor.GOLD + "Смерти").setScore(3);
    stats.getScore(Levels.deaths.get(p.getName()) + " ").setScore(2);
    for (Player player : Bukkit.getOnlinePlayers()) {
        if (Levels.getFaction(player).equalsIgnoreCase("Jedi")) {
          ((Team) jedi).addPlayer(player);
        } else if (Levels.getFaction(player).equalsIgnoreCase("Sith")) {
          ((Team) sith).addPlayer(player);
        }
      }
   if (Levels.getFaction(p).equalsIgnoreCase("Jedi")) { // Проверка из какой фракции игрок
      stats.getScore(jedi.toArray(null) + " ").setScore(1); // Поле вывода онлайна фракции.
       p.setPlayerListName(jedi + p.getName());
   }
   if (Levels.getFaction(p).equalsIgnoreCase("Sith")) { // Проверка из какой фракции игрок
       stats.getScore(sith.toArray(null) + " ").setScore(1);
       p.setPlayerListName((Team)sith + p.getName());
    }
  }
}
за тобой выехали
 
Ммм, предупреждение дадут? Я лишь вопрос задал...
 
Блеф скорее всего с вашей стороны, вы тоже работали с этим плагином.
И все таки как мне достать команду (Team) с события PlayerJoinEvent, и вывести ее в scorebord в виде количества числа(онлайн).
 
Кажись я понял свою ошибку, автор должен был закрыть тему. Во избежании флуда, и может быть моего бана, прошу больше не оставлять здесь посты. Пойду новою тему делать, надеюсь на меня никто в не обиде, и с моей стороны будет вежливо извиниться. Извините что поднял тему которой уже и так 3 года.
 
Привет все,
а как можно получить сумму очков всех игроков в scoreboard.
Хотел создать ивент типо игроки набирают 1000 очков - выполняется ивент,
а как объединить все очки ума не приложу.
PS: да, настало время обновить тему спустя 4 года тишины
 
Привет все,
а как можно получить сумму очков всех игроков в scoreboard.
Хотел создать ивент типо игроки набирают 1000 очков - выполняется ивент,
а как объединить все очки ума не приложу.
PS: да, настало время обновить тему спустя 4 года тишины
Получить все записи борда и суммировать в одну переменную значения очков всех этих записей
 
Получить все записи борда и суммировать в одну переменную значения очков всех этих записей
Спасибо конечно, но я не знаю как это сделать.
Вас не затруднит кодик написать? :oops:
 
Назад
Верх