Skocz do zawartości
  • 0

Zaokrąglanie liczb


MrWinex66
Przejdź do rozwiązania Rozwiązane przez xAxee,

Pytanie

Witam,

mam skrypt, którego zadanie jest zmienić czas na dzień, jeśli położy się 50% lub więcej graczy serwera. Skrypt jest pisany na serwer, na którym raczej najczęściej liczba graczy nie przekracza 9, i tutaj pojawia się problem, ponieważ przy np. 5 czy 3 graczach online skrypt wariuje. Na chacie pojawiają się komunikaty takie, jak "potrzeba jeszcze 8 graczy (mimo, że na serwerze grają 4 osoby) aby zmienić dzień", albo "potrzeba jeszcze -2 graczy, aby zmienić dzień". Sama zmiana dnia również nie zawsze wydaje się następować "poprawnie". 

Próbowałem użyć kilku funkcji zaokrąglających liczby, ale niestety niezbyt to pomogło.

W jaki sposób to poprawić (a także zapobiec wyświetlaniu się kolejnej wiadomości, gdy wszyscy potrzebni do zmiany dnia gracze się położą - jeśli skrypt działał normalnie, przy ostatniej osobie wyświetla się "potrzeba jeszcze 0 osób..."?

Dziękuję za pomoc :)

 

Edytowane przez MrWinex66
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Rekomendowane odpowiedzi

  • 0

Co jest zastanawiające to to, że gdy gracz nr 1 położył się spać, to było 0 procent. Być może jest wymagany wait 1 tick przed 'loop all players' ? Spróbuj dodać i zobaczymy.

EDIT:

Możesz jeszcze opcjonalnie spróbować z tym:

on bed enter:
	set {_online} to number of all players
	add 1 to {_sleeping}
	loop all players:
		if loop-player is not player:
			if loop-player is sleeping:
				add 1 to {_sleeping}
	set {_proc} to ({_sleeping}/{_online})*100
	send "&7Gracz &6%player% &7polozyl sie spac &8(&6%{_proc}%%%&7/&650%%&8)"
	if {_proc} >= 50:
		set time in world to 06:00

Zobaczymy czy nadal będzie 0 procent.

Edytowane przez Kormic
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
19 godzin temu, Kormic napisał:

Co jest zastanawiające to to, że gdy gracz nr 1 położył się spać, to było 0 procent. Być może jest wymagany wait 1 tick przed 'loop all players' ? Spróbuj dodać i zobaczymy.

EDIT:

Możesz jeszcze opcjonalnie spróbować z tym:

on bed enter:
	set {_online} to number of all players
	add 1 to {_sleeping}
	loop all players:
		if loop-player is not player:
			if loop-player is sleeping:
				add 1 to {_sleeping}
	set {_proc} to ({_sleeping}/{_online})*100
	send "&7Gracz &6%player% &7polozyl sie spac &8(&6%{_proc}%%%&7/&650%%&8)"
	if {_proc} >= 50:
		set time in world to 06:00

Zobaczymy czy nadal będzie 0 procent.

Działa :) Dziękuję bardzo za Waszą pomoc! 

Odnośnik do odpowiedzi
Udostępnij na innych stronach
Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...