Skocz do zawartości
jahumen

chat CenzorPlus - skrypt na cenzurę czatu

Rekomendowane odpowiedzi

Zasłużony

Witam, chciałbym zaprezentować Wam, mój pierwszy udostępniony publicznie skrypt (proszę nie bić :P).

 

Zaawansowana AntyReklama

Gdy skrypt wykryje fraze na blackliscie, wiadomość zostanie zablokowana, gracz zostanie np. Automatycznie zmutowany (można łatwo zmienić), administracja pozna treść wiadomości, a także wyświetli się duży, banujący przycisk (treść bana można zmienić) z wykorzystaniem json, co pozwoli szybko zbanować reklamującego gracza ;)

Oprócz blacklisty, dostępna jest także whitelista. Gdy dodamy do niej fraze, wiadomość zawierająca tą fraze nie zostanie potraktowana jak reklama.

Na co skrypt zwraca uwagę?

- Kontrola nazw wyrzucanych przedmiotów (w przypadku reklamy AUTOMATYCZNA zmiana nazwy przedmiotu na "reklama")

- Kontrola wiadomości na chacie

- Kontrola treści tworzonych tabliczek (w przypadku reklamy AUTOMATYCZNE usunięcie tabliczki, oraz jej drop)

- Kontrola komand typu /msg, /r, /mail itp.

Wszystkie wymienione powyżej funkcje, działają natychmiastowo, przy testach wraz z ekipą, zareklamowanie innych serwerów było praktycznie nie możliwe.

Dodatkowo, wszystko można BARDZO ŁATWO skonfigurować w pliku config.yml,  który utworzy się w folderze scripts>CenzorPlus. Całość opisana jest w języku polskim. Skrypt od razu jest skonfigurowany.

Plik tworzy się w momencie pierwszego reloadowania skryptu.

Dodatkowo, wszystko w przejrzystej formie, jest zapisywane do pliku logs>cenzorplus

Skuteczna cenzura chatu

Wszystkie frazy na chacie, dodane w odpowiednim miejscu w pliku config.yml, zostaną zamienione na inną podaną fraze (także do ustawienia).

 

Dlaczego udostępniłem publicznie ten skrypt?

Serwery, które reklamują się, doprowadzają mnie do szału. Chciałbym przynajmniej w części przyczynić się do wyeliminowania takich ludzi - stąd też skrypt.

 

Bugi?

Jako tako ich nie ma, jednak sam zauważyłem jeden, nie mam pomysłu jak go usunąć: 

 

Jeśli dodamy do whitelisty wyraz np. "enchant", po napisaniu np. "Wbijaj na easy.skyup.pl!!! _____________ enchant", wiadomość zostanie przepuszczona.

No ale myślę, że to lepsze niż nic.

 

Uprawnienia

cenzor.reklamuj - pozwala reklamować

cenzor.cenzura - pozwala przeklinać

cenzor.mod - widzenie reklam, możliwość ich zbanowania (komenda banująca będzie wykonywana przez konsole, stąd też np. Helper nie musi posiadać takich uprawnień.

 

Uwagi

Nazwij skrypt cenzorplus, w przeciwnym razie komenda /cenzor reload, nie będzie działać (chociaż aż tak istotna nie jest - jest to poprostu alias /sk reload cenzorplus)

 

Noi wreszcie się doczekaliście - Pobieranie

Wgraj pluginy: Skript, SkQuery oraz WildSkript (w sumie to nie wiem czy są na pewno potrzebne, ale ja zawsze z nich korzystam i działa :P)

Skrypt jest udostępniony na stronie code.skript.pl, skopiuj cały kod, utwórz nowy plik nazwany cenzorplus.sk w folderze plugins/Skript/scripts i tam wklej kod. Folder z configiem utworzy się automatycznie po wpisaniu /sk reload cenzorplus, lub reloadzie serwera.

Wersja 1.1 (już po optymalizacji!): Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

Do zrobienia:

Naprawienie bugu, o którym wspomniałem.

Dodanie sprawdzania książek, a także innego sposobu dostarczania nazwanych przedmiotów, niż tylko wyrzucenie z ekwipunku.

 

Noi myślę, że to na tyle, liczę na pozytywne głosy :P

 

Aktualizacja!

Wersja 1.1 (dostępna w pobieraniu): Dość duża optymalizacja, dodałem sprawdzenie ile razy ma wykonać się każda pętla - przy starcie. Dzięki temu pętle mają mniej treści, oraz będą wykonywać się szybciej. Zaobserwowałem ogromną poprawę TPS :) (było 18, jest 19.99 :P).

 

Dodam, że jest mi bardzo smutno - Myszak zamienił mi linki do pastebina na jakieś code.skript.pl, które się buguje. Jakby co możecie znaleźć dobry link pod pastebin.com/u/jahumen.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik

niestety ale bugi :) , bugi są takie że gracz wyrurzuca item to spami mi ten censor plus że gracz próbował reklamować wyrzucając przedmiot <none>

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Zasłużony

Wina błędnego configu, a dokładniej mówiąc, przypuszczam, że napisałeś coś w stylu:

  39: ''

Ja, z domyślnym configiem, gdy gracz wyrzuca zwykły przedmiot (lub też nazwany, ale nie na blackliscie) nie widzę nic. Co innego w przypadku gdy koliduje :x

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Zasłużony

@RoRap

Już wiem co jest problemem. Zmienna {reklama.%player%} jest ustawiana na false, dopiero, gdy gracz wejdzie na serwer. Natomiast reklama jest nie łapana, gdy to jest na false (tak działa skript). Dopisz sobie taką linijke:

command /cenzordebug:
	trigger:
		if player has permission "*":
			loop all players:
				set {reklama.%loop-player%} to false
			

I będzie git.

Możesz także wyrzucić wszystkich z serwera ;)

//Zaraz zaktualizuje skript, tak - aby zawierał taką komendę.

//Dodano /cenzor debug w wersji 1.1

Edytowane przez jahumen

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Zasłużony

Skript automatycznie wyswietla reklame jesli reklama.player nie jest false. Poniewaz gdy gracz jest na serwerze w momencie wgrania skriptu i nie robi reloga, to reklama.tengracz jest ustawione na <none> stad tez co by nie zrobil przy kazdej akcji wyswietli sie reklama. Korzystajac z tej komendy ustawisz wszystkim na serwerze reklama.ciludzie na false i dzieki temu nie bedzie lapalo reklam, a reklama bedzie lapana tylko przy reklamie. Mam juz zrobione jeszcze kilka funkcji, do tego dodam automatyczny debug i wrzuce 1.2, ale to jak bede przy komputerze :P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Zasłużony

@RoRap

Ale ja dałem kod :/ 

Usun tamten skript i wgraj jeszcze raz z neta wersje 1.1 (edytowalem ja), a potem wpisz /cenzor debug (tak, ze spacja) i bedzie git ;) 

A jesli nie chce Ci sie kombinowac to wpisz /kickall i jak wejda, to juz bd w porzadku :P 

//jak zadziala to poprosze lapke w gore :x

Edytowane przez jahumen

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik

ty chcesz zeby moj server przepuchliny dostal ? xD 

  1.         loop 10000 times:
  2.             set {_wl.%loop-number%} to yaml value "whitelista.%loop-number%" from "CenzorPlus/config.yml"
  3.             if {_wl.%loop-number%} is not set:
  4.                 set {wc.wl} to loop-number
  5.                 exit loop

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Zasłużony

Z moim sie nic nie dzieje. To wydarzenie dzieje sie tylko raz, oraz jesli nastepny punkt w configu nie jest ustalony automatycznie sie wylacza.

Zazwyczaj ta petla sie wykonuje MAX 40 RAZY.

@xSttReSSx

Edytowane przez jahumen

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik

Nie wiem czy to błąd ale jak gracz napisz np. kurw to nie wczytuje tego koloru
&8[&cNazwa&8] &c

@jahumen

@edit już wiem czemu... masz w config takie coś i ustawisz tam prefix cenzury i on nie przyjmuje & tylko § ( w moim przypadku ) 

 

 

Edytowane przez AlfonsikPL

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Zasłużony

Opisz dokładniej

@AlfonsikPL

Teraz pracuje nad znacznie większym projektem (bany, banyip, warny, kicki, wszystko na yml), w sumie to mam prawie gotowe, jak ogłoszą konkurs na skript miesiąca to wrzucę.

Co do tego skriptu, jak skończe bany, wydam wersję 1.2, w której będą poprawione cenzury, możliwość ustalenia jakie komendy mają być sprawdzane w configu, a także wykrywanie ip numerycznych. ;)

Noi zostanie dodana automatyczna aktualizacja (na komende) więc nie będzie tu trzeba co chwile zaglądać :D

Edytowane przez jahumen

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się


  • Przeglądający   0 użytkowników

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

×