Skocz do zawartości

gnysek

Administratorzy
  • Postów

    9 806
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    139

Odpowiedzi opublikowane przez gnysek

  1. ja bym zrobił tak, że w kodzie PHP dajesz:

    <?php
    $key = 'azs123123';
    echo json_encode(array('time'=>time(), 'hash' => md5(time() . $key));

     

    a po stronie GMa, jak odbierasz dane:

    //result to ds_mapa już po json_decode
    
    var time = result[? "time"];
    var hash = result[? "hash"];
    var key = "azs123123";
    var check = md5( time + key); 
    
    if (check == hash) {
     // czas z serwera jest niesfałszowany
    }

     

    Tak długo, jak ktoś nie znajdzie klucza w skompilowanej grze, tak długo system jest bezpieczny (bo hash z serwera będzie trudny do odczytania nawet z tablic tęczowych).

  2. 14 godzin temu, Threef napisał:

    Wystarczy zapytanie do serwera o czas.

    Puszczasz request przez PC, ustawiasz przekierowanie domeny na 127.0.0.1 w pliku hosts, robisz skrypt php który zwraca inny czas - oszukane.

     

    Tak samo jak przy zmianie zegara w telefonie.

     

    A czas z serwera pobierasz tak, że robisz skrypt PHP który go zwraca - nie pamiętam czy GMS potrafi czytać czas unixowy, wtedy wystarczy "echo time();".

  3. Jeśli to gra na androida, to ja bym po prostu raz na sekundę zapisywał w pliku INI obecny czas, a potem jak odpalasz grę odczytywał ten czas, odejmował od obecnego i wykonał skrypt dodający zasoby na podstawie czasu np.:

    GOLD = floor(sekundy/120); // 1 złoto co 2 sekundy
    WOOD = floor(sekundy/240); // 1 drewno co 4 sekundy

    Argument, że można zhackować jest słaby, bo nawet jakbyś przes sieć przesyłał czas, to można zhackować request np. przepuszczając go przez PC który udaje router (udostępnianie internetu).

  4. instance_deactivate_object(obj_drzewo);
    
    instance_activate_region(x-100,y-100,x+100,y+100,true,true) ;

     

    jedno po drugim. obiekty są deaktywowane na koniec eventu step, więc się nie zdążą deaktywować w tej sytuacji :)

     

    Jeśli chcesz deaktywować wiecej obiektów na raz, stwórz obj_rodzic i ustawiaj każdemu z obiektów jakie chcesz deaktywować Parent=>obj_rodzic (w kodzie albo klikając na oknie właściwości obiektów w pole "Parent"). Zamień tylko na instance_deactivate_object(obj_rodzic);

×
×
  • Dodaj nową pozycję...