Skocz do zawartości

Skrypt na /helpop


Rekomendowane odpowiedzi

SKRYPT NA /HELPOP

CO OFERUJE SKRYPT?

Szybkie zgłoszenia – Możliwość wysyłania wiadomości o pomoc za pomocą komendy /helpop.

System powiadomień – Gracze otrzymują potwierdzenie wysłania zgłoszenia.

Uprawnienia – Zgłoszenia mogą być widoczne tylko dla uprawnionych administratorów.

Czas oczekiwania – System, który uniemożliwia wysyłanie kolejnych zgłoszeń w krótkim czasie.

UŻYCIE SKRYPTU:

/helpop <treść wiadomości> – Wysyła zgłoszenie do wszystkich dostępnych administratorów

LISTA PERMISJI:

serwer.helpop – Możliwość korzystania z /helpop

widzenie.helpop – Możliwość widzenia zgłoszeń od graczy.

 

 

Edytowane przez devure
Odnośnik do komentarza
https://skript.pl/temat/58226-skrypt-na-helpop/
Udostępnij na innych stronach

@devure

Skrypt całkiem dobrze wygląda, ale mam kilka uwag.

  1. Nie widzę części, która odpowiadałaby za wysyłanie wiadomości z prośbą o pomoc do wszystkich osób z uprawnieniem na serwerze. Nadmienię, że można to bardzo łatwo osiągnąć, co pokażę w przykładzie poniżej.
    # Wysyłanie wiadomości do wszystkich graczy z uprawnieniem, potencjalnie do gracza wysyłającego wiadomość również (może posiadać te uprawnienie):
    send "Wiadomość" to all players where [input has permission "helpop.uprawnienie"]

    Jeżeli chcemy wykluczyć gracza wysyłającego tę wiadomość, korzystanie z dwóch filtrów byłoby niewygodne, więc najlepiej będzie się posłużyć albo dwoma warunkami w pętli działającej na wszystkich graczach, albo wielowarunkową sekcją 'if [all]'.

    # Dwa warunki w pętli (mogą być "domniemane" (ang. implicit), czyli bez wcięć i dwukropków)
    loop all players:
    	loop-player is not event-player
    	loop-player has permission "helpop.uprawnienie"
    	send "Wiadomość" to loop-player
    	
    # Wielowarunkowa sekcja 'if'
    loop all players:
    	if:
    		loop-player is not event-player
    		loop-player has permission "helpop.uprawnienie"
    	then:
    		send "Wiadomość" to loop-player

    Rzecz jasna, przedrostek (prefix) 'event-' przed graczem wykonującym komendę jest opcjonalny, ale zwiększa on czytelność kodu i łatwiej pokazuje, że mamy na myśli porównanie konkretnego gracza, a nie sprawdzenie czy zapętlany gracz jest ogólnie graczem (co swoją drogą nie ma sensu, bo to jest zawsze prawdą - tautologia).

  2. W mojej ocenie jedyna konfigurowalną rzeczą z użyciem sekcji 'options' powinien być prefix wiadomości. Wiadomości pojawiające się w przypadku braku posiadania permisji i próby użycia komendy gdy cooldown jest aktywny nie muszą się znajdować w sekcji konfiguracyjnej, bo są łatwo dostępne na samej górze komendy i pojawiają się w niej tylko raz. Sekcja 'options' jest ewentualnie wykorzystywana do konfigurowania wartości, które znajdują się gdzieś w długim kodzie.
  3. Warto wykorzystać sekcję 'else', ponieważ nie ma potrzeby sprawdzania warunku 'if arg 1 is set' gdy pierwszy warunek jest spełniony. Dodam tu też, że najlepszym rozwiązaniem będzie dodanie w kodzie podporządkowanym pierwszemu warunkowi na samym końcu instrukcji 'stop' i usunięcie drugiego warunku. Przykład poniżej.
    if arg is not set:
    	send "{@prefix} &cWpisz treść wiadomości!" to player
    	stop
    send "{@prefix} Pomyślnie wysłano zgłoszenie o treści &e(%arg%)" to player
    # [...]

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/58226-skrypt-na-helpop/#findComment-345322
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
Dodaj odpowiedź do tematu...

×   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ę...