Skocz do zawartości

Kodowanie pewnych danych


OriPL

Rekomendowane odpowiedzi

Witam chciał bym zapisać w osobnym pliku pewne dane... które później mógł bym wykorzystać w grze...

chodzi tutaj dokładnie o to że chce zapisać czy dany przedmiot, na danej mapie został zebrany...

 

Można by to zrobić w ini ale problem w tym że ktoś może sobie to otworzyć notatnikiem, a następnie pozmieniać wartości i mieć te zebrane rzeczy w grze... a jak dobrze wam się zdaje... to nie o to chodzi...

 

Tak więc potrzebuje w jakiś sposób zakodować te dane by nie mogły zostać one zmienione przez gracza w tym pliku :)

 

Poza tym możemy odejść od mojej koncepcji i przyjąć waszą jeżeli macie na mój problem własne rozwiązanie :) być może lepsze :)

pozdrawiam :)

Odnośnik do komentarza
Udostępnij na innych stronach

W przykładach masz kilka przykładów jak szyfrować. Możesz także poszukać w necie jakiś fajny sposób szyfrowania. Ale najfajniej jest samemu coś naskrobać. Może trwa długo, ale za to masz dużą satysfakcję.

 

Poza tym możemy odejść od mojej koncepcji i przyjąć waszą jeżeli macie na mój problem własne rozwiązanie

 

Nikt Ci nie poda własnego sposobu szyfrowania. Wtedy szyfr będzie znany i będzie można go złamać.

Odnośnik do komentarza
Udostępnij na innych stronach

A więcej trzykropków to matula nie dała do posiania?

Odnośnik do komentarza
Udostępnij na innych stronach

Nikt Ci nie poda własnego sposobu szyfrowania. Wtedy szyfr będzie znany i będzie można go złamać.

Nie powiedziałem żeby podać mi przykład ich kodowania lecz koncepcje na to jak można te dane przechować (Nie koniecznie kodując)

 

A więcej trzykropków to matula nie dała do posiania?

To jest jedna kropka... tylko siedzisz za blisko ^^

 

Zrób bez kodowania. Jak ktoś będzie chciał sobie popsuć grę to sobie popsuje tongue2.gif A jak nie, to po prostu będzie normalnie grał jak każdy normalny gracz :s

A ja właśnie chce żeby nawet nie kusiło :) bo tak to każdy sobie ustawi i dostanie bonusa...

 

Edit: i chyba trochę zawyżyłem swoje umiejętności... nie wiem jak to zrobić ^^

Dobra sytuacja wygląda tak:

Mam 30 roomów, w każdym znajduje się pewien obiekt (tylko jeden), przy jego zebraniu, powinno się gdzieś zapisać że on w danym roomie został zebrany by przy ponownym do niego wejściu po prostu go skasować :)

Odnośnik do komentarza
Udostępnij na innych stronach

Skorzystaj z globali. Tworzysz tablicę n wymiarową, np. global.rzecz. Indeks oznaczałby numer rooma. Jeżeli zabrałeś przedmiot, to zmieniasz wartość w odpowiedniej komórce. Po ponownym wejściu do rooma sprawdzasz wartości odpowiednich komórek. Jeżeli wartość odpowiada, że przedmiot został zabrany, to usuń przedmiot z rooma.

Odnośnik do komentarza
Udostępnij na innych stronach

rozwiązanie dobre i nawet rozważałem ale problem w tym że jak wyłączę grę i z powrotem ją załączę to obiekty znowu się pojawią bo globale będą zresetowane do wartości początkowych :) pomysł nie jest zły wystarczy go rozwinąć o zapisywanie... tylko Ba! jak to zapisać :)

Odnośnik do komentarza
Udostępnij na innych stronach

Wystarczy przed wyłączeniem gry zapisać dane do pliki txt albo ini. Przy uruchamianiu gry, musisz je wczytać:

GML
//zapis

plik_we=file_text_open_write("plik.txt");// otwieramy plik do zapisu

for(i=0;i<30;i+=1)//30 roomów, więc 30 powtórzeń

{

file_text_write_string(plik_we,string(global.rzecz))//zapisz i-tą zmienną jako string

file_text_writeln(plik_we)//przejdź do kolejnej linijki w txt

}

file_text_close(plik_we)//zamknij plik

//odczyt

plik_we=file_text_open_read("plik.txt");//otwórz plik do odczytu

i=0;

while(!file_text_eof(plik_we))//powtarzaj jeżeli nie dotarliśmy do końca pliku

{

global.rzecz=file_text_read_real(plik_we)//wpisz kolejne zmienne z pliku do tablicy

file_text_readln(plik_we)

i+=1;

}

file_text_close(plik_we)

Dodaj do tego jeszcze szyfrowanie i odszyfrowanie, to nikt nie będzie Ci grzebał w pliku (a przynajmniej utrudnisz mu w tym robotę).

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...
Wystarczy przed wyłączeniem gry zapisać dane do pliki txt albo ini. Przy uruchamianiu gry, musisz je wczytać:

GML
//zapis

plik_we=file_text_open_write("plik.txt");// otwieramy plik do zapisu

for(i=0;i<30;i+=1)//30 roomów, więc 30 powtórzeń

{

file_text_write_string(plik_we,string(global.rzecz))//zapisz i-tą zmienną jako string

file_text_writeln(plik_we)//przejdź do kolejnej linijki w txt

}

file_text_close(plik_we)//zamknij plik

//odczyt

plik_we=file_text_open_read("plik.txt");//otwórz plik do odczytu

i=0;

while(!file_text_eof(plik_we))//powtarzaj jeżeli nie dotarliśmy do końca pliku

{

global.rzecz=file_text_read_real(plik_we)//wpisz kolejne zmienne z pliku do tablicy

file_text_readln(plik_we)

i+=1;

}

file_text_close(plik_we)

Dodaj do tego jeszcze szyfrowanie i odszyfrowanie, to nikt nie będzie Ci grzebał w pliku (a przynajmniej utrudnisz mu w tym robotę).

 

 

To proponuję jeszcze prościej. Użyj zamiast zwykłej tablicy ds_list. Potem do tego ds_list_write i ds_list_read. Dane zapisują się w postaci mało czytelnej więc może to wystarczy.

Odnośnik do komentarza
Udostępnij na innych stronach

To proponuję jeszcze prościej. Użyj zamiast zwykłej tablicy ds_list. Potem do tego ds_list_write i ds_list_read. Dane zapisują się w postaci mało czytelnej więc może to wystarczy.

A potem jak ktoś ma GMa to sobie może taki plik na luzie odkodować :P więc to trochę lipne.

Odnośnik do komentarza
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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...