Skocz do zawartości
  • 0

Is online - jest Inny sposób?


piter909

Pytanie

Witam,

Mam problem:

Chciałbym, aby w komendzie sprawdzało wpisany tekst czy jest "online".

Komenda wygląda tak:

command przydziel <text> <text>:	trigger:		if argument 1 is online:			execute console command "broadcast test %arg 1% %arg 2%"			stop

Wywala mi błąd, że argument 1 nie jest entity type.

Nie chcę dawać player-argument, bo komenda będzie możliwa do wykonania tylko, gdy gracz będzie online.

Ma ktoś jakiś na to sposób?

Jak sprawdzić, czy argument 1 z komendy jest na serwerze?

Przykład wywołania komendy: /przydziel Wojtek VIP

 

Z góry bardzo dziękuję za pomoc :P

Odnośnik do komentarza
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

@HeroesQ Lecz przy dłuższych komendach tracisz niestety argument, lepiej zrobić to tak:

command /przydziel [<text&gt] [<text&gt]:    trigger:	    if arg 1 is set:				    set {_gracz} to arg 1 parsed as player				    if {_gracz} is online:						 if arg 2 is set:		        execute console command "broadcast test %{_gracz}% %arg 2%"		        stop				   else:					   send "Gracz %arg 1% jest poza serwerem"					   stop

Co zyskujesz dzięki temu typowi pisania? Zachowujesz 1 argument, jako tekst, możesz podać błąd przy wiadomości o braku gracza na serwerze.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

command przydziel <text> <text>:    trigger:        if argument 1 parsed as player is online:            execute console command "broadcast test %arg 1% %arg 2%"            stop
Chyba najprościej.

Czemu "parsed as player"?

Przy definiowaniu komendy dałeś argument 1 jako text, więc argument 1 będzie brany jako zwykły tekst.

Więc, aby zrobić operację sprawdzając, czy argument 1 jest graczem (nie definiując tego w komendzie) musimy użyć "parsed as player".

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

@HeroesQ @Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! @Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

Poradziłem sobie w inny sposób z kodem, lecz po problemie pojawił się jego brat - kolejny problem :(. Bardzo dziękuję za pomoc, na pewno wykorzystam nabytą wiedzę, której mi udzieliliście, w przyszłości :)
Oto jak udało mi się zrobić mój skrypt i nie wywołać komplikacji i błędów:
 

command przydziel <text> <text> [<player>]:	trigger:		if sender is not player:			if player-argument is online:				execute console command "pex user %arg 1% group set %arg 2%"				send "&f[&9GC&b2] &aRanga %arg 2% przydzielona. Gracz &b%arg 1%&a jest online, wiec zostala przydzielona od razu." to console				stop			set {przydzial::gracze::%arg 1%::wykonanie} to true			set {przydzial::gracze::%arg 1%::nazwa} to arg 1			set {przydzial::gracze::%arg 1%::ranga} to arg 2			send "&f[&9GC&b2] &aRanga %arg 2% przydzielona. Przy kolejnym zalogowaniu gracza &b%arg 1%&a zostanie przyznana." to console			stop		else if player is op:			if player-argument is online:				execute console command "pex user %arg 1% group set %arg 2%"				send "&f[&9GC&b2] &aRanga %arg 2% przydzielona. Gracz &b%arg 1%&a jest online, wiec zostala przydzielona od razu." to player				stop			set {przydzial::gracze::%arg 1%::wykonanie} to true			set {przydzial::gracze::%arg 1%::nazwa} to arg 1			set {przydzial::gracze::%arg 1%::ranga} to arg 2			send "&f[&9GC&b2] &aRanga %arg 2% przydzielona. Przy kolejnym zalogowaniu gracza &b%arg 1%&a zostanie przyznana." to player			stop		else:			send "&cNie masz uprawnien" to player			stop		set {przydzial::gracze::%arg 1%::wykonanie} to true		set {przydzial::gracze::%arg 1%::nazwa} to arg 1		set {przydzial::gracze::%arg 1%::ranga} to arg 2		execute console command "pex user %arg 1% group set %arg 2%"		execute console command "broadcast &c&lTEST RCON"		stop

Cały ten kod powstał, ponieważ PermissionEX źle przydziela rangi, gdy gracz jest offline w offline modzie.

Ta komenda jest po to, aby wywoływała się "on join" i dawała graczowi rangę, którą powinien dostać za wsparcie, gdy wejdzie na serwer.

 

Mam teraz niestety dużo większy problem, którego nie dam rady już sam rozwiązać.

Zrobiłem tą komendę z myślą, że zostanie poprawnie odpalona przez RCON w sms shopie (połączenie do wysyłania komend - PHP > konsola)

Niestety.. Gdy wpiszę w konsoli "przydziel Wojtek VIP", to komenda się wykonuje, ale, gdy wyślę ją przez RCON, wtedy już niestety nie..

Czy jest jakiś sposób, aby wywołać komendę ze skripta przez RCON? Wszystkie inne, które są wpisane w pluginach, bez problemu się wywołują.. Np. "broadcast TEST", "spawn %gracz%", ale wszystkie ze skripta już niestety nie :(

Prawda jest taka, że skript nie może "wpisać" prawdziwych komend, bo one się statycznie ładują przy starcie serwera..

Jest może jakiś sposób, aby wywołać komendę w konsoli za pomocą np. "console:przydziel test VIP"?

Będę baardzo wdzięczny za pomoc.. Szczerze mówiąc, jestem trochę zdołowany, bo praca poszła na marne. :(

Edytowane przez piter909
Odnośnik do komentarza
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ę...