piter909 4 Opublikowano 12 kwietnia 2015 Udostępnij Opublikowano 12 kwietnia 2015 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%" stopWywala 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 Więcej opcji udostępniania...
0 HeroseQ 33 Opublikowano 12 kwietnia 2015 Udostępnij Opublikowano 12 kwietnia 2015 Kod: command /przydziel <player> <text>: trigger: arg 1 is set: execute console command "broadcast test %arg 1% %arg 2%" stop to automatycznie sprawdza czy gracz jest online. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 DαrϰVεnuς 231 Opublikowano 12 kwietnia 2015 Udostępnij Opublikowano 12 kwietnia 2015 @HeroesQ Lecz przy dłuższych komendach tracisz niestety argument, lepiej zrobić to tak:command /przydziel [<text>] [<text>]: 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" stopCo 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 Więcej opcji udostępniania...
0 Norbi 1337 Opublikowano 12 kwietnia 2015 Udostępnij Opublikowano 12 kwietnia 2015 command przydziel <text> <text>: trigger: if argument 1 parsed as player is online: execute console command "broadcast test %arg 1% %arg 2%" stopChyba 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 Więcej opcji udostępniania...
0 piter909 4 Opublikowano 12 kwietnia 2015 Autor Udostępnij Opublikowano 12 kwietnia 2015 (edytowane) @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" stopCał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 12 kwietnia 2015 przez piter909 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
piter909 4
Witam,
Mam problem:
Chciałbym, aby w komendzie sprawdzało wpisany tekst czy jest "online".
Komenda wygląda tak:
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