kriso99 Opublikowano 29 Maja 2014 Udostępnij Opublikowano 29 Maja 2014 Tabela wyników, zapisywanie do pliku ini, szyfrowanie metodą Xor przykład dla początkujących //jezeli użyjesz tego przykładu w grze dodaj mnie do credits i poinformuj na PW, dzieki wykorzystuje artykuł: Szyfrowanie tekstu metodą Xor by Gnysek artykuł z którym powinieneś się zapoznać: Warunki i pętle w GM by Tymon GML (create) /*----------------------------------------------------------------------------*/ /*------------------------wczytywanie rekordów z pliku------------------------*/ /*----------------------------------------------------------------------------*/ if !file_exists("rekordy.ini") { //jeżeli plik "rekordy.ini" nie istnieje to go tworzymy //i wszystkie pozycje uzupełniamy jako 0 szyfrując metodą Xor ini_open("rekordy.ini") for(var i=0;i<=9;i+=1) //każdy powinien wiedziać jak działa pentla for :) { ini_write_string("score",string(i),doXor(0))//zapisywanie punktów na pozycje "i" ini_write_string("nick",string(i),doXor("------"))//zapisywanie nicku na pozycje "i" //inicjowanie tablic dwuwymiarowych rekord[0,i]=0//punkty rekord[1,i]=""//nick } } else //jeżeli plik istnieje { ini_open("rekordy.ini") //zapisujemy wszystkie rekordy z pliku do tablicy 2-wymiarowej for(var i=0;i<=9;i+=1) { rekord[0,i]=real(doXor((ini_read_string("score",string(i),"")))) rekord[1,i]=doXor(ini_read_string("nick",string(i),"")) } } ini_close()//należy pamiętać o zamknięciu pliku ini</span></span> GML (keyboard pressed space) /*----------------------------------------------------------------------------*/ /*------------------------pobieranie aktualnych wyników-----------------------*/ /*----------------------------------------------------------------------------*/ nick=get_string("Jak mam cię wpisać do rejestru dłuzników?","Somebody") score=get_integer("Oblicz "+string(random(20))+"+"+string(random(20))+"=","") /*----------------------------------------------------------------------------*/ /*------------------------zapisywanie wyników do pliku------------------------*/ /*----------------------------------------------------------------------------*/ for(var i1=0;i1<=9;i1+=1) //odliczanie od najwyższego wyniku w dół { if score>rekord[0,i1]//jeżeli nasz wynik jest większy niż wynik na pozycji "i1" { ini_open("rekordy.ini") for(var i2=9;i2>=i1+1;i2-=1) { //przesówamy wszystkie wyniki w dół(od tego którego pobiliśmy do końca) rekord[0,i2]=rekord[0,i2-1] rekord[1,i2]=rekord[1,i2-1] //zapisujemy przesunięcie do pliku ini_write_string("score",string(i2),doXor(rekord[0,i2])) ini_write_string("nick",string(i2),doXor(rekord[1,i2])) } //gdy wszystko przesunięte to zapisujemy nasz aktualny wynik rekord[0,i1]=score rekord[1,i1]=nick ini_write_string("score",string(i1),doXor(rekord[0,i1])) ini_write_string("nick",string(i1),doXor(rekord[1,i1])) ini_close() exit//kończymy pentle oraz kończy cały event } } GML (draw) //rysowanie tła draw_set_alpha(0.4) draw_set_color(c_black) draw_rectangle(view_xview,view_yview,view_xview+view_wview,view_yview+view_hview,0) //draw_set_font(font0) draw_set_valign(fa_center)//wyśrodkowanie czcionki na osi Y draw_set_alpha(1) for(var i=0;i<=9;i+=1) { if i=0//1miejsce draw_set_color(c_green) else if i=1//2miejsce draw_set_color(c_silver) else if i=2//3miejsce draw_set_color(c_orange) else //inne miejsca draw_set_color(c_dkgray) //rysowanie kwadrata pod napisem draw_rectangle(view_xview+10,view_yview+30+40*i-18,view_xview+view_wview,view_yview+30+40*i+18,0) //rysowanie wyników draw_set_color(c_white) draw_set_halign(fa_left)//wyrównanie czcionki do lewej draw_text(view_xview+20,view_yview+30+40*i,string(i+1)) draw_text(view_xview+50,view_yview+30+40*i,rekord[1,i])//nick draw_set_halign(fa_right)//wyrównanie czcionki do prawej draw_text(view_xview+view_wview-50,view_yview+30+40*i,rekord[0,i])//punkty } GML (skrypt doXor) //skrypt by Gnysek //https://gmclan.org/index.php?czytajart=58 var _klucz,i,_znaki,_len; argument0 = string( argument0 ); _znaki = ''; _len = string_length( argument0 ); _klucz = 4321;//należy wpisać własny klucz for ( i = 1; i <= _len; i += 1 ) { _znaki += chr( ord( string_char_at( argument0, i ) ) ^ _klucz ); } return _znaki; download plik gm:s 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ę