[HOW-TO]Visszaálíltó tekercs letiltása

Indította ATAG, 2011-10-17, 19:43:01

2011-10-17, 19:43:01 Utolsó szerkesztés: 2012-01-21, 22:41:33 Szerző: ATAG
A művelet pofon egyszerű, van pár map ID, amin nem lehet használni a tekercset. A core-ból kiollózott kódrészlet alapján készült lista (tiltott mapok): 5,25,45,66,71,72,73,107,108,109,179,180,181,182,183,193,206,208 + "battle arena" +"threeway_war" mapjai.
Van egy másik fajta ellenőrzés is, amit a koordinátákból számol, pl OX mapon is ez alapján tiltja le. Ezzel most nem foglalkozok, jobb nem piszkálni a koordinátákat.


Nincs más dolgunk, mint keresni ezek közül egy használaton kívüli indexet (nálam: 193,206,208) és arra írni át a mapot.

Mivel nem teszteltem, csupán a kódból következtetek, várom a visszajelzéseket :)

UI: rev 2019-ből származik a kódrészlet, amit vizsgáltam. Régebbi core-nál nem garantált, hogy működik a dolog.
Abban sajnos nincs benne az utolsó 3 index :(




rev2019-ben megoldható hogy pl minden 206 fölötti index tiltva legyen.

This difference file is created by The Interactive Disassembler

game_r2019
0004A9F6: 74 7D

gondolom 1765 és 2089-ben is hasonlóan lehet, nyilván más címen kell az ugrást átírni ("ugrás ha egyenlő"-ről "ugrás ha nem kisebb"-re)
IDA-ban a "IS_SUMMONABLE_ZONE" funkciót kell megkeresni és a "cmp ebx,0CEh" utáni ugrást (jz) kell átírni (jge-re). A 2 ugrás hex kódját lásd a fenti dif-ben

A módosított fájlt sem teszteltem még

Régi (404/407) core-nál még nem sikerült semmilyen megoldást találnom. Talán nem is akarok