小丰 发表于 2011-11-27 17:48:19

太阁立志传2简体中文版数据浅析(转自高亚男)

本帖最后由 小丰 于 2011-11-27 18:02 编辑

声明:
  以下数据仅供参考;
  以下说明针对太阁立志传2简体中文光盘版,硬盘版没测试,繁体版的数据地址绝对不一致,请勿对号入座;
  因为KOEI游戏数据喜欢采用“位域”(请参考C语言常识,不叙述),除了已经测试出来的部分有效位,其他未声明位请勿随意修改。否则引起任何故障,本人不做任何解释与歉意。请勿使用不支持位修改的修改器生成专用修改器去修改标志位。(04年GPoint不小心修改了城市信息中的一个数据位,导致城市信息夹带“围城”标志,就是该问题的范例)
  开发工具:Delphi 7
  调试工具:OllyDbg 1.09


第02楼:人物信息说明。
第03楼:主角及系统信息。
第04楼:城市信息。
第05楼:会战信息。
第06楼:获取武将名称地址(反汇编代码)有些深奥哦,看不懂就不要强看,不过你看懂了,就入门了。
第07楼:太阁立志传2简体中文版内存地址。(本人所找)
第08楼:太阁立志传2简体中文版全功能内存修改器(本人原创)

暂时写到这里。嘿嘿,以后再说。

小丰 发表于 2011-11-27 17:49:05

人物信息
起始地址:$00519868;   
信息长度:$2F
总人数:700,人物信息在BSDATA1.TR2、BSDATA2.TR2中
上场人物:356(ID:0~355)
新武将编号:359
关于脸谱编号:人物在内存的地址有随机性,依靠“脸谱”编号与上述文件中武将信息关联。该编号也是所谓的“父亲”血缘的关系。
关于姓名编号:在内存中是连续自然数,从0开始。
关于技能~年龄字段间信息:应该是承接任务信息。
-------------------------------------------------------------------
0D 42 1E 14 32 5C FF FF 2F 24 40 0D 00 10 00 B2
                                 |----- -----
                                 |姓 名 脸 谱
                                 |
AE 51 00 FD 05 64 64 64 64 64 FF FF 0F FF E2 05
         -- -- -------------- --------
         性 相   能力(5个)   技 能
         格 性
0E 00 00 00 00 00 2E 80 FF FF 11 64 5A 50 32 0D
   -- -- -- -- -- --    ----- -- ----- -- -- --
   aa bb cc dd ee 年    父 亲    体 力 野 亲 大
                  龄    (脸谱)         心 密 名
42 64 00 01 64 FF FF 2F 01 00 0E 00 11 00 B7 8B
-- ----- -- -- -- -- -- -- -- |
居 信 赖 俸 忠 上 司 寿 身 形 |
城    禄 誠    命 份 象 |
//=====================================================
特殊信息说明:
性格:
Bit:    80       40       20       10       08       04       02       01
   -------- -------- -------- -------- -------- -------- -------- --------
       饮酒   物欲   勇气   思考   情理   决断   主义   性格
0: 不喝酒   淡薄名利 缺乏勇气 非常固执 正义不足 优柔寡断 现    实   单纯
1: 喜欢喝酒 不合常理 勇敢的人 随机应变 讲信义   刚毅果断 远大抱负   复杂

相性:
Bit:80   40   20   10   08   04   0201
   ---- ---- ---- ---- ---- ---- --------
                              气质   喜好
0:                            性急   武器
1:                            忠厚   书籍
2:                                  艺术品
3:                                  南蛮物

寿命:
10.生病 80.死亡?
//=====================================================

数据及类型定义:
const
IDI_Game_PersonnelNameSpaceLen   = 7;
IDI_Game_FemalePersonnelNameLen= 5;

IDI_Game_PersonnelInfoCount = 3029;
IDI_Game_PersonnelInfoInvalidID = $FFFF;      // ----------数据待定
IDI_HistoryPersonalityStartID : Word = 0;   // 历史人物起始编号
IDI_HistoryPersonalityCount   : Word= 360;    // 历史人物数

IDI_SpecialPersonalityStartID : Word= $3E8;   // 特殊人物起始编号
IDI_SpecialPersonalityCount   : Word= 30;   // 特殊人物数

IDI_FemalePersonalityStartID: Word= $7D0;   // 姬人物起始编号
IDI_FemalePersonalityCount    : Word= 4;      // 姬人物数

IDI_NPCPersonalityStartID   : Word= $BB8;   // NPC人物起始编号
IDI_NPCPersonalityCount       : Word= 29;   // NPC人物数

IDI_LandladyID      : Word= $BB8;         // 宿屋老板娘
IDI_HorseCoperBossID: Word= $BBA;         // 马贩老板
IDI_GrainShopBossID   : Word= $BBB;         // 粮店老板

IDI_TK2_PersonnelInfoLength = $2F;
type
// 00519868 历史人物信息 len = $2F
TGame_HistoryPersonnelInfo = packed record
    dwID:         Word;               // 姓名编号
            // 姓氏:
            // < $3E8               历史人物$00521AA8 + dwID * 7
            // (>= $3E8 and < $7D0) 特殊人物$005077B0 + (dwID - $3E8) * 7
            // (>= $7D0 and < $BB8) 姬      [$00506C54]
            // (>= $BB8)            NPC       $00507978 + (dwID - $BB8) * 7
            // 名称:
            // < $3E8               历史人物$00520660 + dwID * 7
            // (>= $3E8 and < $7D0) 特殊人物$00507888 + (dwID - $3E8) * 7
            // (>= $7D0 and < $BB8) 姬      $00507960 + dwID * 5
            // (= $BB8)             老板娘    $0050BDB0
            // (<= $BB9 or > $BBB)NPC       [$00506C54]
            // (= $BBA or = $BBB)   马行、米店主人      $0050BDB8
    dwFaceCode:   Word;               // 头像编号FFFF 无效2E9
    Unknow0:      array of Byte;//
    byPersonality1: Byte;               // 性格
//性格:
//Bit:    80       40       20       10       08       04       02       01
//   -------- -------- -------- -------- -------- -------- -------- --------
//       饮酒   物欲   勇气   思考   情理   决断   主义   性格
//0: 不喝酒   淡薄名利 缺乏勇气 非常固执 正义不足 优柔寡断 现    实   单纯
//1: 喜欢喝酒 不合常理 勇敢的人 随机应变 讲信义   刚毅果断 远大抱负   复杂

    byPersonality2: Byte;               // 相性
//相性:
//Bit:80   40   20   10   08   04   0201
//   ---- ---- ---- ---- ---- ---- --------
//                              气质   喜好
//0:                            性急   武器
//1:                            忠厚   书籍
//2:                                  艺术品
//3:                                  南蛮物
    byForces:       array of Byte;// 能力:统御、武力、内政、外交、魅力
    bySkills:       array of Byte;// 技能:口才、马术、算术、剑术、忍术、
                                          //       兵法、洋枪、筑城、礼法、茶道
    Unknow1:      array of Byte;//
    byAge: Byte;                        // ?年龄
                                          // ?生年
    Unknow2:      Byte;
    dwFather:       Word;               // 父亲
    Unknow3:      Byte;
    byVim:          array of Byte;// 体力:Max、当前值
    byAspiring:   Byte;               // 野心
    byBosom:      Byte;               // 亲密
    byGroup:      Byte;               // 势力    31 无效
    byCity:         Byte;               // 居城
    dwTrust:      Word;               // 信赖
    bySalary:       Byte;               // 俸禄
    byLoyal:      Byte;               // 忠诚
    dwBoss:         Word;               // 家臣
    byDead:         Byte;               // 寿命
    byStation:      Byte;               // 身份
    byFigure:       Byte;               // 形象
end;
//=====================================================

关于人物名称:
这是一个复杂的地址计算,反汇编游戏之后才弄明白,太恶劣了。
GameAddress 类中常量定义
FHistoryPersonalityName1    := $00521AA8;   // 人物姓氏地址   ==========
FSpecialPersonalityName1    := $005077B0;
FFemalePersonalityName1   := $00506C54;       // 姬 无姓氏
FNPCPersonalityName1      := $00507978;

FHistoryPersonalityName2    := $00520660;   // 人物名称地址   ==========
FSpecialPersonalityName2    := $00507888;
FFemalePersonalityName2   := $00507960;
FNPCPersonalityName20       := $0050BDB0;
FNPCPersonalityName21       := $00506C54;   // 无名 NPC
FNPCPersonalityName22       := $0050BDB8;
人名地址获取代码:
function TPersonnelInfos.GetNameAddress
(Index: Word): TGame_PersonnelNameAddress;
// 获取人物名称地址
begin
if Index = IDI_Game_PersonnelInfoInvalidID then
begin
    Result.Address := $0;
    Result.Address := $0;
end
else
if (Index >= IDI_HistoryPersonalityStartID)
    and (Index < IDI_HistoryPersonalityStartID + IDI_HistoryPersonalityCount) then
begin // 历史人物
    Result.Address := Self.GameAddress.HistoryPersonalityName1
      + Index * IDI_Game_PersonnelNameSpaceLen;

    Result.Address := Self.GameAddress.HistoryPersonalityName2
      + Index * IDI_Game_PersonnelNameSpaceLen;
end
else if (Index >= IDI_SpecialPersonalityStartID)
    and (Index < IDI_SpecialPersonalityStartID + IDI_SpecialPersonalityCount) then
begin // 特殊人物
    Result.Address := Self.GameAddress.SpecialPersonalityName1
      + (Index - IDI_SpecialPersonalityStartID) * IDI_Game_PersonnelNameSpaceLen;

    Result.Address := Self.GameAddress.SpecialPersonalityName2
      + (Index - IDI_SpecialPersonalityStartID) * IDI_Game_PersonnelNameSpaceLen;
end
elseif (Index >= IDI_FemalePersonalityStartID)
    and (Index < IDI_FemalePersonalityStartID + IDI_FemalePersonalityCount) then
begin // 姬
    Self.GetGameMemory(Self.GameAddress.FemalePersonalityName1,
      @Result.Address, SizeOf(Result.Address));

    Result.Address := Self.GameAddress.FemalePersonalityName2
      + (Index - IDI_FemalePersonalityStartID) * IDI_Game_FemalePersonnelNameLen;
end
else
begin// NPC
    Result.Address := Self.GameAddress.NPCPersonalityName1
      + (Index - IDI_NPCPersonalityStartID) * IDI_Game_PersonnelNameSpaceLen;

    if Index = IDI_LandladyID then// 宿屋老板娘
      Result.Address := Self.GameAddress.NPCPersonalityName20
    else if (Index = IDI_HorseCoperBossID) or (Index = IDI_GrainShopBossID) then
      // 马贩老板、粮店老板
      Result.Address := Self.GameAddress.NPCPersonalityName22
    else
      Self.GetGameMemory(Self.GameAddress.NPCPersonalityName21,
      @Result.Address, SizeOf(Result.Address));
end;
end;

小丰 发表于 2011-11-27 17:49:43

主角及系统信息:

GameAddress 类中常量定义
FLeadingActorInfo         := $00516610;   // 主角信息===========
FCurrentTime                := $005205F0;
数据及类型定义:
// 00516610 主角基本信息
TGame_LeadingActorInfo = packed record
    Unknow0         : array of Byte; //
    LeadingActorID: Word;               // 主角编号
    Unknow1         : array of Byte;//
    Money, Bank   : Word;               // 现金、存款
    RetinueID       : Word;               // 随从
    Unknow2         : array of Byte;//
    SpecialGoods    : Word;               // 特殊物品:000F浊酒、00F0铭酒、0F00南蛮酒、F000药。
                                    // 嘿嘿,这里的数据很有意思,有个BUG,当你的物品数量超过11,将不会产生消耗。
    Unknow3         : array of Byte;//
end;
const
IDI_GameBaseYear = 1560;
type
// 时间及天气 005205F0
TGame_CurrentTime = record    //游戏时间 Len = 4
    Year    : Byte;   // 年份 = 内存值 + 1560
    Month   : Byte;   // 月份 = 内存值 + 1
    Day   : Byte;   // 日期 = 内存值 + 1
    Hour    : Byte;   // 小时
    Weather : Byte;   // 天气:0、晴;1、阴;2、雨;3、雪
end;

//================================================
嘿嘿,关键数据信息:

起始地址 + 偏移量标志位
// 00517728 +9 80 惠琼的信
// 00517734 +9 80 惠琼的信
// 00517740 +9 80 日乘的信
// 0051774C +9 80 日乘的信
// 00517758 +9 80 绍喜的信
// 00517764 +9 80 绍喜的信

// 00517770 +9 80 弗洛伊斯的介绍信
// 0051777C +9 80 阿尔梅伊达的介绍信

// 00517788 +9 80 南蛮酒标志
// 00517794 +9 80 铭酒标志
// 005177A0 +9 80 浊酒标志
// 005177AC +9 80 药标志

// 005177B8 +9 80 绍喜的墨迹
// 005177C4 +9 80 惠琼的墨迹
// 005177D0 +9 80 特殊宝物0014
// 005177DC +9 80 特殊宝物0015
// 005177E8 +9 80 特殊宝物0016
// 005177F4 +9 80 特殊宝物0016
说明:00517788 +9 = 00517791这个地址如果最高位置1,则表示有该物品,系统显示该物品,否则不显示 。
这就是为什么你改了酒的数量,结果看不见酒,改了药的数量,看不见药。

小丰 发表于 2011-11-27 17:50:19

城市信息:

信息起始地址:$0051EB88;      
名称起始地址:$00506FC0
信息长度:$1F
总数:200

4A BB 51 00 9D F4 51 00 11 0D 0B 00 1E 9D C8 64
                        -- 产 ----- 俸 防 士 支
                        国 量 城 主 禄 御 气 持

FC 44 A0 73 BA 69 D8 01 C7 00 BC 0C 05 FF FF
----- ----- ----- ----- ----- 训 状
士 兵 资 金 军 粮   枪军 马 练 态

状态值:
    00 (0000 0000) = 城市规模(小)(最大俸禄 0001 )
    01 (0000 0001) = 城市规模(中)(最大俸禄 0340 )
    02 (0000 0010) = 城市规模(大)(最大俸禄 0680 )
    03 (0000 0011) = 城市规模(大)(最大俸禄 0680 )
    04 (0000 0100) = 城市规模(大)(最大俸禄 0680 )
    05 (0000 0101) = 城市规模(巨)(最大俸禄 1020 )
    06 (0000 0110) = 城市规模(巨)(最大俸禄 1020 )
    07 (0000 0111) = 城市规模(巨)(最大俸禄 1020 )

状态标志:
    10 = 围城

数据定义:
const
IDI_Game_CityInfoCount = $C8;
IDI_Game_CityInfoInvalidID = $FF;
IDI_Game_CityInfoLength = $1F;
// 城市信息起始地址 = 0051EB88
// 城市名称起始地址 = 00506FC0
// 特殊城市:
//    48 稻叶山PUSH 04(0000 0100)005203C0 + 00 + 02( and 10 <> 0)
//                               and 005203C0 + 00 + 0A( and 10 = 0)005076C8
//    66 目加田PUSH 08(0000 1000)005203C0 + 01 + 02( and 01 <> 0)
//                               and 005203C0 + 01 + 0A( and 01 = 0)005076D1
//    64 今滨    PUSH 0F(0000 1111)005203C0 + 01 + 02( and 01 <> 0) 005076DA
//    7C 本愿寺PUSH 26(0010 0110)005203C0 + 04 + 02( and 10 <> 0) 005076E3
type
TGame_CityInfo = packed record
    Unknow0   : LongWord;   // 指针
    Unknow1   : LongWord;   // 指针
    ZoneID      : Byte;       // 国
    Yield       : Byte;       // 产量
    MasterID    : Word;       // 城主
    Salary      : Byte;       // 俸禄
    Defence   : Byte;       // 防御度
    Morale      : Byte;       // 士气
    ApprovalRate: Byte;       // 支持率
    Soldier   : Word;       // 士兵
    Bankroll    : Word;       // 资金
    Provisions: Word;       // 军粮
    Firelock    : Word;       // 火枪
    Horse       : Word;       // 军马
    Training    : Byte;       // 训练度
    State       : Byte;       // 状态
    Unknow2   : Byte;       // 未知
end;

特殊说明:
有四个城市名字会在游戏中变动,反汇编看起来很乱,可以参考上面的一些反汇编信息。暂不做特殊论断。

小丰 发表于 2011-11-27 17:50:53

会战信息
LEN = 30H
我方地址:00513555

04 05 04 05 00 0D 00 07 00 A4 00 3B 01 56 01 C8
               ----------------------------- --
                   五个武将
00 F0 00 F0 00 F0 00 F0 00 20 03 00 00 00 00 00
-------------------------- --------------------
   五个兵力               五个功勋
00 00 00 C8 C8 1C 02 02 02 02 02 3F 8F 00 00 00
-------- ----- -- -------------- -- -- -- -- --
五个功勋 士 气      五个兵种               ?


不做叙述!

小丰 发表于 2011-11-27 17:51:25

获取武将名称地址(反汇编代码):
有些深奥哦,看不懂就不要强看,不过你看懂了,就入门了。

=============================================================================
004755DA   . 6A 00          PUSH 0
004755DC   . 68 F8000000    PUSH 0F8
004755E1   . E8 FAC50300    CALL TAIK2W95.004B1BE0
004755E6   . 8BCF         MOV ECX,EDI
004755E8   . E8 C36C0200    CALL TAIK2W95.0049C2B0    ;------- 取姓氏地址
004755ED   . 50             PUSH EAX
004755EE   . E8 4D9A0200    CALL TAIK2W95.0049F040    ;------- 取姓氏
004755F3   . 83C4 04      ADD ESP,4
004755F6   . 68 A8965100    PUSH TAIK2W95.005196A8
004755FB   . E8 C0690700    CALL TAIK2W95.004EBFC0
00475600   . 83C4 04      ADD ESP,4
00475603   . 8BCF         MOV ECX,EDI
00475605   . E8 066D0200    CALL TAIK2W95.0049C310    ;------- 取名字地址
0047560A   . 50             PUSH EAX
0047560B   . E8 609A0200    CALL TAIK2W95.0049F070    ;------- 取名字

=============================================================================
;------- 取姓氏地址
0049C2B0/$ 66:8B01      MOV AX,WORD PTR DS:
0049C2B3|. 66:3D E803   CMP AX,3E8                  ;< $3E8            历史人物$00521AA8 + dwID * 7
0049C2B7|. 73 12          JNB SHORT TAIK2W95.0049C2CB
0049C2B9|. 25 FFFF0000    AND EAX,0FFFF
0049C2BE|. 8BC8         MOV ECX,EAX
0049C2C0|. C1E0 03      SHL EAX,3
0049C2C3|. 2BC1         SUB EAX,ECX
0049C2C5|. 05 A81A5200    ADD EAX,TAIK2W95.00521AA8
0049C2CA|. C3             RETN
0049C2CB|> 66:3D D007   CMP AX,7D0                  ;(>= $3E8 and < $7D0) 特殊人物$005077B0 + (dwID - $3E8) * 7
0049C2CF|. 73 17          JNB SHORT TAIK2W95.0049C2E8
0049C2D1|. 25 FFFF0000    AND EAX,0FFFF
0049C2D6|. 2D E8030000    SUB EAX,3E8
0049C2DB|. 8BC8         MOV ECX,EAX
0049C2DD|. C1E0 03      SHL EAX,3
0049C2E0|. 2BC1         SUB EAX,ECX
0049C2E2|. 05 B0775000    ADD EAX,TAIK2W95.005077B0
0049C2E7|. C3             RETN
0049C2E8|> 66:3D B80B   CMP AX,0BB8                   ;(>= $7D0 and < $BB8)         $00506C54
0049C2EC|. 73 06          JNB SHORT TAIK2W95.0049C2F4
0049C2EE|. A1 546C5000    MOV EAX,DWORD PTR DS:
0049C2F3|. C3             RETN
0049C2F4|> 25 FFFF0000    AND EAX,0FFFF               ;(>= $BB8)             NPC      $00507978 + (dwID - $BB8) * 7
0049C2F9|. 2D B80B0000    SUB EAX,0BB8
0049C2FE|. 8BC8         MOV ECX,EAX
0049C300|. C1E0 03      SHL EAX,3
0049C303|. 2BC1         SUB EAX,ECX
0049C305|. 05 78795000    ADD EAX,TAIK2W95.00507978
0049C30A\. C3             RETN
=============================================================================
;------- 取名字地址
0049C310/$ 66:8B01      MOV AX,WORD PTR DS:
0049C313|. 66:3D E803   CMP AX,3E8                  ;< $3E8            历史人物$00520660 + dwID * 7
0049C317|. 73 12          JNB SHORT TAIK2W95.0049C32B
0049C319|. 25 FFFF0000    AND EAX,0FFFF
0049C31E|. 8BC8         MOV ECX,EAX
0049C320|. C1E0 03      SHL EAX,3
0049C323|. 2BC1         SUB EAX,ECX
0049C325|. 05 60065200    ADD EAX,TAIK2W95.00520660
0049C32A|. C3             RETN
0049C32B|> 66:3D D007   CMP AX,7D0                  ;(>= $3E8 and < $7D0) 特殊人物$00507888 + (dwID - $3E8) * 7
0049C32F|. 73 17          JNB SHORT TAIK2W95.0049C348
0049C331|. 25 FFFF0000    AND EAX,0FFFF
0049C336|. 2D E8030000    SUB EAX,3E8
0049C33B|. 8BC8         MOV ECX,EAX
0049C33D|. C1E0 03      SHL EAX,3
0049C340|. 2BC1         SUB EAX,ECX
0049C342|. 05 88785000    ADD EAX,TAIK2W95.00507888
0049C347|. C3             RETN
0049C348|> 66:3D B80B   CMP AX,0BB8                   ;(>= $7D0 and < $BB8)姬       $00507960 + (dwID - $7D0) * 5
0049C34C|. 73 12          JNB SHORT TAIK2W95.0049C360
0049C34E|. 25 FFFF0000    AND EAX,0FFFF
0049C353|. 2D D0070000    SUB EAX,7D0
0049C358|. 8D8480 6079500>LEA EAX,DWORD PTR DS:
0049C35F|. C3             RETN
0049C360|> 25 FFFF0000    AND EAX,0FFFF               ;(>= $BB8)            
0049C365|. 3D B80B0000    CMP EAX,0BB8                  ;(= $BB8)            
0049C36A|. 74 1A          JE SHORT TAIK2W95.0049C386
0049C36C|. 3D B90B0000    CMP EAX,0BB9                  ;(<= $BB9)
0049C371|. 7E 0D          JLE SHORT TAIK2W95.0049C380
0049C373|. 3D BB0B0000    CMP EAX,0BBB                  ;(> $BBB)
0049C378|. 7F 06          JG SHORT TAIK2W95.0049C380
0049C37A|. B8 B8BD5000    MOV EAX,TAIK2W95.0050BDB8   ;(= $BBA or = $BBB)   主人      $0050BDB8
0049C37F|. C3             RETN
0049C380|> A1 546C5000    MOV EAX,DWORD PTR DS: ;(<= $BB9 or > $BBB)NPC         $00506C54
0049C385|. C3             RETN
0049C386|> B8 B0BD5000    MOV EAX,TAIK2W95.0050BDB0   ;(= $BB8)             老板娘      $0050BDB0
0049C38B\. C3             RETN

小丰 发表于 2011-11-27 17:52:04

更换主角:00516624
更换主角身份:00516638


主角所持金:0051662E
家中存款:00516630


京镇画师画画期限:0051793E
界镇画师画画期限:0051794A
国友善兵卫造铁炮期限:005178BA
芝迂仙斋造铁炮期限:005178AE
八板清定造铁炮期限:005178A2


浊酒、铭酒数量:00516636
南蛮酒、药数量:00516637


购买米/马/枪数量:00516616
预算资金/修复城池天数:00516614
任务修改:00516610


特权值:00513C18
月/日:005205F1/005205F2


野战行动点数:00513927
攻城野战我方训练度:005185F7
攻城野战我方总大将士气:00513573
攻城野战我方第二分队士气:005135A3
攻城野战我方第三分队士气:005135D3
攻城野战我方第四分队士气:00513603
攻城野战我方第五分队士气:00513633


攻城野战敌方总大将士气:00513663
攻城野战敌方第二分队士气:00513693
攻城野战敌方第三分队士气:005136C3
攻城野战敌方第四分队士气:005136F3
攻城野战敌方第五分队士气:00513723


攻城不会疲劳:00513575/005185F8

攻城易攻陷:00513A79/00513A7E/00513A83/00513A88/00513A8D/00513A92/00513A97/00513A9C/00513AA1/00513AA6/00513AAB/00513AB0/00513AB5/00513ABA/00513ABF

小丰 发表于 2011-11-27 18:01:53

点此下载修改器
http://tt.a.5d6d.com/userdirs/3/0/cheatmaker/attachments/month_1110/11100820291ee1596cd50f5f9b.gif

cpc2010 发表于 2011-12-3 23:41:22

楼主威武啊~~~~~~

19751021zh 发表于 2011-12-8 09:21:11

楼主威武!!

yj19780722 发表于 2012-4-30 21:16:21

不错的游戏啊 谢谢楼主分享
页: [1]
查看完整版本: 太阁立志传2简体中文版数据浅析(转自高亚男)