Program do edycji save.
Ja osobiście również do edycji save'ów polecam niezawodny Hacker's View 8.10, który oczywiście przydaje się głownie do reversowania, ale edycja saveów to również mały reverse na swoją korzyść na ogół. Znajduje się on w paczce na: http://www.mediafire.com/?v22n7dlm1di3087 a filmik, który pokazuje między innymi to narzędzie w akcji to http://youtube.com/watch?v=8FKwn-4LsRE - w skrócie dodam tylko, że najlepiej dodać go sobie do rejestru w AppPaths aby móc uruchmiać pod krótką nazwą z pod Total Commandera. Ja u siebie mam hw i nazwa pliku po Ctrl+J. Pod Enterem mamy zmianę tryb widoku, pod F5 skok do offsetu, pod F3 mamy edycję, pod F7 wyszukiwanie, a pod F9 zapis wprowadzonych zmian. Save'y oczywiście najlepiej jest edytować w widoku Hex. Do programu dołączony jest też help pod klawiszem F1, więc wszystko powinno być jasne.
Re: Program do edycji save.
Husar, super inaczej się tego nie dało wyjaśnić. Teraz Tauri niech zmieni na swojej stronie cheat do settlersów i wszystko jasne.
Re: Program do edycji save.
błędny poradnik został już usunięty, jak tylko zrobię nowy poradnik na bazie Waszych postów to zaraz go dodam (niestety z racji tego że nie znam się za bardzo na edycji save, zrobienie opisu chwilę potrwa)
Re: Program do edycji save.
Przecież wystarczy skopiować to co napisał Husar wcześniej.
Re: Program do edycji save.
tam skopiować
chce to trochę przeredagować, tak by ładnie to wyglądało i brzmiało, oraz należałoby chyba podziękować uczestnikom dyskusji za zauważenia na stronce stare-e.gry problemu i jego rozwiązanie (w szczególności Husarowi i Tobie)

chce to trochę przeredagować, tak by ładnie to wyglądało i brzmiało, oraz należałoby chyba podziękować uczestnikom dyskusji za zauważenia na stronce stare-e.gry problemu i jego rozwiązanie (w szczególności Husarowi i Tobie)

Re: Program do edycji save.
Hmm.. wychodzi na to, ze uniwersalnej metody na offset nie będzie, bo stany surowców się zapisują gdzieś indziej u Elmek'a. Po dobraniu się do jego pliku save będzie można powiedzieć więcej.
Re: Program do edycji save.
Już działamy, wspólnie z Husarem nad tym problemem. Dostał moją wersję Settlers PC. Co dziwne jego pliki mają po 100KB a moje 0.5MB. 

Re: Program do edycji save.
Wiemy już gdzie leży problem. Jednak uniwersalnej metody na offset nie będzie, stany są ruchome i zmieniają położenie w zależności od długości pliku save. Jednak wydaje mi się że znajdę w tym szaleństwie metodę 

Re: Program do edycji save.
Bez jaj, aż takich różnic w wielkości save nie ma prawa być, założę się że robicie save w różnych trybach gry / przy różnej wielkości map.
Ustalcie jakąś prawidłowość albo wyślijcie sobie w końcu ten nieszczęsny save, jakikolwiek, żeby jeden zobaczył co drugi zrobił.
Ustalcie jakąś prawidłowość albo wyślijcie sobie w końcu ten nieszczęsny save, jakikolwiek, żeby jeden zobaczył co drugi zrobił.

Re: Program do edycji save.
Wieczorem podeślę w temat. Dwa sejwy. Ustawione przez Husara.
Re: Program do edycji save.
spokojna głowa, nie śpieszcie się, przecież się nie pali, jak skończycie to skończycie 

Re: Program do edycji save.
Shoya dostał save, kombinuje.
Re: Program do edycji save.
Nu, sejwy od Elmka się pięknie układają w zasadę jaką należy się kierować przy modyfikacji.
Otóż liczymy OD KOŃCA pliku, i tak:
1. ostatnie -61 miejsc w pliku nas kompletnie nie interesuje
2. zaczynamy wklepywać wartość 60EA od -122 miejsca do -62 miejsca
Otóż liczymy OD KOŃCA pliku, i tak:
1. ostatnie -61 miejsc w pliku nas kompletnie nie interesuje
2. zaczynamy wklepywać wartość 60EA od -122 miejsca do -62 miejsca
Re: Program do edycji save.
Ale Shoonay , właśnie takie są różnice w wielkości plików ze stanem gry. Wzięło się to właśnie stąd - wielkość mapy, ilość i poziom przeciwników itd. Za każdym razem gdy będziemy zapisywać (lub nadpisywać) stan gry, wielkość pliku będzie ulegać zmianie, co za tym idzie - zmieni się offset pod którym trzeba wpisać wartości dla poszczególnych surowców... Już to przedwczoraj "rozpracowaliśmy". Elmek się tak nakręcił, że mnie zmaltretował przez Gadu o północy - a rozmawiało się z nim jak z chomikiem napojonym kawą
Twoje spostrzeżenia są dobre, ja akurat znalazłem jeszcze inną metodę na wyszukiwanie.
Dobra, teraz tak: jak problem rozwiązać inaczej
Od razu na wstepie kubeł zimnej wody: uniwersalnej metody na offset nie ma - w związku z tym co napisałem, gdyż za każdym razem wielkość pliku ze stanem gry ulega zmianie. Zwłaszcza gdy nie gracie kampanii tylko tworzycie własną rozgrywkę. Jak więc sobie poradzić i oszukiwać w grze przez save
Nie będę was zanudzał jak i co robiłem, napiszę "łopatologicznie": po pierwsze musimy wiedzieć czego szukać. Po przeprowadzeniu kilkunastu prób, zauważyłem że pewne wartości na starcie są stałe - nie chodzi o ich adresowanie, tylko o ilość surowca. Stałymi wartościami są nasze "miecze i tarcze" i ich proponuję się trzymać. Ilości reszty nie są zapisywane po kolei - są rozrzucone i występują w kombinacjach od kilku do kilkunastu w różnych miejscach w pliku. Postaram się opisać wszystko co i jak, najprościej jak mogę, tak aby nawet laik mógł to w miarę szybko pojąć. Będzie instrukcja z obrazkami
bo niektórzy są pewnie wzrokowcami i powinno im to ułatwić sprawę 
- Uruchamiamy grę, tworzymy rozgrywkę, następnie startujemy.
- Po wybraniu lokacji - stawiamy Zamek.
- Zapisujemy stan gry.
- Otwieramy edytor Hex i wczytujemy plik zapisu gry (w moim przypadku będzie to SAVE1.DS)
- Otwieramy kalkulator i ustawiamy go tak, aby za jego pomocą przeliczać wartości dzięsiętne na szesnastkowe. Tutaj musicie już sobie radzić sami, jednak zapewne użytkownicy Windows jak i Linux będą korzystać z zainstalowanego kalkulatora systemowego, który bez problemowo umożliwia przeliczanie takich wartości.
- Otwieramy widok surowców w Zamku.
- Zwracamy uwagę na ilość przy mieczu i tarczy. Te liczby są przy sobie i powinny występować obok siebie w pliku. Nasze wartości - biorąc za przykład obrazek poniżej - to odpowiednio: 97 i 97 w przeliczeniu na wartość HEX da nam to: 61 00 61 00 (młodszy bajt / starszy bajt).

Takiego ciągu właśnie szukamy w pliku. Powinien być pod koniec, przy ostatnich offset'ach. Ta reguła obowiązuje za każdym razem i przy każdym save'ie.

Teraz: nasze wartości 97 to nie są środkowe tylko końcowe wartości ciągu dla surowców
Plus dla nas - koniec znaleźliśmy
Gdzie więc jest początek
Ano w przeciwieństwie do tego co zakładacie - początkiem nie są wartości 3 i 80 (belki i deski) lecz 8 i 4 (ryby i prosiaki
)
- Przesuwamy kursor w naszym edytorze o 3 offset'y w górę: czyli w naszym przypadku z 10A10h na 109E0h - i co mamy
Wartości: 0800 i 0400 (czyli nasz początek).

Od tego offsetu wpisujemy wartości 60EA przez 26 kolejnych bajtów aż do 10A13h

Zapisujemy zmiany i sprawdzamy czy wszystko działa

Ode mnie na koniec słów kilka:
Offset 109e0h może być domyślnym dla kampanii. W większości wypadków się sprawdza i od niego należy wpisywać wartość 60EA, aczkolwiek polecam to zawsze weryfikować z wartościami dziesiętnymi.
Grzebanie w plikach ze stanami gry nie jest takie straszne jak je diabeł maluje
Zróbcie sobie sami ze 2-3 zapisy i spróbujcie na podstawie własnych danych zmienić wartości w oparciu o to co napisałem. Jeśli jednak ktoś mimo wszystko sobie nie radzicie to pytajcie - od tego jest forum, od tego są ludzie - ktoś na pewno pomoże 
I co najważniejsze: przed jakimikolwiek zmianami róbcie kopię pliku
Tylko prawdziwi twardziele i Chuck Norris nie robią backup'ów 

Twoje spostrzeżenia są dobre, ja akurat znalazłem jeszcze inną metodę na wyszukiwanie.
Dobra, teraz tak: jak problem rozwiązać inaczej




- Uruchamiamy grę, tworzymy rozgrywkę, następnie startujemy.
- Po wybraniu lokacji - stawiamy Zamek.
- Zapisujemy stan gry.
- Otwieramy edytor Hex i wczytujemy plik zapisu gry (w moim przypadku będzie to SAVE1.DS)
- Otwieramy kalkulator i ustawiamy go tak, aby za jego pomocą przeliczać wartości dzięsiętne na szesnastkowe. Tutaj musicie już sobie radzić sami, jednak zapewne użytkownicy Windows jak i Linux będą korzystać z zainstalowanego kalkulatora systemowego, który bez problemowo umożliwia przeliczanie takich wartości.
- Otwieramy widok surowców w Zamku.
- Zwracamy uwagę na ilość przy mieczu i tarczy. Te liczby są przy sobie i powinny występować obok siebie w pliku. Nasze wartości - biorąc za przykład obrazek poniżej - to odpowiednio: 97 i 97 w przeliczeniu na wartość HEX da nam to: 61 00 61 00 (młodszy bajt / starszy bajt).

Takiego ciągu właśnie szukamy w pliku. Powinien być pod koniec, przy ostatnich offset'ach. Ta reguła obowiązuje za każdym razem i przy każdym save'ie.

Teraz: nasze wartości 97 to nie są środkowe tylko końcowe wartości ciągu dla surowców




- Przesuwamy kursor w naszym edytorze o 3 offset'y w górę: czyli w naszym przypadku z 10A10h na 109E0h - i co mamy


Od tego offsetu wpisujemy wartości 60EA przez 26 kolejnych bajtów aż do 10A13h

Zapisujemy zmiany i sprawdzamy czy wszystko działa


Ode mnie na koniec słów kilka:
Offset 109e0h może być domyślnym dla kampanii. W większości wypadków się sprawdza i od niego należy wpisywać wartość 60EA, aczkolwiek polecam to zawsze weryfikować z wartościami dziesiętnymi.
Grzebanie w plikach ze stanami gry nie jest takie straszne jak je diabeł maluje
![Diabełek ]:->](https://forum.thecompany.pl/images/smilies/diabelek.gif)

I co najważniejsze: przed jakimikolwiek zmianami róbcie kopię pliku

Re: Program do edycji save.
Wystawcie mi gdzieś wersje Settlersów na PC w jaką gracie. Jeżeli jest uruchamiana z pod DosBoxa, to spróbuje zrobić do niej Trainera w wolnym czasie. No właśnie, czy probowaliście również oszukiwac grę pod Cheat Engine czy tylko edycją save'ów? Może udało by się oszukiwać pod Cheat Engine, wtedy może napisał bym trainer taki jak do "Horde" pod DosBoxem. Gra "Horde" jest pod adresem: http://staregry.pl/?c=_gv&i=751 - a mój trainer na: http://olesio.eu/horde_trainer_v2.exe i działa on na zasadzie Injekcji biblioteki DLL w proces DosBoxa, przez co operuje na Pointerze dla złota, a energię odczytaje z konkretnego offsetu w pamięci procesu. Natomiast różne przykłady używania Cheat Engine jak i szukanie Pointerów (są to wtedy wartości stałe, bo Pointer to wskaźnik na wartość w pamięci i adres tego wskaźnika często jest stały) są do znalezienia na wielu stronach w Google oraz video poradnikach na YouTube.
EDIT: mam już Settlersów pod DosBoxem, ale nie jestem w tej grze mistrzem - jednak mimo to popróbuje, może uda się napisać Trainera.
EDIT2: działąjący Pointer na rybki znaleziony (wcześniejszy na złoto nie zawsze działał, ten na ryby działa póki co ok). Postaram się znaleźć reszte Pointerów i napisać zgrabny trainer w WinAPI z injekcją DLLki coś na wzór tego do "Horde".
EDIT: mam już Settlersów pod DosBoxem, ale nie jestem w tej grze mistrzem - jednak mimo to popróbuje, może uda się napisać Trainera.
EDIT2: działąjący Pointer na rybki znaleziony (wcześniejszy na złoto nie zawsze działał, ten na ryby działa póki co ok). Postaram się znaleźć reszte Pointerów i napisać zgrabny trainer w WinAPI z injekcją DLLki coś na wzór tego do "Horde".
Re: Program do edycji save.
W końcu jeden się zlitował...Antka męczyłem ale nie dało to rezultatu. Olesio Zrób tylko na miecze i tarcze, reszta nie potrzebna bo i tak się trzeba budować. 

Re: Program do edycji save.
Trainer by się przydał, jak dasz radę - zrób. Ja niestety nie miałem na tyle czasu żeby się bawić Cheat Engine w takie rzeczy, ale wspomniałem Elmkowi że tak możliwość istnieje.
Moim zdaniem jak robić to na całość, a nie tylko na kilka surowców. Powodzenia olesio
Moim zdaniem jak robić to na całość, a nie tylko na kilka surowców. Powodzenia olesio

Re: Program do edycji save.
Tak, postaram się zrobić do wszystkich. Zaraz siadam do wyszukiwania Pointerów. Jak znajde wszystkie to zaczne pisać trainera. Jak skończę i przetestuję to dam Wam znać. Bo jak wspomniałem wcześniej z rybkami już działa w dowolnym trybie gry level po levelu (testowane na szybko z kodami z HOL, bo do wersji PC są takie same jak na Amidze) oraz w trybie gry z kilkoma komputerami. Wcześniej jak znajdywałem Pointer na złoto to był chyba nie zbyt prawidłowy, bo działał tylko dla gry zaczętej w pierwszym levelu.
Re: Program do edycji save.
Nie spałem całą noc, bo mi się nie chciało jakoś, więc siedziałęm nad trainerem i oto jest. The Settlers z DosBoxem jest na:
Wystarczy pobrac, rozpakować i uruchomić run.bat.
Natomiast sam trainer jest na:
Czasami pokazuje error, że wykrył błedne wartości mimo że zamek się już zbudował. Pomaga wtedy pokazanie na chwile statystyk przedmiotów. Ikonki obok pól eydycjnych są aktywne gdy podamy w nie wartość od 0 do 1200 włącznie i możemy dzięki nim ustawić konkretną wartość. Oczywiście na początku należy kliknąc "Get ALL Values". Natomiast przycisk "Set ALL Values" jak nazwa wskazuje ustawi wszystkie przedmioty na ilośc podaną w polach edycyjnych. Przycisk "Change all values to maximum" ustawi tylko zawartośź wszystkich pól edycyjnych na 1200. "About" wiadomo informacja o autorze i trainerze. Jakby były jakieś błedy to proszę dać znać. A i nie ma sensu odpalać trainera dla samego DosBoxa bez uruchomionej konkretnie tej gry, bo spowoduje to wykrzaczenie się trainera (a czsem również DosBox'a). Trainer oparty na zasadzie injekcji DLLki w proces dosbox.exe, dzięki czemu można edytować i odczytywać Pointery na wartości metodą jaką kiedyś wygooglowałem na YoutBue jako przykład pod Delphi. Ikonki są jakie są. Nie wiedziałęm jak zrobić nieaktywne, ale to bylo by dużo przygotowywania raczej i kombinacji, więc zrobiłem tak jak zrobiłem. Trainet zajmuje najmniej ile się dało, ponieważ 38 KB to grafika w postaci ikonek na przyciskach.
Code: Select all
http://olesio.eu/settlers.rar
Wystarczy pobrac, rozpakować i uruchomić run.bat.
Natomiast sam trainer jest na:
Code: Select all
http://olesio.eu/settlers_trainer.exe
Czasami pokazuje error, że wykrył błedne wartości mimo że zamek się już zbudował. Pomaga wtedy pokazanie na chwile statystyk przedmiotów. Ikonki obok pól eydycjnych są aktywne gdy podamy w nie wartość od 0 do 1200 włącznie i możemy dzięki nim ustawić konkretną wartość. Oczywiście na początku należy kliknąc "Get ALL Values". Natomiast przycisk "Set ALL Values" jak nazwa wskazuje ustawi wszystkie przedmioty na ilośc podaną w polach edycyjnych. Przycisk "Change all values to maximum" ustawi tylko zawartośź wszystkich pól edycyjnych na 1200. "About" wiadomo informacja o autorze i trainerze. Jakby były jakieś błedy to proszę dać znać. A i nie ma sensu odpalać trainera dla samego DosBoxa bez uruchomionej konkretnie tej gry, bo spowoduje to wykrzaczenie się trainera (a czsem również DosBox'a). Trainer oparty na zasadzie injekcji DLLki w proces dosbox.exe, dzięki czemu można edytować i odczytywać Pointery na wartości metodą jaką kiedyś wygooglowałem na YoutBue jako przykład pod Delphi. Ikonki są jakie są. Nie wiedziałęm jak zrobić nieaktywne, ale to bylo by dużo przygotowywania raczej i kombinacji, więc zrobiłem tak jak zrobiłem. Trainet zajmuje najmniej ile się dało, ponieważ 38 KB to grafika w postaci ikonek na przyciskach.