Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 
Polski Portal COLOBOTa
COLOBOT Polish Portal

Modyfikacje - Cheat Engine - Wymieniamy się adresami

krzys_h - 14-05-2011, 16:16
Temat postu: Cheat Engine - Wymieniamy się adresami
Stworzyłem ten temat, aby wymieniać się adresami różnych danych w pamięci colobota. Możecie dawać tu wszystko co znajdziecie: od adresu prędkości gry do listy obiektów. Dawajcie pointery, bo adresy się zmianiają przy każdym uruchomieniu gry. Druga sprawa to offsety w danych o obiekcie. Najłatwiej szukać ich przeglądając pamięć w okolicy adresu wskazywanego przez pointer do aktywnego obiektu.

Sposób podawania adresów
Dając adres należy podać:
:arrow: Nazwa
:arrow: Opis
:arrow: Typ zmiennej (4 bytes, float itp.)
:arrow: Adres bazowy
:arrow: Offset 1
:arrow: Offset 2
:arrow: ...
:arrow: Offset n

Na przykład tak:
Kod:
Nazwa: Prędkość gry
Opis: Szybkość gry domyślnie zmianiana klawiszami F4 (1x), F5 (1.5x) i F6 (2x). Przy zmianie na ujemną dzieją się dziwne rzeczy.
Typ zmiennej: Float
Adres bazowy: 005527BC (Można dać też jako domyślną formę zwracaną przez Pointer Scan: colobot.exe+001527BC (colobot.exe jest równe 00400000))
Offset 1: 4
Offset 2: 14C
Offset 3: 4
Offset 4: 14C
Offset 5: 244


Moje adresy
Daję moje adresy:
Kod:
Nazwa: Prędkość gry
Opis: Szybkość gry domyślnie zmianiana klawiszami F4 (1x), F5 (1.5x) i F6 (2x). Przy zmianie na ujemną dzieją się dziwne rzeczy.
Typ zmiennej: Float
Adres bazowy: 005527BC (colobot.exe+001527BC)
Offset 1: 4
Offset 2: 14C
Offset 3: 4
Offset 4: 14C
Offset 5: 244


Kod:
Nazwa: Lista obiektów (od DemoLisH)
Opis: Zawiera adres listy obiektów. Trzeba kliknąć [b]prawym przyciskiem myszy[/b] i wybrać [b]Show as hexadecimal value[/b].
Typ zmiennej: 4 Bytes
Adres bazowy: 0054BCBC (colobot.exe+0014BCBC)
Offset 1: 14C
Offset 2: 4
Offset 3: 0
Offset 4: 50
Offset 5: 0


Kod:
Nazwa: Aktywny bot (od DemoLisH)
Opis: Zawiera adres obiektu opisującego aktualnie zaznaczonego bota. Trzeba kliknąć [b]prawym przyciskiem myszy[/b] i wybrać [b]Show as hexadecimal value[/b].
Typ zmiennej: 4 Bytes
Adres bazowy: 0054BCBC (colobot.exe+0014BCBC)
Offset 1: 150
Offset 2: 3C
Offset 3: 8
Offset 4: 18


Kod:
Nazwa: Liczba obiektów
Opis: Po prostu liczba obiektów znajdujących się na mapie.
Typ zmiennej: 4 Bytes
Adres bazowy: 004E90AC (colobot.exe+000E90AC)
Offset 1: 0


Kod:
Nazwa: DoneResearch
Opis: Chyba każdy wie co to :P Ukończone badania (Centrum badawcze).
Typ zmiennej: Binary (Length 8)
Adres bazowy: 0040E80C (colobot.exe+0000E80C)
Offset 1: 0


Kod:
Nazwa: DoneOrgaResearch
Opis: Ukończone badania materii organicznej (Laboratorium).
Typ zmiennej: Binary (Length 8)
Adres bazowy: 0040E80C (colobot.exe+0000E80C)
Offset 1: 1


Kod:
Nazwa: EnableResearch
Opis: Dostępne badania (Centrum badawcze).
Typ zmiennej: Binary (Length 8)
Adres bazowy: 00412CF4 (colobot.exe+00012CF4)
Offset 1: 0


Kod:
Nazwa: EnableOrgaResearch
Opis: Dostępne badania materii organicznej (Laboratorium).
Typ zmiennej: Binary (Length 8)
Adres bazowy: 00412CF4 (colobot.exe+00012CF4)
Offset 1: 1


Kod:
Nazwa: Nick
Opis: Nick (nazwa profilu) gracza
Typ zmiennej: Text (Length 15)
Adres bazowy: 004CC234 (colobot.exe+000CC234)
Offset 1: 4


Kod:
Nazwa: Napis początkowy
Opis: Naciśnij klawisz F1 aby wyświetlić rozkazy na przekaźniku SatCom
Typ zmiennej: Text (Length 72)
Adres bazowy: 005389E4 (colobot.exe+001389E4)
Offset 1: 50


Moje offsety danych o obiekcie
Trzeba podać:
:arrow: Nazwa
:arrow: Opis
:arrow: Typ zmiennej
:arrow: Offset
Najłatwiej edytować te wartości dodając podany offset jako 5 w adresie Aktywny bot (patrz wyżej)

No to jedziemy:
Kod:
Nazwa: Nazwa (:P)
Opis: Nazwa kategorii robota. Widać w debuggerze cbot w oknie zmiennych (na dole) jako this.category (Zmieniłem sobie raz to na BotGrabberRoller :P)
Typ zmiennej: Text[25]
Offset: 48


Kod:
Nazwa: X
Opis: Pozycja X robota na mapie. Aby otrzymać prawidłową wartość należy dane z pamięci podzielić przez 4
Typ zmiennej: Float
Offset: 580


Kod:
Nazwa: Y
Opis: Pozycja Y robota na mapie. Aby otrzymać prawidłową wartość należy dane z pamięci podzielić przez 4
Typ zmiennej: Float
Offset: 588


Kod:
Nazwa: Z
Opis: Pozycja Z robota na mapie. Aby otrzymać prawidłową wartość należy dane z pamięci podzielić przez 4
Typ zmiennej: Float
Offset: 584


Kod:
Nazwa: Obrót
Opis: Obrót robota. Aby otrzymać prawidłową wartość należy dane z pamięci podzielić przez 6 i wziąść z tego tylko część ułamkową (Jeśli chcemy otrzymać wartość w stopniach należy to jeszcze na koniec pomnożyć przez 360)
Typ zmiennej: Float
Offset: 590


Kod:
Nazwa: Bateria
Opis: Adres obiektu baterii robota. Trzeba kliknąć [b]prawym przyciskiem myszy[/b] i wybrać [b]Show as hexadecimal value[/b].
Typ zmiennej: 4 Bytes
Offset: D8


Kod:
Nazwa: Niesiony obiekt
Opis: Adres obiektu niesionego przez robota. Trzeba kliknąć [b]prawym przyciskiem myszy[/b] i wybrać [b]Show as hexadecimal value[/b].
Typ zmiennej: 4 Bytes
Offset: DC


Kod:
Nazwa: energyLevel
Opis: Stan naładowania obiektu (aby otrzymać stan naładowania baterii robota należy odczytać to pole w obiekcie wskazywanym przez offset [b]Bateria[/b] (patrz wyżej))
Typ zmiennej: Float
Offset: E8


Kod:
Nazwa: lifeTime
Opis: Czas życia obiektu w sekundach
Typ zmiennej: Float
Offset: 100


Kod:
Nazwa: clip
Opis: Czy obiekt przenika przez inne obiekty? (kod [i]noclip[/i] ustawia na 0)
Typ zmiennej: Byte
Offset: 154


Kod:
Nazwa: selectable
Opis: Czy obiekt da się zaznaczyć?
Typ zmiennej: Byte
Offset: 124


Podsumowanie
Wszystkie adresy dołączam w postaci pliku Cheat Engine (*.CT). Zachęcam do dawania swoich adresów, gdyż mogą one się przyczynić do powstania multiplayera. Dla osób nie umiejących się posługiwać programem Cheat Engine niedługo dokończę mój poradnik.


Powered by phpBB modified by Przemo & WRIM © 2003 phpBB Group