Edycja hexów

Dyskusje o modyfikacji do Clash

Moderator: Boghute Ara

User avatar
Mar
Posts: 27
Joined: Monday 01 Mar 2021, 14:26

Re: Clash Deluxe 0.1

Post by Mar »

Boghute Ara wrote: Tuesday 06 Jul 2021, 20:09Czyli jednak adresy nie rozjeżdżają się pomiędzy różnymi wersjami Clasha?
Mod na pewno jest zgodny dla wersji PL z GOG i starej wersji z CD. Więc ja musiałem coś wcześniej pomieszać. Wersja EN z GOG ma już inny plik Clash.exe (mniejszy) i tam może być problem.
Boghute Ara wrote: Tuesday 06 Jul 2021, 20:09Ale przecież ja początek i koniec bloków z adresami każdej jednostki już dawno znalazłem. Poniżej masz całą rozpiskę:
Pasowałoby, tylko co oznacza pierwszy hex.
Boghute Ara wrote: Tuesday 06 Jul 2021, 20:09 Oprócz tego każda jednostka ma również osobny blok z adresami odpowiedzialnymi za bardziej graficzne aspekty, takie jak nazwa, wygląd, opis licencji, itd.:
W obu blokach powtarza się 1 sekwencja np: 60 22 02 00 dla ciężkiej piechoty - może to jakiś kod id/nazwy jednostki.
Boghute Ara wrote: Tuesday 06 Jul 2021, 20:09 Nie wiem co te adresy oznaczają, ale moim zdaniem to raczej nie jest tzw. "tier", czyli hierarchia siły poszczególnych jednostek, choć faktycznie wartości które w nich występują odpowiadają sile większości jednostek, aczkolwiek u niektórych dochodzi do nieścisłości. (...)
Faktycznie, wytestowałem to. Podczas walki AI nie wnika w ten parametr. Chociaż nie sprawdzałem jeszcze czy ma wpływ np. na autowalkę.
Boghute Ara wrote: Tuesday 06 Jul 2021, 20:09A odnośnie wymagań to zastanawiam się czy przypadkiem nie są one zaszyfrowane w blokach z adresami Warsztatu i Kuźni, aczkolwiek tam też kombinowałem na różne sposoby i bez efektów.
Otwarcie .exe w hexach nie gwarantuje że wszystkie stałe tam będą ale sam poszukam jeszcze. W hexach szukałem czegoś co CP i H będą mieć takiego samego względem LP i P. Mają jeden hex 3C zamiast 32 u LP i P ale sprawdziłem i to nie to.

EDIT:
tak, ta wytłuszczona sekwencja odnosi się do id nazwy jednostki:
Image
User avatar
Boghute Ara
Administrator
Posts: 287
Joined: Friday 18 Dec 2015, 21:02
Location: Toruń
Contact:

Re: Clash Deluxe 0.1

Post by Boghute Ara »

Mar wrote: Wednesday 07 Jul 2021, 01:23Mod na pewno jest zgodny dla wersji PL z GOG i starej wersji z CD. Więc ja musiałem coś wcześniej pomieszać. Wersja EN z GOG ma już inny plik Clash.exe (mniejszy) i tam może być problem.
Uff.. to dobrze. :P
Mar wrote: Wednesday 07 Jul 2021, 01:23Pasowałoby, tylko co oznacza pierwszy hex.
Nie mam pojęcia, zresztą nie znam funkcji większości wartości w blokach z adresami jednostek.
Mar wrote: Wednesday 07 Jul 2021, 01:23W obu blokach powtarza się 1 sekwencja np: 60 22 02 00 dla ciężkiej piechoty - może to jakiś kod id/nazwy jednostki.
Tak, to jest najwyraźniej coś na kształt ID jednostek, ale ja akurat założyłem, że mieszczą się one w 6 a nie 8 bajtach, bo te dwa zera na końcu mogą oznaczać coś zupełnie innego, ale może to Ty masz rację? Poniżej pełna rozpiska którą przygotowałem:

Code: Select all

04 0A 32 - Pospolite ruszenie
04 05 32 - Lekka piechota, Pikinier, Budowniczy
04 05 3C - Ciężka piechota, Halabardnik, Łucznik, Kusznik, Leśnik
08 14 46 - Lekka jazda, Rycerstwo, Dragon
08 14 50 - Ciężka jazda
04 05 46 - Muszkieter
01 32 64 - Katapulta, Armata
01 32 50 - Taran
04 05 50 - Góral, Troll, Szkielet
02 0A 50 - Czerw
04 0A 50 - Słoń, Skorpion
04 0A 64 - Mag
04 0A 5A - Duch
02 1E 46 - Orzeł
02 1E 3C - Pegaz
02 1E 50 - Skrzydlak
01 1E 46 - Ważka
02 28 3C - Smok
04 05 00 - Złoto
04 0A 00 - Chłopi
08 14 00 - Dowódca (syn), Dowódca (córka)
Zauważ, że niektóre jednostki mają takie samo ID, co akurat jest bez sensu. :?
Mar wrote: Wednesday 07 Jul 2021, 01:23Otwarcie .exe w hexach nie gwarantuje że wszystkie stałe tam będą ale sam poszukam jeszcze. W hexach szukałem czegoś co CP i H będą mieć takiego samego względem LP i P. Mają jeden hex 3C zamiast 32 u LP i P ale sprawdziłem i to nie to.
Ja również szukam jakichś analogii pomiędzy wartościami u jednostek podobnego typu a ich brakiem u innych. W ten sposób o mały włos nie odkryłem adresów odpowiedzialnych za wymagania, ale jest zbyt dużo nieścisłości które możesz przeanalizować poniżej (jakby co to są dwa pierwsze bajty od prawej licząc od adresów odpowiedzialnych za dostępność jednostek):

Code: Select all

00 - Brak wymagań (Pospolite ruszenie, Lekka piechota, Pikinier, Budowniczy, Ważka)
01 - Kuźnia (Lekka jazda, Ciężka piechota, Halabardnik, Rycerstwo, Dragon, Słoń?, Ciężka jazda)
02 - Warsztat (Łucznik, Góral?, Leśnik, Kusznik, Muszkieter?, Cyklop?)
03 - Brak wymagań (Czerw, Skorpion, Orzeł, Troll, Szkielet, Pegaz, Skrzydlak, Smok)
04 - Warsztat (Taran, Katapulta, Armata?)
05 - Brak wymagań (Duch, Mag)
06 - Brak wymagań (Chłopi, Złoto, Dowódca syn, Dowódca córka)
Jak widać w większości przypadków wartości się zgadzają, ale Słoń nie potrzebuje Kuźni, a Góral, Muszkieter, Cyklop i Armata nie potrzebują Warsztatu, więc to chyba jednak nie to. Zresztą bawiłem się tymi wartości i lipa - bez efektów. :(
Biada Ci!!! Odkopałeś szczątki pradawnego władcy tych ziem (Boghute Ara, lub kogoś z jego rodziny). Czeka Cię teraz surowa kara, gdyż otwierając wieko jamy uwolniłeś klątwę. :twisted:
User avatar
Mar
Posts: 27
Joined: Monday 01 Mar 2021, 14:26

Re: Clash Deluxe 0.1

Post by Mar »

Boghute Ara wrote: Wednesday 07 Jul 2021, 20:41
Mar wrote: Wednesday 07 Jul 2021, 01:23W obu blokach powtarza się 1 sekwencja np: 60 22 02 00 dla ciężkiej piechoty - może to jakiś kod id/nazwy jednostki.
Tak, to jest najwyraźniej coś na kształt ID jednostek, ale ja akurat założyłem, że mieszczą się one w 6 a nie 8 bajtach, bo te dwa zera na końcu mogą oznaczać coś zupełnie innego, ale może to Ty masz rację? Poniżej pełna rozpiska którą przygotowałem:

Code: Select all

04 0A 32 - Pospolite ruszenie
04 05 32 - Lekka piechota, Pikinier, Budowniczy
04 05 3C - Ciężka piechota, Halabardnik, Łucznik, Kusznik, Leśnik
08 14 46 - Lekka jazda, Rycerstwo, Dragon
08 14 50 - Ciężka jazda
04 05 46 - Muszkieter
01 32 64 - Katapulta, Armata
01 32 50 - Taran
04 05 50 - Góral, Troll, Szkielet
02 0A 50 - Czerw
04 0A 50 - Słoń, Skorpion
04 0A 64 - Mag
04 0A 5A - Duch
02 1E 46 - Orzeł
02 1E 3C - Pegaz
02 1E 50 - Skrzydlak
01 1E 46 - Ważka
02 28 3C - Smok
04 05 00 - Złoto
04 0A 00 - Chłopi
08 14 00 - Dowódca (syn), Dowódca (córka)
Zauważ, że niektóre jednostki mają takie samo ID, co akurat jest bez sensu. :?
Mi chodzi o inny fragment, podałem przykład dla CP 60 22 02 00 - inne jednostki (LP, P, H) mają też 22 02 00 tylko ten pierwszy hex inny.

Przykładowo kod 60 22 02 00 występuje w dwóch miejscach w całym pliku:
1) statystyki jednostki u dołu,
2) na górze, po podmienieniu go na kod lekkiej piechoty efekty były takie jak na screenie (poprzedni post stronę wstecz).
Oznacza to, że to oznaczenie 60 22 02 00 (lub 60 22 02) nie jest używane w widocznych hexach żeby określić wymóg kuźni.

Myślę że wymóg kuźni / warsztatu określono inaczej - każda jednostka w Clash ma swoje miejsce na liście jednostek w koszarach (np. CP jest po LP) - myślę że jakiś hex określa pozycje na tej liście i następnie dla poszczególnych pozycji jest wymóg kuźni / warsztatu albo brak. Czyli Posp. ruszenie powinien być 0 albo 1, LP 1 lub 2, CP 2 lub 3 etc. - może tak jest, poszukam jeszcze.
User avatar
Boghute Ara
Administrator
Posts: 287
Joined: Friday 18 Dec 2015, 21:02
Location: Toruń
Contact:

Re: Clash Deluxe 0.1

Post by Boghute Ara »

Mar wrote: Wednesday 07 Jul 2021, 22:51Mi chodzi o inny fragment, podałem przykład dla CP 60 22 02 00 - inne jednostki (LP, P, H) mają też 22 02 00 tylko ten pierwszy hex inny.

Przykładowo kod 60 22 02 00 występuje w dwóch miejscach w całym pliku:
1) statystyki jednostki u dołu,
2) na górze, po podmienieniu go na kod lekkiej piechoty efekty były takie jak na screenie (poprzedni post stronę wstecz).
Oznacza to, że to oznaczenie 60 22 02 00 (lub 60 22 02) nie jest używane w widocznych hexach żeby określić wymóg kuźni.
Ach, no tak, przepraszam, z tego pośpiechu się pomyliłem i wkleiłem nie te wartości ze swoich notatek o które mi chodziło. :oops: Poniżej sugerowana przeze mnie rozpiska ID jednostek:

Code: Select all

Pospolite ruszenie - 30 22 02
Lekka piechota - 54 22 02
Ciężka piechota - 60 22 02
Pikinier - 9C 22 02
Halabardnik - 90 22 02
Lekka jazda - F0 22 02
Ciężka jazda - FC 22 02
Rycerstwo - 08 23 02
Dragon - 14 23 02
Łucznik - 3C 22 02
Kusznik - 78 22 02
Muszkieter - 84 22 02
Katapulta - 6C 22 02
Taran - CC 22 02
Armata - A8 22 02
Leśnik - B4 22 02
Góral - 48 22 02
Budowniczy - C0 22 02
Czerw - 20 23 02
Słoń - 2C 23 02
Cyklop - 38 23 02
Troll - 44 23 02
Skorpion - 5C 23 02
Szkielet - 68 23 02
Mag - 74 23 02
Duch - 80 23 02
Orzeł - 8C 23 02
Pegaz - D8 22 02
Skrzydlak - 98 23 02
Ważka - A4 23 02
Smok - E4 22 02
Złoto - B0 23 02
Chłopi - BC 23 02
Dowódca (syn) - C8 23 02
Dowódca (córka) - C8 23 02
A swoją drogą może ID mieści się tylko w 4 bajtach, więc wartości 02 00 odnoszą się do czegoś jeszcze innego?
Mar wrote: Wednesday 07 Jul 2021, 22:51Myślę że wymóg kuźni / warsztatu określono inaczej - każda jednostka w Clash ma swoje miejsce na liście jednostek w koszarach (np. CP jest po LP) - myślę że jakiś hex określa pozycje na tej liście i następnie dla poszczególnych pozycji jest wymóg kuźni / warsztatu albo brak. Czyli Posp. ruszenie powinien być 0 albo 1, LP 1 lub 2, CP 2 lub 3 etc. - może tak jest, poszukam jeszcze.
To jest całkiem prawdopodobne i jeżeli rzeczywiście tak jest to w takim razie lipa. Dlaczego niektóre rzeczy są tak głupio zakodowane? :roll:
Biada Ci!!! Odkopałeś szczątki pradawnego władcy tych ziem (Boghute Ara, lub kogoś z jego rodziny). Czeka Cię teraz surowa kara, gdyż otwierając wieko jamy uwolniłeś klątwę. :twisted:
User avatar
Mar
Posts: 27
Joined: Monday 01 Mar 2021, 14:26

Re: Clash Deluxe 0.1

Post by Mar »

Szukając wymogu kuźni udało mi się ogarnąć gdzie zakodowane są nazwy jednostek, przy czym sposób kodowania znaków jest ciężki do ustalenia.

Image

Halabardnik stał się "X" w jaki sposób odszukać frazę:

1) wyszukujesz kod jednostki (jednak z zerami) czyli np: 54 22 02 00 dla LP. Odnajdzie Ci 2 rekordy, pierwszy ma postać:

07 00 (...) 07 00 54 22 02 00 07 00

W miejscu "(...)" jest 10 hexów które kodują nazwę jednostki (+ być może coś jeszcze ale ciężko stwierdzić).
User avatar
Boghute Ara
Administrator
Posts: 287
Joined: Friday 18 Dec 2015, 21:02
Location: Toruń
Contact:

Re: Clash Deluxe 0.1

Post by Boghute Ara »

Mar wrote: Thursday 08 Jul 2021, 20:36Halabardnik stał się "X" w jaki sposób odszukać frazę:

1) wyszukujesz kod jednostki (jednak z zerami) czyli np: 54 22 02 00 dla LP. Odnajdzie Ci 2 rekordy, pierwszy ma postać:

07 00 (...) 07 00 54 22 02 00 07 00

W miejscu "(...)" jest 10 hexów które kodują nazwę jednostki (+ być może coś jeszcze ale ciężko stwierdzić).
No to bardzo dziwna sprawa, bo:

po pierwsze: U mnie ten ciąg hexów wygląda następująco (...) 2C 04 02 54 22 02 00 07 00 (...), czyli mam 04 zamiast 07, no chyba, że pomyliłeś się przy spisywaniu?
po drugie: Wydawało mi się, że ciąg hexów w miejscu (...), czyli na lewo od 2C, to ciąg odnoszący się do adresów Pospolitego ruszenia, a nie Halabardnika, więc nie rozumiem w jaki sposób grzebiąc w tych hexach zmieniłeś nazwę tego drugiego na X, skoro jego ciąg znajduje się kawałek dalej, czyli za ciągiem hexów Ciężkiej piechoty i Pikiniera? :shock:
Biada Ci!!! Odkopałeś szczątki pradawnego władcy tych ziem (Boghute Ara, lub kogoś z jego rodziny). Czeka Cię teraz surowa kara, gdyż otwierając wieko jamy uwolniłeś klątwę. :twisted:
Konin3D
Posts: 75
Joined: Saturday 24 Jun 2017, 18:34
Location: Konin
Contact:

Re: Edycja hexów

Post by Konin3D »

Może te dziwne hexy typu 02 00 oznaczają separator pomiędzy poszczególnymi danymi w pliku jak np. w plikach MIDI oznaczane są końce poszczególnych danych?

Czasami w plikach bazodanowych występują regularnie bajty o konkretnej wartości, której nie da się przypisać do konkretnej informacji, bo są właśnie takimi separatorami/informacjami o końcu konkretnych danych.

Warto to uwzględnić, bo może to będzie w miarę dobry trop do odszukania innych danych z Clasha (może i w plikach map coś takiego występuje.


Może spróbuję kiedyś jakiś plik Clasha otworzyć w Hexach, czego nigdy nie robiłem, chociaż Notepad++ umożliwia takie zabawy (pliki midi tak sobie kiedyś przeglądałem)
User avatar
Mar
Posts: 27
Joined: Monday 01 Mar 2021, 14:26

Re: Edycja hexów

Post by Mar »

Boghute Ara wrote: Friday 09 Jul 2021, 12:03 No to bardzo dziwna sprawa, bo:

po pierwsze: U mnie ten ciąg hexów wygląda następująco (...) 2C 04 02 54 22 02 00 07 00 (...), czyli mam 04 zamiast 07, no chyba, że pomyliłeś się przy spisywaniu?
Mój błąd pomyliłem się o jedno 07 00 za dużo wpisałem. Jest tak: 07 00 *10 hexów* *kod jednostki* 07 00
Boghute Ara wrote: Friday 09 Jul 2021, 12:03 po drugie: Wydawało mi się, że ciąg hexów w miejscu (...), czyli na lewo od 2C, to ciąg odnoszący się do adresów Pospolitego ruszenia, a nie Halabardnika, więc nie rozumiem w jaki sposób grzebiąc w tych hexach zmieniłeś nazwę tego drugiego na X, skoro jego ciąg znajduje się kawałek dalej, czyli za ciągiem hexów Ciężkiej piechoty i Pikiniera?
Image

Edytowałem jedno z dwóch "zielonych kółek" przed kodem halabardnika (90 22 02 00) ;)
Konin3D wrote: Friday 09 Jul 2021, 13:41 Może te dziwne hexy typu 02 00 oznaczają separator pomiędzy poszczególnymi danymi w pliku jak np. w plikach MIDI oznaczane są końce poszczególnych danych?

Czasami w plikach bazodanowych występują regularnie bajty o konkretnej wartości, której nie da się przypisać do konkretnej informacji, bo są właśnie takimi separatorami/informacjami o końcu konkretnych danych.

Warto to uwzględnić, bo może to będzie w miarę dobry trop do odszukania innych danych z Clasha (może i w plikach map coś takiego występuje.
Tak, uznałem, że separatorem jest 07 00 ponieważ tylko ono się powtarza w tej części hexów.
Konin3D wrote: Friday 09 Jul 2021, 13:41 Może spróbuję kiedyś jakiś plik Clasha otworzyć w Hexach, czego nigdy nie robiłem, chociaż Notepad++ umożliwia takie zabawy (pliki midi tak sobie kiedyś przeglądałem)
Tylko trzeba mieć wtyczkę do hexów (można pobrać za darmo) jest ona dość toporna (nie można swobodnie szukać po adresie).

EDIT:
btw. te dziwne nazwy powodują jakieś błędy, wpisałem 84 w drugie "kółko" lekkiej piechoty:
Image

EDIT2: z tego co widzę to nazwy są w innym miejscu i można łatwo je edytowąć w Notepad++ pisząc tekst... więc to co znalazłem szukając wymogu kuźni to jakiś zdecydowanie gorszy sposób.
User avatar
Boghute Ara
Administrator
Posts: 287
Joined: Friday 18 Dec 2015, 21:02
Location: Toruń
Contact:

Re: Edycja hexów

Post by Boghute Ara »

Konin3D wrote: Friday 09 Jul 2021, 13:41Może spróbuję kiedyś jakiś plik Clasha otworzyć w Hexach, czego nigdy nie robiłem, chociaż Notepad++ umożliwia takie zabawy (pliki midi tak sobie kiedyś przeglądałem)
Ech, a ten znowu z tym Notatnikiem++. :roll: Kombinujesz jak koń pod górkę. Ściągnij sobie jakiś dedykowany edytor hexów, np. HxD czy jeden z setek innych programów tego typu i działaj. Notatnik++ nie jest zły, ale to bardziej narzędzie do programowania.
Mar wrote: Friday 09 Jul 2021, 17:46Edytowałem jedno z dwóch "zielonych kółek" przed kodem halabardnika (90 22 02 00) ;)
Nic nie rozumiem z tych screenów i nie wiem gdzie mam patrzeć, bo wszystko pozaznaczałeś jakimiś kolorami, które nic mi nie mówią, ale nieistotne. :P
Mar wrote: Friday 09 Jul 2021, 17:46EDIT2: z tego co widzę to nazwy są w innym miejscu i można łatwo je edytowąć w Notepad++ pisząc tekst... więc to co znalazłem szukając wymogu kuźni to jakiś zdecydowanie gorszy sposób.
Tak, nazwy jednostek można znaleźć i pozmieniać tekstowo. Jest nawet Wąż, który ostatecznie nie pojawił się w grze. :)

Ale ID jednostek może służyć do innych celów, np. żeby określić które jednostki pojawiają się na liście po zbudowaniu Warsztatu czy Kuźni, które są losowane w porcie, a które w świętych miejscach. Chociaż gdyby rzeczywiście tak było to te wartości pojawiały by się w pliku więcej niż tylko dwa razy, więc to chyba jednak ślepa uliczka. :(
Biada Ci!!! Odkopałeś szczątki pradawnego władcy tych ziem (Boghute Ara, lub kogoś z jego rodziny). Czeka Cię teraz surowa kara, gdyż otwierając wieko jamy uwolniłeś klątwę. :twisted:
User avatar
Mar
Posts: 27
Joined: Monday 01 Mar 2021, 14:26

Re: Edycja hexów

Post by Mar »

A to nie jest tak, że w porcie pojawiają się losowe jednostki pierwszego poziomu w ilości 3-5 - zawsze tak mi to wyglądało.
Post Reply