FanXX Opublikowano 10 Kwietnia 2013 Udostępnij Opublikowano 10 Kwietnia 2013 Siemanko chciałbym was zapytać czy jest jakiś sposób aby keyboard_string nie przechwytywał spacji \ lub ich nie wpisywał? Wiem że trzeba coś ze znajdywaniem stringu w jakieś zmiennej i jego usunięcie ale nic mi nie przychodzi. Próbowałem też Step GML if !keyboard_check_direct(vk_space) {exit} else {tekst=keyboard_string} Próbowałem szukać na GameMaker zagranicznym forum ale nie znalazłem co chciałem. Dzięks @Edit PS: Mi to jest potrzebne po to by ludziska nie tworzyli swojego hasła albo loginu, gdzie hasło \ login to pare razy spacja xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 10 Kwietnia 2013 Udostępnij Opublikowano 10 Kwietnia 2013 Może co stepa sprawdzaj czy na końcu nie dodała się spacja i usuwaj ją jeśli tak. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
FanXX Opublikowano 10 Kwietnia 2013 Autor Udostępnij Opublikowano 10 Kwietnia 2013 Może co stepa sprawdzaj czy na końcu nie dodała się spacja Własnie też tak już myślałem tylko nie mam pojęcia jak by zrobić coś na zasadzie file_find że sprawdza ciągle czy nie kliknąłem spacji. Z usuwaniem problemu bym nie mał. @edit chociaż gdybym wiedział jaką funkcję z string_ wybrać było by łatwiej Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gooman Opublikowano 10 Kwietnia 2013 Udostępnij Opublikowano 10 Kwietnia 2013 Ogólnie nie polecam tej metody, lepiej sprawdzić już po wpisaniu hasła, czy całość nie zawiera nielegalnych znaków i poprosić użytkownika o zmianę. Ale jeżeli chcesz blokować spację "na żywo" to mniej więcej coś takiego: Step Event: NIE używać - patrz post Utermiko :P GML if string_char_at(keyboard_string,string_length(keyboard_string)) = chr(32) { keyboard_string = string_delete(keyboard_string,string_length(keyboard_string),1); } Powyższy kod sprawdza ostatni znak wpisany w keyboard_string i jeżeli jest to spacja to go kasuje, niestety jest pewien problem. Problem polega na tym, że jeżeli użytkownik wciśnie spacje jednocześnie z innymi klawiszami na klawiaturze to najprawdopodobniej i tak ta spacja przejdzie przez to zabezpieczenie, bo program nie zdąży jej sprawdzić. Nie mam teraz czasu dociekać dlaczego tak się dzieje, może ktoś inny będzie w stanie to wyjaśnić. Lepiej byłoby po wypełnieniu całego formularza zrobić walidacje wszędzie gdzie to wymagane i wtedy poinformować użytkownika gdzie są błędy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 10 Kwietnia 2013 Udostępnij Opublikowano 10 Kwietnia 2013 Daj w step: GML keyboard_string=string_replace_all(keyboard_string, ' ', ''); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 10 Kwietnia 2013 Administratorzy Udostępnij Opublikowano 10 Kwietnia 2013 Mozna dać w key release <any>, będzie rzadziej wykonywane. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
FanXX Opublikowano 10 Kwietnia 2013 Autor Udostępnij Opublikowano 10 Kwietnia 2013 Wielkie dzięki wam, działa dobrze, tylko musiałem użyć 255 liter w font bo gdy klikało się ALT + A to robiła się niewidoczna litera Ą tworząc spacje. I mam do was jeszcze jedno pytanko i ostatnie, jak sprawdzić czy w stringu istnieje np @ # $ % i gdy użytkownik wpisze któryś z takich symboli to dostanie GML show_message('Niedozwolone') popróbuje z GML if string = '@' {} i zobacze co wyjdzie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 10 Kwietnia 2013 Udostępnij Opublikowano 10 Kwietnia 2013 https://gmclan.org/index.php?wiki=article&zm=32 Możesz użyć np. string_count. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 10 Kwietnia 2013 Udostępnij Opublikowano 10 Kwietnia 2013 W mojej gierce można wpisywać własny seed generatora mapy. Dozwolone są tylko duże i małe litery oraz cyfry. Dodatkowo string musi mieć długość 1-6 znaków. link do tematu z grą Wpadłem na bardzo proste rozwiązanie :D GML /* jeżeli w stringu nie ma różnych znaków od cyfr lub liter to znaczy że suma liter i cyfr będzie taka sama jak długość całego stringa*/ if ( string_length( string_digits( str ) ) + string_length( string_letters( str ) ) == string_length( str ) && string_length( str ) <= 6 && string_length( str ) > 0 ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lannerk Opublikowano 17 Kwietnia 2013 Udostępnij Opublikowano 17 Kwietnia 2013 Wiesz, co to jest tablica ASCII? ;) Każdy język programowania praktycznie z tego korzysta. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 17 Kwietnia 2013 Udostępnij Opublikowano 17 Kwietnia 2013 jezeli chodzi o wczytyvanie tylko a-z, A-Z, 0-9 to jest latviej uzyc string_lettersdigits naprzyklad: _txt="witam v domu 2 pany/3panie" draw_text(10,10,string(_txt)); draw_text(10,30,string_lettersdigits(_txt)); to rezultat jest: witam v domu 2 pany/3panie witamvdomu2pany3panie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 17 Kwietnia 2013 Udostępnij Opublikowano 17 Kwietnia 2013 jezeli chodzi o wczytyvanie tylko a-z, A-Z, 0-9 to jest latviej uzyc string_lettersdigits naprzyklad: _txt="witam v domu 2 pany/3panie" draw_text(10,10,string(_txt)); draw_text(10,30,string_lettersdigits(_txt)); to rezultat jest: witam v domu 2 pany/3panie witamvdomu2pany3panie Nie zauważyłem tej funkcji, w takim razie można moje uprościć: GML if ( string_length( string_lettersdigits( str ) ) == string_length( str ) && string_length( str ) <= 6 && string_length( str ) > 0 ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę