You are not logged in.

  • Login

[Bukkit-Plugin] Main Scoreboard?

Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

mReTurkey

User / Kunde

  • "mReTurkey" started this thread

Posts: 88

  • Send private message

1

Sunday, June 1st 2014, 7:02pm

Main Scoreboard?

Guten Tag,

gibt es ein Scoreboard das man nicht mit Player.setScroeboard(scoreboard); Setzen muss?
Womit jeder Spieler diesen Scoreboard sieht!
Im Internet wurde ich nicht fündig...

Mit freundlichen Grüßen,
mReTurkey

NixdaHD

User / Kunde

  • "NixdaHD" is male

Posts: 122

  • Send private message

2

Sunday, June 1st 2014, 7:36pm

for (Player all : Bukkit.getOnlinePlayers()){
all.setScoreboard(scoreboard)
}

Mit Handy geschrieben,deswegen sorry für die schlechte Formatierung.

MFG

mReTurkey

User / Kunde

  • "mReTurkey" started this thread

Posts: 88

  • Send private message

3

Sunday, June 1st 2014, 7:43pm

Danke für die schnelle Antwort aber ich möchte noch was fragen momentan hab ich das so das ich ein onJoinEVENT erstellt habe mit p.setScoreboard(scoreboard).
Mein Scoreboard soll ein Countdown sein, deshalb hab ich so etwas gemacht(kommt jetzt)
Mein Probelm ist das die Zahl des Timer's sich verdoppelt wenn ein zweiter Spieler joint:

Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
public static void setScoreboardTimer(Player p, final tjoin plugin) {
		
		final Scoreboard timerboard = Bukkit.getScoreboardManager().getNewScoreboard();
		final Objective obj = timerboard.registerNewObjective("two", "dummy");
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);
		obj.setDisplayName("MZ Jump'N Race");
		final Score s2 = obj.getScore(ChatColor.ITALIC + "Time left:");
		
		//Timer
		
		final int schedTimer[] = new int[1];
		schedTimer[0] = Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
			public void run() {
				if(timer == 0) { //WENN jmd nachjoint kommt das ^^
					tjoin.setIt();
					timer = 0;
					s2.setScore(0);
					Bukkit.getServer().getScheduler().cancelTask(schedTimer[0]);
				} else {
				timer--;
				s2.setScore(timer);
					
					}
					if(timer == 120) {
						Bukkit.broadcastMessage("Noch 2 Minuten bis zum Start!");
					}
					if(timer == 60) {
						Bukkit.broadcastMessage("Noch 1 Minute bis zum Start!");
					}
					if(timer == 30) {
						Bukkit.broadcastMessage("Noch 30 Sekunden bis zum Start!");
					}
					if(timer == 20) {
						Bukkit.broadcastMessage("Noch 20 Sekunden bis zum Start!");
					}
					if(timer == 10) {
						Bukkit.broadcastMessage("Noch 10 Sekunden bis zum Start!");
					}
					if(timer == 9) {
						Bukkit.broadcastMessage("Noch 9 Sekunden bis zum Start!");
					}
					if(timer == 8) {
						Bukkit.broadcastMessage("Noch 8 Sekunden bis zum Start!");
					}
					if(timer == 7) {
						Bukkit.broadcastMessage("Noch 7 Sekunden bis zum Start!");
					}
					if(timer == 6) {
						Bukkit.broadcastMessage("Noch 6 Sekunden bis zum Start!");
					}
					if(timer == 5) {
						Bukkit.broadcastMessage("Noch 5 Sekunden bis zum Start!");
					}
					if(timer == 4) {
						Bukkit.broadcastMessage("Noch 4 Sekunden bis zum Start!");
					}
					if(timer == 3) {
						Bukkit.broadcastMessage("Noch 3 Sekunden bis zum Start!");
					}
					if(timer == 2) {
						Bukkit.broadcastMessage("Noch 2 Sekunden bis zum Start!");
					}
					if(timer == 1) {
						Bukkit.broadcastMessage("Noch 1 Sekunde bis zum Start!");
					}
				}
		}, 0L, 20L);
		
		p.setScoreboard(timerboard);
	}


Bitte hilf mir! :D

NixdaHD

User / Kunde

  • "NixdaHD" is male

Posts: 122

  • Send private message

4

Sunday, June 1st 2014, 7:47pm

Also du möchtest,dass jeder Spieler einen eigenen Countdown hat,wenn er joint ?

mReTurkey

User / Kunde

  • "mReTurkey" started this thread

Posts: 88

  • Send private message

5

Sunday, June 1st 2014, 7:59pm

Nein jeder den selben

NixdaHD

User / Kunde

  • "NixdaHD" is male

Posts: 122

  • Send private message

6

Sunday, June 1st 2014, 8:15pm

Poste mal bitte das PlayerJoinEvent

EDIT:

Quoted

tjoin.setIt();

Was wird dort ausgeführt ? Setzt du dort den timer ?

mReTurkey

User / Kunde

  • "mReTurkey" started this thread

Posts: 88

  • Send private message

7

Sunday, June 1st 2014, 8:22pm

Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
for(int c = 1; c<=8; c++){
				
				try{
					Player tpPlayer = playerList.get(c);
					String playerName = tpPlayer.getName();
					ConsoleCommandSender console = Bukkit.getConsoleSender();
					Bukkit.getServer().dispatchCommand(console, "join " + playerName);
				} catch(NullPointerException e) {
					e.printStackTrace();
					ConsoleCommandSender console = Bukkit.getConsoleSender();
					console.sendMessage(ChatColor.DARK_GREEN + "[tJoin] " + ChatColor.DARK_RED + "Nicht jeder ist Online");
				}
			}


playerList ist eine HashMap
Das soll einfach mein Command das ich im Main stehen habe ausführen also "join".
Das ist ein Plugin für ein Rennen mit 8 Bahnen...
Alles funkts. nur halt je mehr Leute joinen wird der Scoreboard Timer schneller

NixdaHD

User / Kunde

  • "NixdaHD" is male

Posts: 122

  • Send private message

8

Sunday, June 1st 2014, 8:28pm

Achsoooo ,jetzt hab ich deine Frage verstanden :) Ich dachte du meinst wenn der Spieler joint wird aus 60s 120s.

Zu deiner Frage:
Das liegt daran,dass dein Sheduler mehrfach ausgeführt wird. Für jeden Spieler der joint wird der Sheduler ein mal mehr ausgeführt. Spontan würde mir einfallen einfach ein Boolean(false) erstellen und sobald der 1. Spierer joint diesen Boolean auf true setzen. Den Sheduler nur ausführen,wenn der Boolean auf false steht, sprich nur wenn der erste Spieler joint.

MFG

mReTurkey

User / Kunde

  • "mReTurkey" started this thread

Posts: 88

  • Send private message

9

Sunday, June 1st 2014, 8:57pm

und wie sehen die anderen Leute das?
:D

NixdaHD

User / Kunde

  • "NixdaHD" is male

Posts: 122

  • Send private message

10

Sunday, June 1st 2014, 9:05pm

Indem du das Scoreboard so setzt wie ich vorhin gesagt habe:

for(Player All : Bukkit.getOnlinePlayers()){
all.setScoreboaed(scoreboard)
}

mReTurkey

User / Kunde

  • "mReTurkey" started this thread

Posts: 88

  • Send private message

11

Monday, June 2nd 2014, 4:30pm

Wo soll ich das am Besten hin schreiben?
for(Player All : Bukkit.getOnlinePlayers()){
all.setScoreboaed(scoreboard)
}
onEnable oder wo ? :D

mcf_

User / Kunde

Posts: 1,363

Thanks: 22

  • Send private message

12

Monday, June 2nd 2014, 4:43pm

In deinen Scheduler mit dem Countdown?



mReTurkey

User / Kunde

  • "mReTurkey" started this thread

Posts: 88

  • Send private message

13

Monday, June 2nd 2014, 6:14pm

Leider ist das so, dass das der Timer (im Scoreboard drinnen) aufhört zu sich anzuzeigen nach dem mehr als 1 Spieler da ist.
SOwas wie "Noch 1 Minute bis zum Start!" wird aber noch angezeigt als BroadCast

mReTurkey

User / Kunde

  • "mReTurkey" started this thread

Posts: 88

  • Send private message

14

Tuesday, June 3rd 2014, 7:38pm

Heißt: Der Scheduler zählt aber (s2.setScore(score)) wird nicht gemacht :/
Irgendwelche Vorschläge ?

mReTurkey

User / Kunde

  • "mReTurkey" started this thread

Posts: 88

  • Send private message

15

Friday, June 6th 2014, 11:34pm

Leute könnt Ihr mir bitte noch helfen...?

Mfg
mReTurkey

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net