|
Website Forum |
|||
|
Main
Rh-Allgemein
Hacks
Tutorials
Downloads
|
(C) 2002 by F-Zero(devzerox@gmx.de) & Tauwasser THX @Tauwasser: - für Das Offset, ohne das ich die Daten nie gefunden hätte. - Er hat herausgefunden, wo den Maps die Segmente zugeteilt werden!! Dieses Tut wäre ohne Tau niemals möglich gewesen!!! Wichtig: Dieses ist nun wirklich zu einfach, als dass man dazu ein Tool bräuchte. Wer ein Tool will, soll erstmal richtig hacken lernen! Ich verbiete es, hierfür ein Tool zu schreiben. Nun zur Sache: Diesmal fange ich mal mit dem, was Tauwasser herausgefunden hat, an: Jeder(!) Map kann ein Angelpokemon-Segment zugeordnet werden, und zwar im Mapheader. Genauer gesagt: Im letzten Byte des Mapheaders (Der, der auch die Musik etc. enthält) (Zur Errinnerung: Der Mapheader ist 9 Bytes lang und beginnt meistens mit 25h) Bei Maps, die kein Wasser haben, ist dieser Index meistens 01. Nun zu den Segmenten selbst: Die Table mit den Segmenten beginnt bei: 92404 (Hex) Das erste Segment dieser Table hat den Index 01. Standardmäßig geht die Zählung bis 0D 00 als Index bedeutet, dass keine Angelpokemon vorhanden sind. Die Table enthält beliebig viele Segmente nach folgendem Muster: [80][Angel][Profiangel][Superangel] (Bis auf 80 sind alles 2-Byte Pointer auf die jeweiligen Fangdaten!) Die Fangdaten: Die Fangdaten enthalten mehrere Segmente, wovon jedes jeweils ein Pokemon festlegt: [Warscheinlichkeit][Pokemon (2-Byte!)] Die Pokemon sind dabei nach ihrer Warscheinlichkeit aufsteigend sortiert. Das mit der Warscheinlichkeit funktioniert so: Das Rom generiert einen Zufallswert zwischen 00 und FF Das erste Segemnt, dessen Warscheinlichkeit größer/gleich dem Zufallswert ist, wird genommen. Das letzte Segment muss daher die Warscheinlichkeit FF haben. Also z.B.: [B3][Pokemon][D9][Pokemon][FF][Pokemon] Nun die Pokemon-Definitionen: Davon gibt es zwei Typen: Den einen, der ein Pokemon für alle Tageszeiten und dessen Level bestimmt: [Pokemon-Nummer][Level] Und den anderen, der zwischen Morgens+Tagsüber und Nachts unterscheidet: [00][Verweis-Index] Die Verweise: Jeder Verweis stellt einen Index in der Tabelle bei 925EB dar. Die Nummer des ersten Table-Eintrags ist diesmal 00 (Standard bis 15h) Jeder Verweis ist nach folgendem Muster aufgebaut: [Pokemon-Nummer Morgens/Tagsüber][Level Morgens/Tagsüber] [Pokemon-Nummer Nachts][Level Nachts] (je 1 Byte) So, das sollte alles sein. Wenn ihr Fragen habt, wisst ihr ja, welche Möglichkeiten ihr habt^^ |
||