Skocz do zawartości
  • 0

Problem ze skryptem


Axiorek

Pytanie

Witam, piszę skrypt na status serwera, ale mogę wykonać w KONSOLI tylko "/on", "/off" tylko jako gracz (jak to naprawić)

FRAGMENT "OFF":

command /off [<text>]:
    trigger:
        if player has permission "server.off":
            if {server.status} is "off":
                send "&cSerwer jest już zamknięty!"
            else:
                if arg 1 is not set:
                    set {server.status} to "off"
                    set {server.powod} to "%arg 1%"
                    loop all players:
                        kick loop-player due to "&c&lSerwer jest zamknięty!"
                else:
                    set {server.status} to "off"
                    set {server.powod} to "%arg 1%"
                    loop all players:
                        kick loop-player due to "&c&lSerwer jest zamknięty!%nl%&c&lPowód: %{server.powod}%"

 

Odnośnik do komentarza
https://skript.pl/temat/41468-problem-ze-skryptem/
Udostępnij na innych stronach

6 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
6 minut temu, Axiorek napisał:

Witam, piszę skrypt na status serwera, ale mogę wykonać w KONSOLI tylko "/on", "/off" tylko jako gracz (jak to naprawić)

FRAGMENT "OFF":


command /off [<text>]:
    trigger:
        if player has permission "server.off":
            if {server.status} is "off":
                send "&cSerwer jest już zamknięty!"
            else:
                if arg 1 is not set:
                    set {server.status} to "off"
                    set {server.powod} to "%arg 1%"
                    loop all players:
                        kick loop-player due to "&c&lSerwer jest zamknięty!"
                else:
                    set {server.status} to "off"
                    set {server.powod} to "%arg 1%"
                    loop all players:
                        kick loop-player due to "&c&lSerwer jest zamknięty!%nl%&c&lPowód: %{server.powod}%"

 

Przy wykonywaniu komendy od razu sprawdzasz permisję gracza (nie sendera), więc z konsolą to nie będzie działało. Poza tym w skrypcie sprawdzasz, czy arg 1 nie jest ustawiony, po czym chwilę później ustawiasz zmienną do arg 1, który nie jest ustawiony, a więc zmienna będzie nullem. Nie wiem na co ci zmienna {server.powod} w pierwszym przypadku jeśli jej nawet nie używasz, zresztą podejrzewam, że nie jest ci globalnie potrzebna, więc lepiej w ogóle jej nie ustawiać i użyć po prostu %arg 1% w powodzie kicków.

Poprawiony skrypt:

command /off [<text>]:
	trigger:
		if sender is not console:
			if player doesn't have permission "server.off":
				stop
		if {server.status} is "off":
			send "&cSerwer jest już zamknięty!" to sender
			stop
		set {server.status} to "off"
		if arg 1 is set:
			loop all players:
				if loop-player is op:
					continue
				kick loop-player due to "&c&lSerwer jest zamknięty!%nl%&c&lPowód: %arg 1%"
			stop
		loop all players:
			if loop-player is op:
				continue
			kick loop-player due to "&c&lSerwer jest zamknięty!"

Jeśli coś nie będzie działało, daj znać.

Odnośnik do komentarza
https://skript.pl/temat/41468-problem-ze-skryptem/#findComment-259530
Udostępnij na innych stronach

  • 0
50 minut temu, Kormic napisał:

Przy wykonywaniu komendy od razu sprawdzasz permisję gracza (nie sendera), więc z konsolą to nie będzie działało. Poza tym w skrypcie sprawdzasz, czy arg 1 nie jest ustawiony, po czym chwilę później ustawiasz zmienną do arg 1, który nie jest ustawiony, a więc zmienna będzie nullem. Nie wiem na co ci zmienna {server.powod} w pierwszym przypadku jeśli jej nawet nie używasz, zresztą podejrzewam, że nie jest ci globalnie potrzebna, więc lepiej w ogóle jej nie ustawiać i użyć po prostu %arg 1% w powodzie kicków.

Poprawiony skrypt:


command /off [<text>]:
	trigger:
		if sender is not console:
			if player doesn't have permission "server.off":
				stop
		if {server.status} is "off":
			send "&cSerwer jest już zamknięty!" to sender
			stop
		set {server.status} to "off"
		if arg 1 is set:
			loop all players:
				if loop-player is op:
					continue
				kick loop-player due to "&c&lSerwer jest zamknięty!%nl%&c&lPowód: %arg 1%"
			stop
		loop all players:
			if loop-player is op:
				continue
			kick loop-player due to "&c&lSerwer jest zamknięty!"

Jeśli coś nie będzie działało, daj znać.

Raczej nie będzie działało.

Godzinę temu, Axiorek napisał:

Witam, piszę skrypt na status serwera, ale mogę wykonać w KONSOLI tylko "/on", "/off" tylko jako gracz (jak to naprawić)

FRAGMENT "OFF":


command /off [<text>]:
    trigger:
        if player has permission "server.off":
            if {server.status} is "off":
                send "&cSerwer jest już zamknięty!"
            else:
                if arg 1 is not set:
                    set {server.status} to "off"
                    set {server.powod} to "%arg 1%"
                    loop all players:
                        kick loop-player due to "&c&lSerwer jest zamknięty!"
                else:
                    set {server.status} to "off"
                    set {server.powod} to "%arg 1%"
                    loop all players:
                        kick loop-player due to "&c&lSerwer jest zamknięty!%nl%&c&lPowód: %{server.powod}%"

 

Zmień "player" na "sender"

działanie gwarantowane w 99%

Odnośnik do komentarza
https://skript.pl/temat/41468-problem-ze-skryptem/#findComment-259532
Udostępnij na innych stronach

  • 0

Powód:

Sender - Gracz/konsola wysyłający komendę, może zwrócić "COSOLE" lub nazwę gracza, można pobrać permisje.
Player - Gracz wysyłający komendę, może zwrócić nazwę gracza, oraz pobrać jego permisje

Te 2 opcje różnią się, i są bardziej wydajne niż inne kombinacje ;) 

Odnośnik do komentarza
https://skript.pl/temat/41468-problem-ze-skryptem/#findComment-259534
Udostępnij na innych stronach

  • 0
Teraz, maxcom1 napisał:

Powód:

Sender - Gracz/konsola wysyłający komendę, może zwrócić "COSOLE" lub nazwę gracza, można pobrać permisje.
Player - Gracz wysyłający komendę, może zwrócić nazwę gracza, oraz pobrać jego permisje

Te 2 opcje różnią się, i są bardziej wydajne niż inne kombinacje ;) 

Nie pytałem cię o definicje playera i sendera, spytałem dlaczego ten skrypt ma nie działać. Wskaż mi konkretny fragment kodu i zobaczę czy jest coś do poprawy.

Odnośnik do komentarza
https://skript.pl/temat/41468-problem-ze-skryptem/#findComment-259535
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...