Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Pamięć ram - jak zapisać i wczytać?


Rekomendowane odpowiedzi

Opublikowano

Witam. Mam pytanie - mam przykładowo grę DSJ4 ( skoki narciarskie ). Trafiły mi się idealne warunki do oddania skoku, lecz niestety skok zepsułem. Czy da się jakoś te warunki przywrócić np. poprzez zapisanie uprzednio pamięci ram programu i przywróceniu jej? Jeżeli tak to jak?

Opublikowano

Polecam w AutoIT. Zrobisz to w chwilę.

Jest gdzieś tutorial dotyczący nomadmemory.au3 w dziale autoit.

za pomocą funckji z nomadmemory zmienisz wartości. W tutku masz wszystko wyjaśnione

_MemoryOpen() i _MemoryWrite()

Opublikowano

W tym jednak problem, że gra nie reaguje na zmianę wartości, tak jakby tworzyła wtedy nową wartość, a stara przestała pełnić swoją funkcję. Dlatego chcę przywrócić to co było przed chwilą.

Opublikowano

Nie chcę nic w niej zapisywać. Chcę zapisać jej stan i to jak się zmienia dana wartość przez 10 sekund, a później to wczytać, tak by się identycznie zmieniało.

Opublikowano

Dokładnie cheat engine i tyle, jak masz jakieś dokładne wartości podane to bez problemu zrobisz, a tutaj masz wytłumaczenie każdej funkcji skanu w ce :

Byte - 1 bajt (wartość decymalna od 0 do 255)

2 bytes - 2 bajty (wartość decymalna od 0 do 65535)

4 bytes - 4 bajty tzw. integer (wartość decymalna od 0 do 4,294,967,295)

float - 4 bajtowa wartość zmiennoprzecinkowa, np. 3.14 (zakres do ok 3.4E+38)

double - 8 bajtowa wartość zmiennoprzecinkowa (zakres do ok 1.7E+308)

text - tablica znaków (np. text[5] to pięcioliterowe słowo)

array of bytes - tablica bajtów (np. 20 bajtów)

 

Najcześciej używane w grach 3D to:

 

Oczywiście 4bytes (np. ilość życia, różne stany)

Float (tam gdzie jest wymagana dokładność jest używana ta zmienna, jest to naprzykład położenie gracza)

Text (oczywiście tekst czyli nazwy potworów, npc itd.)

OndteAw.png
Opublikowano

To mniej więcej wiem. Teraz mam inny problem. W trybie treningu, bo tylko tam sprawdzałem da się normalnie znaleźć wiatr w Cheat Engine - gdy ma siłę na przykład 2.0m/s to w 4bytes było to jako 20, 1.5m/s 15 itp.

 

Problem pojawia się w trybie właściwym - World Cup. Wiatru nie da się znaleźć w ten sposób, czy może być w tych dwóch trybach zapisany inaczej? I jeszcze jeden problem - w grze do danych warunków wietrznych jest też belka. W treningu dowolnie można nią za pomocą CE manipulować- w trybie World Cup, gdzie można bić rekordy gra nie reaguje na zmianę belki, mimo, że wartość da się spokojnie wyszukać. Screen jak to wszystko wygląda:

 

 

beztytuujxo.jpg

 

Sorry, że trochę odbiegłem od tematu ;) Da się coś zrobić, żeby gra reagowała na zmianę belki przez CE w trybie WC? W trybie treningu działa bez zarzutu ;)

 

Jeszcze tak apropo - czy to jest zrobione za pomoca CE? -

wydaje mi się, że jest tu zwiększona siła wybicia skoczka.
Opublikowano

Jeśli nie potrafisz znaleźć jakiegoś adresu bo nie wiesz w jaki sposób jest zapisany to najprościej jest szukać dla wartości niewiadomej, a potem zwiększonej/zmniejszonej i zmienionej/niezmienionej.

Twoja stara robi catch the clowny w Game Makerze.

  • 2 tygodnie później...
Opublikowano

Tak lepiej ..

Musiał by rozkodować .exeka i zmienić wartość randomu dla zmiennej odpwiadającej za wiatr.

Co do tych adresów to nie mam pojęcia

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...