Skocz do zawartości
  • Czyszczenie czatu, czyli skrypty amatorów

       (1 opinia)

    TechnicalPlay

    Pewnego razu wszedłem na konsolę serwera, aby sprawdzić jedną rzecz. Patrzę, patrzę; nagle ktoś zaczyna reklamować inny serwer.

    Nie byłoby w tym nic złego, gdyby złapała ich antyreklama, a że ich nie złapała to trzeba wyczyścić czat. Moderator jest AFK (ang. away from keyboard), a w konsoli nie można wyczyścić czatu.
    Dlaczego? Bo jakiś „geniusz” napisał coś takiego:
     

    player has permission "beznadziejnyskrypt.czyszczeniechatu":
    	loop 100 times:
    		broadcast ""
    	send "Chat wyczyszczony zostal przez %player%"

    Nie można wyczyścić czatu z konsoli (świadczy o tym pierwsza linia), co może niektórych trochę wkurzyć. Jest pewien sposób jednak nie zawsze on działa (komenda /sudo z Essentials). Wady tego sposobu są takie, że osoba posiadająca uprawnienia do tego musi być online, a poza tym - trzeba posiadać odpowiedni plugin.

    Kolejną zaś rzeczą jest efekt broadcast. Może on narobić zbędnego spamu w konsoli i logach.

    A taki skrypt na czyszczenie czatu to jeszcze nic. Spotkałem się z innym!

    variables:
    	{_wiadomosc.czysczenieczatu} = Czat wyczyszczony
    	{_wiadomosc.wylaczenieczatu} = Czat wylaczony
    	{_wiadomosc.wlaczenieczatu} = Czat wlaczony
    #I cała reszta kodu...

    No tak... Zmienna tymczasowa, która właściwie nic nie daje. Ktoś w ogóle sprawdzał, czy te skrypty działają?

    Inny ciekawy przykład....

    „Polecam karzdemó!”

    on chat:
    	if %uuid of player% is set:
    		send "Ponirzsza wiadomosić zostaua zweryfikowana przez wysyuajoncego."
    

    Błędy ortograficzne, skrypt nie działa, a poza tym nie ma najmniejszego sensu.

    Co myślę o skryptach i osobach, które takie piszą?

    Skrypty takie są bezużyteczne. Ich autorzy to zazwyczaj „początkujący”, a 99% osób, które z takich korzystają, tłumaczy się „trzeba im dać szansę”. Tak, powinniśmy im dać szansę, ale w inny sposób! Powiedzieć im, co jest nie tak i co nam nie pasuje. Taka osoba może dzięki naszym radom stać się jeszcze lepsza w pisaniu skryptów, więc zwiększa się prawdopodobieństwo, że będzie kiedyś pisać porządne skrypty.

    Skript jest bardzo prostym, językiem, jednak osób które się na nim znają w naszym kraju jest niewiele, o czym świadczą podane wyżej przykłady. Poza tym, wszyscy powinni zastanowić się, czy skrypt ma sens lub czy działa poprawnie przed jego udostępnieniem.

    Spoiler

    Ten wpis został napisany na podstawie prawdziwych skryptów.
    Tym co takie tworzyli, tworzą lub nie są czegoś pewni
    polecam prosić o pomoc na forum lub
    skorzystać z tej strony. Warto się uczyć.

    Aktualizacja
    Na prośbę kilku osób dodaję prawidłowe wersje skryptów.
     

    Spoiler

    Czyszczenie czatu:

    
    sender has permission "beznadziejnyskrypt.czyszczeniechatu":
    	loop 100 times:
    		send "" to all players
    	broadcast "Chat wyczyszczony zostal przez %sender%"

    Drugi skrypt na czyszczenie czatu:

    
    variables:
    	{wiadomosc.czysczenieczatu} = Czat wyczyszczony
    	{wiadomosc.wylaczenieczatu} = Czat wylaczony
    	{wiadomosc.wlaczenieczatu} = Czat wlaczony
    #I cała reszta kodu...

    Trzeci przykład nie posiada poprawnej wersji ponieważ skrypt nie ma najmniejszego sensu.

     




    Opinie użytkowników

    Rekomendowane komentarze

    ShroN

    Opublikowano

    Otworzyliście bloga, następnie nie wiecie o czym pisać, więc napisaliście o tym aby nie pisać tych samych skryptów! Mądre, na prawdę...

     

    Dodatkowo można zrobić coś takiego:

    player or console has permission "beznadziejnyskrypt.czyszczeniechatu":
    TechnicalPlay

    Opublikowano

    @ShroN niezależnie czy użyjesz player or console lub sender, wyjdzie Ci to samo. Tyle, że sender jest krótsze.

    Libter

    Opublikowano

    11 godzin temu, ShroN napisał:

    Otworzyliście bloga, następnie nie wiecie o czym pisać, więc napisaliście o tym aby nie pisać tych samych skryptów! Mądre, na prawdę...

    Każdy redaktor pisze to o czym chce pisać.

    PoweredDragon

    Opublikowano

    14 godzin temu, ShroN napisał:

    Otworzyliście bloga, następnie nie wiecie o czym pisać, więc napisaliście o tym aby nie pisać tych samych skryptów! Mądre, na prawdę...

    Uważam, że temat istotnie jest warty uwagi. Przynajmniej część osób, która do tej pory publikowała takie skrypty zrozumie, żeby tego nie robić. Inna część z kolei zrozumie, że zamiast krytykować destruktywnie, mogą skorzystać z daru konstruktywnej krytyki, który posiada każdy żyjący człowiek.
    Btw. Konsola nigdy nie ma uprawnień do wykonania komendy, więc efekt się nie zmieni :v

    Nieaktywny

    Opublikowano

    Można zrobic coś takiego:

    command /cc:
    	trigger:
    		if sender is console: #i tu nie wymaga permisji
    			loop 100 times:
    				broadcast ""
    			broadcast "&aChat wyczyszczony przez &2konsole"
    		if sender is player: #i tu będzie wymagało permisji
    			if player has permission "xyz":
    				loop 100 times:
    					broadcast ""
    				broadcast "&aChat wyczyszczony przez &2%player%"

    Taka rada dla takich co takie skrypty piszą :P



    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 komentarz...

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


×
×
  • Dodaj nową pozycję...