変更に使用するデータ
The item modifier and stats modifier modifies 1052 bytes
of RAM that contains mostof your character data.
This is the format of the data:
struct character
| BYTE item_count |
000 |
| BYTE unknown1 |
001 |
| BYTE unknown2 |
002 |
| BYTE language |
003 |
| struct item |
004 |
|
|
| WORD unknown1 |
+ 000 |
| BYTE ext_tech_level |
+ 002 |
| BYTE unknown2 |
+ 003 |
| DWORD flags |
+ 004 |
| DWORD item_data1 |
+ 008 |
| DWORD item_data2 |
+ 00C |
| DWORD item_data3 |
+ 010 |
| WORD slot |
+ 014 |
| WORD unknown3 |
+ 016 |
| DWORD item_data4 |
+ 018 |
|
|
| 8C4E5F80 |
| short 攻撃力 |
34C |
| short 精神力 |
34E |
| short 回避率 |
350 |
| short HP基礎 |
352 |
| short 防御力 |
354 |
| short 命中率 |
356 |
| short 運 |
358 |
| short unknown |
35A |
| float unknown3 |
35C |
| float unknown4 |
360 |
| long レベル |
364 |
| long 経験値 |
368 |
| long メセタ |
36C |
| char 名前(1〜4文字目) |
370 |
| char 名前(5〜8文字目) |
374 |
| char 名前(9〜12文字目) |
378 |
| DWORD name_color |
388 |
| char v2_costume_number |
38C |
| BYTE unused[15] |
38D |
| DWORD name_color_checksum |
39C |
| char section_id |
3A0 |
| char class |
3A1 |
| char v2_flags |
3A2 |
| char version |
3A3 |
| long v1_flags |
3A4 |
| short costume |
3A8 |
| short skin |
3AA |
| short ???1 |
3AC |
| short ???2 |
3AE |
| short ???3 |
3B0 |
| short hair_red |
3B2 |
| short hair_green |
3B4 |
| short hair_blue |
3B6 |
| float proportion_x |
3B8 |
| float proportion_y |
3BC |
| short unknown_stuff[36] |
3C0 |
|
|
| char フォイエLv |
408 |
| char ギフォイエLv |
409 |
| char ラフォイエLv |
40A |
| char バータLv |
40B |
| char ギバータLv |
40C |
| char ラバータLv |
40D |
| char ゾンデLv |
40E |
| char ギゾンデLv |
40F |
| char ラゾンデLv |
410 |
| char グランツLv |
411 |
| char デバンドLv |
412 |
| char ジェルンLv |
413 |
| char ザルアLv |
414 |
| char シフタLv |
415 |
| char リューカーLv |
416 |
| char レスタLv |
417 |
| char アンティLv |
418 |
| char リバーサLv |
419 |
| char メギドLv |
41A |
| char 未使用 |
41B |
| >> Barubary |
データの大きさ
BYTE/char = 2100
LONG = 2102
WORD/short = 2101
Explanations:
item_count: number of items
language: language; not affected by game language. This controls the J,
E, etc. you
see in the lobby. 00=Japanese 01=English 02=German 03=French 04=Spanish
items:
ext_tech_level: see tech levels later.
flags:
04: can be equipped but isn't
10: can't be equipped
4C: equipped now
04 and 10 are considered the same by the game.
item_data1: 4th changeable line of item modifier.
item_data2: 3rd changeable line of item modifier.
item_data3: 2nd changeable line of item modifier.
slot: slot number in list (ignored by the game)
item_data4: 1st changeable line of item modifier. (mags only)
HP_materials: The number of HP materials you've used. This number * 2 is
added to
your level's base HP.
TP_materials: The number of TP materials you've used. This number * 2 is
added to
your level's base TP.
level: Level number - 1.
name: Zero-terminated ASCII string. No Shift-JIS allowed.
name_color: Name color in ARGB format. Ver1 = FFFFFFFF, Ver2 = FFFFAE35
v2_costume_number: Used for special costumes (see v2_flags). 00 = Famitsu
editor,
01 = Rico, 02 = Sonic, 03 = Knuckles, 04 = Tails, all others = Famitsu
editor
name_color_checksum: Checksum of name_color. Very complicated. This is
used to try
to prevent users from changing their name colors.
section_id: Section ID in usual order (sum of ASCII characters MOD 10).
class_: Class number. 00 = HUmar, 01 = HUnewearl, ..., 08 = FOnewearl
v2_flags: A set of bit flags.
01 bit: Black section ID.
02 bit: Invalid character class number.
04 bit: Invalid v1_flags.
08 bit: Invalid costume number.
If 02, 08 or both (0A) is used, v2_costume_number happens.
v1_flags: Flags saying class, gender, race... I can't remember exactly
the bits.
But there is a chart on Ayusu already.
costume: Costume number. 00 for androids.
skin: Skin color. On androids, this is the body color.
???1-3: Face Type, Hair Type, ???. I don't remember the order.
hair_red...hair_blue: 0-255 RGB values of your hair color.
proportion_X...Y: Location of + cursor on Proportion screen. Controls character
height and width. 0.0 = top/left, 1.0 = bottom/right.
tech levels: Tech levels minus 1. FF = don't have, 00 = level 1, 01 = level
2...
Storing levels above 15 is strange. Write level 15 (0E) to ???_level.
Then, in the corresponding item slot, put the level minus 15 into ext_tech_level.
For level 28 Foie, do foie_level = 0x0E and items[0].ext_tech_level = 0x0D. This
is
done so that Version 1 doesn't crash seeing Version 2 with tech levels
above 15.
-- NAUSICAA
| ベースポインタ |
8C4E5F84 |
| データの大きさ |
2100 |
| 操作する位置 |
11AC : バトル1位
11AE : バトル2位
11B0 : バトル3位
11B2 : バトル4位
11B4 : 回線切断 |
| バトル1位を50に指定してみよう |
| コード応用例 |
所持金変更コードの下11行を抜粋
| 14A4D086 |
|
| 2100D004 |
<データの大きさ |
14B4D086
402BD001
14C4D086 |
|
| 11AC0009 |
<操作する位置 |
14D4D086
8C011ECC
14E4D086 |
|
| 8C4E5F84 |
<ベースポインタ |
| 14F4D086 |
|
| 00000032 |
<勝率の指定 |
|
│back│top│