Skocz do zawartości
  • 0

Brak Znaków Specjalnych


Nieaktywny

Pytanie

Hmm.. ktoś ma pomysł jak wyłączyć w {argumencie} (wyjątek dla znaków dodać) znaki specjalne. Np: aby dodać spis dozwolonych znaków, gdyż nie dozwolonych znaków będą tysiące i zawsze znajdzie się sposób na bugi w wyniku tego.

Ktoś ma pomysł jak zrobić taką listę dozwolonych znaków dla argumentu (a,b,c,d,1,2,3,4,A,B,C,D itd) i żeby tylko one działały. Jeżeli by wykryło znak inny niż te z listy w argumencie to by pojawiał się wyjątek { - else }.

Jakieś pomysły ?

Odnośnik do komentarza
https://skript.pl/temat/27082-brak-znak%C3%B3w-specjalnych/
Udostępnij na innych stronach

10 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Gość ZiemniaQ
on chat:
    set {_l::*} to coloured message
    replace all "a" or "b" or "c" or " " or "+" or "ó" with "" in {_l::*}
    loop {_l::*}:
        if loop-value is not "":
            cancel event
            send "Twoja wiadomość zawiera niedozwolone znaki"
	

Masz na myśli coś takiego? Jeżeli tak to ustawiasz zmienną do tego co ci potrzebne (wiadomość, argument, tekst tabliczki, nick czy co tam sobie jeszcze wymyślisz) a potem wypisujesz dozwolone znaki, które trzeba z niej wykasować: "coś" or "coś" or "coś" (pamiętaj ze musisz tez wykasować wszystkie spacje, zatem trzeba umieścić też: or " ") Na koniec sprawdzasz tylko czy zmienna jest pusta: ""

Edytowane przez ZiemniaQ
Ziemniaki
Odnośnik do komentarza
https://skript.pl/temat/27082-brak-znak%C3%B3w-specjalnych/#findComment-178473
Udostępnij na innych stronach

  • 0
Godzinę temu, LuckyPotato napisał:

on chat:
    set {_l::*} to coloured message
    replace all "a" or "b" or "c" or " " or "+" or "ó" with "" in {_l::*}
    loop {_l::*}:
        if loop-value is not "":
            cancel event
            send "Twoja wiadomość zawiera niedozwolone znaki"
	

Masz na myśli coś takiego? Jeżeli tak to ustawiasz zmienną do tego co ci potrzebne (wiadomość, argument, tekst tabliczki, nick czy co tam sobie jeszcze wymyślisz) a potem wypisujesz dozwolone znaki, które trzeba z niej wykasować: "coś" or "coś" or "coś" (pamiętaj ze musisz tez wykasować wszystkie spacje, zatem trzeba umieścić też: or " ") Na koniec sprawdzasz tylko czy zmienna jest pusta: ""

właśnie nie o to mi chodzi. na odwrót wpisuje znaki które chce.

Odnośnik do komentarza
https://skript.pl/temat/27082-brak-znak%C3%B3w-specjalnych/#findComment-178476
Udostępnij na innych stronach

  • 0
Gość ZiemniaQ

Żeby sprawdzić czy zmienna zawiera niechciane znaki, musisz wykasować z niej wszystkie, które są dozwolone (w tym spacje). Jeżeli zmienna po tym działaniu będzie pusta oznacza, że sprawdzany tekst jest poprawny. Testowałeś ten skrypt?

Jeżeli nadal nie o to chodzi/nie zrozumiałeś/ja to źle rozumiem to wytłumacz proszę dokładniej. @xN0MANDx

Odnośnik do komentarza
https://skript.pl/temat/27082-brak-znak%C3%B3w-specjalnych/#findComment-178477
Udostępnij na innych stronach

  • 0
W dniu 5.05.2018 o 14:17, LuckyPotato napisał:

Żeby sprawdzić czy zmienna zawiera niechciane znaki, musisz wykasować z niej wszystkie, które są dozwolone (w tym spacje). Jeżeli zmienna po tym działaniu będzie pusta oznacza, że sprawdzany tekst jest poprawny. Testowałeś ten skrypt?

Jeżeli nadal nie o to chodzi/nie zrozumiałeś/ja to źle rozumiem to wytłumacz proszę dokładniej. @xN0MANDx

Przykładowo mam skrypt pisany (all pliki tworze se w yaml, ale to mało ważne w tej sprwaie). Przy tworzeniu gildii komendą [ /g zaloz ࿇♓♓♓] aby po prostu nie akceptowało te znaki.

Jak to bym rzekł na pierwszy rzut if illegal text characters contains in arg-1: STOP KURCZE

Niestety trzeba je oznaczyć jakoś, lecz tu niestety druga sprawa, nie chcianych znaków są tysiące - głupio by było wpisywać tysiące znaków które ma blokować ;v - co oznacza, że wypisywanie ich nie ma żadnego większego sensu.

W wyniku czego wszystkiego na moim serwerze pewne pokolenia szerzą mi nazizm.
[CIACH] [tu była swastyka]

I wszędzie by wpisywali takie znaki.

Tak, że chciałbym zrobić listę legalnych znaków, a jeżeli by znalazła jakaś się spoza listy to by tak jak to ująłem w 2 linijce mojego tekstu na koniec te 2 ostatnie słowa.

Niestety wątpię, aby skrypt był tak rozbudowany, aby posiadał "illegal text characters" w wyniku czego muszę do tego wykorzystać listę legal characters w yaml albo csv (zmiennych)

Edytowane przez Nieaktywny
Odnośnik do komentarza
https://skript.pl/temat/27082-brak-znak%C3%B3w-specjalnych/#findComment-178483
Udostępnij na innych stronach

  • 0

Nie łatwiej zrobić:

on chat:
    if message contains "卍":
        cancel event
        send "&cNiedozwolony znak" to player

Jeżeli skrypt nie rozpozna znaku, to zrób taki:

on chat:
   if message contains "a" or "b" or "c" or "d" or "i tak dalej cały alfabet + nawiasy + cyfry":
       stop
   else:
       cancel event
       send "Niedozwolony znak"

 

Edytowane przez ThatsVylence
Nieaktywny

Wstawiam w CODE.

Odnośnik do komentarza
https://skript.pl/temat/27082-brak-znak%C3%B3w-specjalnych/#findComment-178484
Udostępnij na innych stronach

  • 0
W dniu 5.05.2018 o 14:43, LuckyPotato napisał:

@xN0MANDx W skripcie masz napisaną tą komendę na gildie?

 

Tak jak pisałem - w skrypcie.

W dniu 5.05.2018 o 14:37, LordYu napisał:

Nie łatwiej zrobić:


on chat:
    if message contains "卍":
        cancel event
        send "&cNiedozwolony znak" to player

Jeżeli skrypt nie rozpozna znaku, to zrób taki:

on chat:
   if message contains "a" or "b" or "c" or "d" or "i tak dalej cały alfabet + nawiasy + cyfry":
       stop
   else:
       cancel event
       send "Niedozwolony znak"

 

Ta tyle, że ten pomysł ma wadę. wystarczy że będzie 卍Nazi卍 (lub jakiś inny znak) i będzie akceptowało bo ' contains "a" '.

Edytowane przez Nieaktywny
Odnośnik do komentarza
https://skript.pl/temat/27082-brak-znak%C3%B3w-specjalnych/#findComment-178487
Udostępnij na innych stronach

  • 0
5 minut temu, xN0MANDx napisał:

Tak jak pisałem - w skrypcie.

Ta tyle, że ten pomysł ma wadę. wystarczy że będzie 卍Nazi卍 (lub jakiś inny znak) i będzie akceptowało bo ' contains "a" '.

Skrypt szuka znaku, nie ciągu, więc możesz dodać drugi event on chat w którym dodasz nazwę "Nazi" i też zablokuje, nawet jak ktoś napisze A卍B to zaakceptuje to jako niedozwolony znak

Odnośnik do komentarza
https://skript.pl/temat/27082-brak-znak%C3%B3w-specjalnych/#findComment-178491
Udostępnij na innych stronach

  • 0
Godzinę temu, LordYu napisał:

Skrypt szuka znaku, nie ciągu, więc możesz dodać drugi event on chat w którym dodasz nazwę "Nazi" i też zablokuje, nawet jak ktoś napisze A卍B to zaakceptuje to jako niedozwolony znak

To nie miałoby zastosowania i sensu - albo po prostu źle zrozumiałem cytowaną tą twoją wypowiedź.

Czytając to drugi raz zrozumiałem, że na początku uznajesz ciąg znaków w 1 poście a w drugim znak tylko, czyli przeczysz samemu sobie, albo tak jak napisałem wyżej - źle cię może zrozumiałem.

Edytowane przez Nieaktywny
Odnośnik do komentarza
https://skript.pl/temat/27082-brak-znak%C3%B3w-specjalnych/#findComment-178492
Udostępnij na innych stronach

  • 0
Gość ZiemniaQ

@xN0MANDx Dobra... moja ostatnia próba... Wklej proszę ten kod do swojej komendy na gildie, uzupełnij listę yml dozwolonymi znakami, i przetestuj.

#---------------------------------------------------------------------------------
command /znaki [<text>]:
	trigger:
		add arg 1 to yaml list "Znaki dozwolone" from file "plugins/Skript/Znaczki.yml"
		send "Dodano do listy: %arg 1%"
#---------------------------------------------------------------------------------
if arg 1 is "zaloz":
    if arg 2 is set:
        set {_l::*} to arg 2
        set {_z::*} to yaml list "Znaki dozwolone" from file "plugins/Skript/Znaczki.yml"
        loop {_z::*}:
            replace all "%loop-value%" with "" in {_l::*}
        replace all " " with "" in {_l::*}
        loop {_l::*}:
            if loop-value is not "":
                cancel event
                send "Nazwa gildii zawiera niedozwolone znaki"
            else:
                #Dalsza część kodu
	
Edytowane przez ZiemniaQ
Ziemniaki
Odnośnik do komentarza
https://skript.pl/temat/27082-brak-znak%C3%B3w-specjalnych/#findComment-178493
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ę...