資訊修改
一、總體資料
- PAL1.TAB:內定256色調色盤,依次為RGB,最大值3Fh
- MONEY.DDT:資訊集結檔(之後的檔案均集結在此檔裡)
檔案數目:4 byte
檔案指示資訊:每個16 byte
檔名:12 byte,可能不含NULL字元,最後一個為"---.---",不使用
檔案內容開始位置:4 byte,由前後位置可得知檔案內容大小
各檔案內容
二、圖像部份
- CMP影像檔
水平大小:2 byte
垂直大小:2 byte
影像資料:256色CMP影像壓縮資料
調色盤資料(不一定有):256x3 byte,依次為rgb,最大值3Fh
- ICO圖像集(ITEM.ICO各物品圖為48x48,其餘與地圖有關的均為64x80)
影像資料:256色ICO影像資料(不一定壓縮),由TYP圖像指標檔指向
- TYP圖像指標檔:指向ICO圖像集
指標資訊:8 byte一組
影像資料大小:4 byte,若與原始影像資料大小相同,表示影像資料未壓縮
影像資料開始位置:4 byte
三、地圖資料部份
- MAP0?.MAP:地圖地形資料檔
地圖實際水平大小:4 byte
地圖實際垂直大小:4 byte
地圖地形資料編號:2 byte一個,共64x64個,分別指向MAP0?.ICO的第幾個圖
地圖初始顯示左上角位置x,y:各4 byte
- MAP0?.CHG:地形意義檔
地形意義編號:每個4 byte,對應各地形資料編號實際的意義編號。請參見地點列表。
- MAP0?.CHR:各章人物初值,格式請參見存檔修改
- MAP0?.DAT:各章領地初值,格式請參見存檔修改
- 各角色主城的填入,係找領地位置對應的地形資料編號(MAP0?.MAP),再轉譯為地形意義編號(MAP0?.CHG),找出為E6h~E9h者
- 領地守軍在進入章節時,自動隨機產生,人數與等級請參見各地圖之說明(相關資料在MONEY.EXE裡)
四、非地圖資料部份
- ITEM.DAT:物品資訊檔,每個2Ah=42 byte
0000h 物品編號:4 byte
0004h 物品名稱:12 byte
0010h 物品形態:1 byte,1=武器,2=護甲,3=盾牌,4=頭盔,5=項鍊,6=鞋子…
0011h 允許裝備人員:1 byte,08h=希洛,04h=明,02h=凱麗,01h=雪莉
0012h AP增值:4 byte
0016h HIT增值:4 byte
001Ah DP增值:4 byte
001Eh EV增值:4 byte
0022h 價格:4 byte
0026h 商店可販賣的關卡:4 byte,08h=第1關,04h=第2關,02h=第3關,01h=第4關
註:道具與卡片的用途是直接寫死在程式裡,無法由此資訊檔變更。
- SPELL.DAT:主角法術資訊檔,每個14h=20 byte
0000h 主角法術編號:4 byte
0004h 主角法術名稱:12 byte
本檔案資料不使用,實際對應至怪物法術編號=主角法術編號+50(32h)
- SPELL2.DAT:怪物法術資訊檔,每個15h=21 byte
0000h 怪物法術編號:4 byte
0004h 怪物法術名稱:12 byte
0010h 法術型態:1 byte,00=物理 01=火系 02=冰系 03=雷系 04=法術 05=毒 06=炎 07=冰 08=特殊 0A=醫療
0011h 對象:1 byte,0=我方,1=敵方,5=我方狀態
0012h 範圍:1 byte,0=全部,1=單人,2=自己
0013h 不明:1 byte
0014h 耗用法力:1 byte
註:各法術的實際作用均直接寫死在程式裡,分支資訊在EMONEY.EXE位置033018h處(修改無效,必須修改定位表)。法術編號0即一般攻擊。
018792 (1EF792) 00
01879B (1EF79B) 01 致命一擊
018833 (1EF833) 02 盜取物品
01885A (1EF85A) 03 幻影斬
018862 (1EF862) 04 隱身
01888C (1EF88C) 05 隱忍雷爆
01889C (1EF89C) 06 治癒術
0188B4 (1EF8B4) 07 聖光術
0189D3 (1EF9D3) 08 火球術
0188D9 (1EF8D9) 09 轉移
01892E (1EF92E) 0A 點石成金術
01897D (1EF97D) 0B 分解術
0189D3 (1EF9D3) 0C 靈獸召喚
0189CC (1EF9CC) 0D 神恩術
0189E2 (1EF9E2) 0E 聖劍斬
0189EF (1EF9EF) 0F 醫療術
01879B (1EF79B) 10 飛鎚攻擊
0188C9 (1EF8C9) 11 電擊
0189FB (1EF9FB) 12 迷魂琴音
01879B (1EF79B) 13 迴旋擊
0189D3 (1EF9D3) 14 再生
018A47 (1EFA47) 15 巨角撞擊
01879B (1EF79B) 16 破空斬
018A54 (1EFA54) 17 狂龍擊
0189D3 (1EF9D3) 18 噴火
01879B (1EF79B) 19 投擲巨石
0188C9 (1EF8C9) 1A 震地擊
01879B (1EF79B) 1B 鐵球投擲
0188C9 (1EF8C9) 1C 火炎攻擊
018A62 (1EFA62) 1D 尾刺
01888C (1EF88C) 1E 羽鏢
01879B (1EF79B) 1F 鑽地攻擊
018A82 (1EFA82) 20 毒氣攻擊
018AB1 (1EFAB1) 21 吞沒
0189D3 (1EF9D3) 22 噴火
01879B (1EF79B) 23 頭斧迴旋斬
018B0E (1EFB0E) 24 屍蟲攻擊
0189D3 (1EF9D3) 25 靈體攻擊
01888C (1EF88C) 26 毒蛛攻擊
01879B (1EF79B) 27 肋骨刃
01888C (1EF88C) 28 凍氣
018B1E (1EFB1E) 29 巨大蝙蝠
018B26 (1EFB26) 2A 吸血
0188A3 (1EF8A3) 2B 魔咒
0188C9 (1EF8C9) 2C 群魔亂舞
018B43 (1EFB43) 2D 魔體轟
018B4F (1EFB4F) 2E 鬼哭神號
018BA1 (1EFBA1) 2F 地獄爆炎
018BAD (1EFBAD) 30 冰雪風暴
018BAD (1EFBAD) 31 雷電怒濤
01879B (1EF79B) 32
018BB7 (1EFBB7) 33 爆音擊
018BC9 (1EFBC9) 34 破空刃
018BD5 (1EFBD5) 35 龍神斬
018BB7 (1EFBB7) 36 熾焰閃
018C3A (1EFC3A) 37 炎龍破
018BE3 (1EFBE3) 38 冰霜箭
018BF1 (1EFBF1) 39 暴風雪
018BFF (1EFBFF) 3A 狂雷擊
018C0B (1EFC0B) 3B 天雷轟
018C17 (1EFC17) 3C 治癒
018C20 (1EFC20) 3D 醫療
018C33 (1EFC33) 3E 回復
018C17 (1EFC17) 3F 神恩
018C4B (1EFC4B) 40 解毒
018C4B (1EFC4B) 41 解麻
018C57 (1EFC57) 42 倍力
018C7B (1EFC7B) 43 必中
018C9F (1EFC9F) 44 鐵壁
018CC3 (1EFCC3) 45 虛幻
018CE7 (1EFCE7) 46 神力
- MONSTER.DAT:怪物資訊檔,每個AAh=170 byte
0000h 怪物編號:4 byte
0004h 怪物名稱:14 byte
0010h 不明:2 byte
0012h 記號字串:4 byte (只有2 byte英文字母)
0016h 怪物類別:4 byte,0=人類,1=類人族,2=獸類,3=魔族
001Ah 不明:4 byte,固定0
001Eh 等級(LV):4 byte
0022h 生命(HP):12 byte,目前生命、H1、H0,最大生命=H1+H0*(LV-1)
002Eh 法力(MP):12 byte,目前法力、M1、M0,最大法力=M1+M0*(LV-1)
003Ah 力量(STR):8 byte,STR1、STR0 = STR1+STR0*(LV-1)
0042h 敏捷(DEX):8 byte,DEX1、DEX0 = DEX1+DEX0*(LV-1)
004Ah 智慧(INT):8 byte,INT1、INT0 = INT1+INT0*(LV-1) (實際上未使用)
0052h 運氣(LUK):4 byte (實際上未使用)
0056h 攻擊力(AP):4 byte = STR
005Ah 準確度(HIT):4 byte = DEX+HIT1
005Eh 防禦力(DP):4 byte = STR/2
0062h 閃避力(EV):4 byte = DEX/2+EV1
0066h 一般攻擊次數:4 byte,1=一次,2=兩次,5=攻擊全體
006Ah 附加準確度(HIT1):4 byte
006Eh 附加閃避力(EV1):4 byte
0072h 法術編號:3x4 byte,0表沒有
007Eh 施展法術的最低等級:3x4 byte
008Ah 法術數目:4 byte
008Eh 種族相性編號:4 byte
0092h 基礎價格(PR0):4 byte,雇用價格=掉落金錢=PR0*10*LV
0096h 基礎經驗值(EXP0):4 byte,獲得經驗值=EXP0*2*LV
009Ah 可偷物品編號:4 byte
009Eh 不明:4 byte,固定0
00A2h 體型:4 byte,1=小,2以上為大
00A6h 倍力(APx2)狀態旗標:1 byte
00A7h 鐵壁(DPx2)狀態旗標:1 byte
00A8h 隱身/虛幻(EVx2)狀態旗標:1 byte
00A9h 必中(HITx2)狀態旗標:1 byte
註:戰場上各角色資料的格式與此相似,但部分數值稍有不同:
0026h 最大生命
0032h 最大法力
003Ah STR
0042h DEX
004Ah INT
0092h 傭兵已工作天數
0096h 主角或傭兵目前經驗值
- GROUP.DAT:種族相性表,每個34h=52 byte
種族編號:4 byte
種族名稱:12 byte
相性:9x4 byte整數,依次代表相性:物理、火系、冰系、雷系、法術、毒、炎、冰、特殊
註:實際相性資料寫死在程式中(MONEY.EXE位置085B10h),不使用此檔之相性資料
*** 256色CMP影像資料解壓法
b = 讀取1 byte
if (b == 0) // 透明 //
{
n = 讀取1 byte
x += n
}
else if (b == 1)
{
n = 讀取1 byte
b = 讀取1 byte
輸出b共n次
}
else if (b == 2)
{
n = 讀取1 byte
讀取並輸出n byte資料
}
else if ((b >= 3) && (b <= 6))
{
n = 讀取1 byte
讀取並輸出n*4+b-3 byte資料
}
else if (b == 0xFF)
{
換下一行影像
if 影像已滿 then 結束
}
*** 256色ICO影像資料解壓法
b = 讀取1 byte
if (b == 0)
{
n = 讀取1 byte
輸出0共n次
}
else if (b == 1)
{
n = 讀取1 byte
b = 讀取1 byte
輸出b共n次
}
else if (b == 2)
{
n = 讀取1 byte
讀取並輸出n byte資料
}
else if ((b >= 3) && (b <= 6))
{
n = 讀取1 byte
讀取並輸出n*4+b-3 byte資料
}
else if (b == 0xFF)
{
換下一行影像
if 影像已滿 then 結束
}
*** 各部份程式位址簡易說明
※以下諸如000021C3 (1D91C3)等數字,000021C3是原始hex碼位址,1D91C3是DosBox Debugger做定位表處理後的位址(其他程式未必相同)。
00000067 (1D7067):處理遞增日期
[ebp+0008]=日期資料起點
00000266 (1D7266):選擇選單,回傳EAX=所選選單索引值,由0開始,-1表按Esc取消
000021C3 (1D91C3):決定敵人數目,回傳EAX=數目
0000221E (1D921E):決定敵人等級,輸入=主角等級,回傳EAX=敵人等級
0000229F (1D929F):進入戰鬥,呼叫0000230C (1D930C)處理戰鬥,回傳EAX=-1表成功,否則為被敵人打敗
0000230C (1D930C):戰場主程式
*=ebp-D1A=戰場資料參考點(此值會傳給多數相關程式)
*+21+N*CF=戰場各角色資料起點(N=角色索引值,我方0~4,敵方5~9,例如[ebp-C93]=[*+21+0*CF+66]=主角攻擊次數)
[*+823]=[ebp-4F7]=我方隊伍初始人數
[*+827]=[ebp-4F3]=敵方隊伍初始人數
[*+82B+N]=[ebp-4EF+N]=角色上陣狀態,0=無,1=存活,15=陣亡(N=角色索引值)
[*+835+N*4]=角色特殊狀態,2=中毒(N=角色索引值)
[*+85D+N]=[ebp-4BD+N]=角色麻痺剩餘回合數(N=角色索引值)
[ebp-4B8+N]=敵方角色麻痺剩餘回合數(N=敵方角色索引值0~4)
[*+B90+N*4]=目前攻擊對各目標的傷害值(N=目標索引值,0~4)
[*+BA4]=[ebp-176]=目前攻擊的目標索引值(0~4,5以上為全體)
[*+BAC]=[ebp-16E]=目前攻擊的法術編號,0=普攻
[*+BB0]=[ebp-16A]=目前攻擊的法術型態,如00=物理,0A=醫療
[*+BB8]=[ebp-162]=目前攻擊的特殊效果,通常設為法術編號,如分解術=轉移=點石成金術=0B
[*+BBC]=目前攻擊者的角色索引值
[*+BC0]=敵方隊伍初始已用空間
[*+BC4]=我方隊伍初始已用空間
[*+BCC]=關閉動畫,0=否,1=是
[*+BD0]=[ebp-14A]=暫存格式化文字訊息,50 bytes
[*+C20+N*4]=[ebp-FA+N*4]=角色目前指令所選法術編號、物品編號、或交談項目索引值,0=取消(N=角色索引值,0~4)
[*+C34+N*4]=[ebp-E6+N*4]=敵人對主角好感度(N=敵人索引值,0~4)
[*+C48+N*4]=[ebp-D2+N*4]=角色防禦狀態,1=防禦(N=角色索引值,0~4)
[*+C5C+N*4]=[ebp-BE+N*4]=敵人是否厭惡主角,0=不厭惡(N=敵人索引值,0~4)
[*+C70+N*4]=[ebp-AA+N*4]=角色目前指令目標索引值(0~4,5以上為全體,-1=無)(N=角色索引值,0~4)
[*+C84+N*4]=[ebp-96+N*4]=角色目前指令索引值,0=攻擊,1=施法,2=物品,3=防禦,4=交談,5=逃跑,-1=取消(N=角色索引值,0~4)
[*+C98+N*4]=[ebp-82+N*4]=敵人加入所需好感度(N=敵人索引值,0~4)
[*+D00]=[ebp-1A]=目前行動的角色索引值(0~4)
[*+D09+N*4]=[ebp-11+N*4]=角色目前指令狀態,0=未下指令,1=已下指令(N=角色索引值,0~4)
[*+D28]=[ebp+E]=待加入的敵方角色索引值(0~4,-1=無)
[*+DA0]=[ebp+86]=主角索引值(0~3)
[*+DA4]=[ebp+8A]=戰鬥類型,C=單挑
0000248B (1D948B):檢驗是否有啟用動畫
000024A5 (1D94A5):初始化敵方資料
000024BB (1D94BB):決定敵人數目、類型
00002508 (1D9508):決定各敵人怪物編號、等級,並進行初始化,同時按體型決定最終敵人數目
00002615 (1D9615):初始化我方資料
0000261E (1D961E):初始化我方單挑傭兵資料
000026A0 (1D96A0):初始化我方隊伍資料,搬移主角屬性資料
00002712 (1D9712):計算傭兵屬性值
000029A0 (1D99A0):回合開始,我方決定各角色行動
000029EB (1D99EB):電腦控制角色決定行動,包括判斷是否逃跑及決定主要行動
00002BAC (1D9BAC):對玩家顯示主要行動選單
[ebp-1A]=角色索引值,[ebp+4*eax-96]=所選選單索引值
[eax+ebp-C93]=角色普攻次數,5表全體,[eax+ebp-CD7]=角色目前血量
[ebp+4*eax-FA]=使用的法術、物品編號(0=取消),[ebp+4*eax-AA]=攻擊對象(-1=取消,5以上為全體)
00002BD1 (1D9BD1):處理取消退回前一個角色,包括退還選擇使用的卡片或物品
00002CE4 (1D9CE4):顯示法術選單及處理選擇的法術
00002DC7 (1D9DC7):決定攻擊對象
00002DEF (1D9DEF):決定法術施展的對象,一般會跳轉至00003001(1DA001)進行主要處理
00002E9E (1D9E9E):電腦控制角色加強判斷醫療及狀態法術的施放時機與對象
00002FA4 (1D9FA4):切換至下一個可行動的角色
[ebp-4F7]=我方人員總數,[eax+ebp-4BD]=我方角色麻痺剩餘回合數
00002FD3 (1D9FD3):決定目前角色的行動(或重新決定行動)
00003001 (1DA001):選擇法術施展的對象
00003102 (1DA102):選擇使用的物品,並選擇恢復道具與魅惑卡的對象
0000323D (1DA23D):處理防禦指令
00003257 (1DA257):選擇交談對象
000032AF (1DA2AF):處理玩家的逃跑行動,判定是否成功
000032DE (1DA2DE):處理逃跑成功
0000348F (1DA48F):我方決定角色行動結束,開始處理角色行動
000034D2 (1DA4D2):處理法術參數
[ebp-16E]=[eax+ebp-C87]=法術編號,[ebp-16A]=[eax+9EBC]=法術型態,0A表醫療法術
000035A2 (1DA5A2):處理普攻,呼叫00001894(1EFE94)進行後續處理
[eax+66]=角色普攻次數,決定是否二次攻擊
000035DD (1DA5DD):檢查及處理二次攻擊
0000361E (1DA61E):我方角色行動後處理,切換至下一個可行動的角色
000036B9 (1DA6B9):顯示麻痺中無法行動訊息,及減少麻痺剩餘回合數
0000372D (1DA72D):處理主角施法,呼叫00001894(1EFE94)進行後續處理
00003811 (1DA811):處理傭兵施法,呼叫00001894(1EFE94)進行後續處理
000038F4 (1DA8F4):處理我方盜取物品
000039E7 (1DA9E7):處理使用物品
00003A59 (1DAA59):處理恢復道具
00003A89 (1DAA89):處理戰鬥卡片,轉換成對應的法術編號,並設定相關參數
00003B5B (1DAB5B):處理風神卡
00003BB8 (1DABB8):處理魅惑卡
00003C65 (1DAC65):處理恢復卡片
00003CD2 (1DACD2):處理防禦行動
00003D46 (1DAD46):處理交談
00004463 (1DB463):我方攻擊結束,換敵方攻擊
[ebp+5E]=敵人選擇施展的法術索引值(1~3),0=普攻
000044CE (1DB4CE):決定敵方行動種類(普攻或法術)及對象
[ebx+8A]=法術數目,[edx+4*eax+6E]=怪物法術編號
0000462E (1DB62E):處理敵方攻擊或施法,呼叫00001894(1EFE94)進行後續處理
[ebp+5E]=施展的法術編號,0表普攻,[ebp-1A]=攻擊者索引值
[eax+66]=角色普攻次數,決定是否二次攻擊,[eax+ebp-CD7]=被攻對象血量
00004667 (1DB667):檢查及處理二次攻擊
000046B9 (1DB6B9):處理敵方盜取物品
00004781 (1DB781):敵方角色行動後處理
000047B8 (1DB7B8):重置我方防禦力
0000480F (1DB80F):切換至下一個可行動的角色
[ebp-4F3]=敵方人員總數,[eax+ebp-4B8]=敵方角色麻痺剩餘回合數
00004853 (1DB853):顯示麻痺中無法行動訊息,及減少麻痺剩餘回合數
000048A6 (1DB8A6):回合結束換下一輪
000052FA (1DC2FA):進行單挑,輸入:傭兵索引值,角色編號
0000740D (1DE40D):處理地形事件
000074B5 (1DE4B5):地形事件處理跳躍分支
000077E1 (1DE7E1):射擊場
00007822 (1DE822):山洞賽狗場
00007863 (1DE863):對對碰
0000789E (1DE89E):單挑擂台賽
00008DDA (1DFDDA):選擇對手,回傳EAX=對手編號,-1表取消
00009115 (1E0115):處理任意步卡
00009251 (1E0251):處理平均卡
00009653 (1E0653):處理封印卡
0000976D (1E076D):處理破壞卡
00009F06 (1E0F06):處理瘟疫卡(參數0)、淨化卡(參數1)
0000A1B3 (1E11B3):處理叛亂卡
0000A591 (1E1591):處理稅收
[ebp+0010]=主角索引值
0000A690 (1E1690):處理傭兵給薪
[ebp+0014]=主角索引值
0000A956 (1E1956):處理任務領地事務
0000B74B (1E274B):第3章任務領地戰鬥
0000BF19 (1E2F19):查看地圖選擇地點,回傳EAX=1表確定,0表取消
0000C264 (1E3264):處理領地守軍恢復生命與法力
0000C514 (1E3514):回復主角及傭兵的生命
[ebp+000C]=主角索引值,[ebp+0010]=回復量(1=完全回復,其他值=回復一半)
0000C624 (1E3624):回復主角及傭兵的法力
[ebp+000C]=主角索引值,[ebp+0010]=回復量(1=完全回復,其他值=回復一半)
0000C82E (1E382E):重新計算地圖相關資訊
0000CC08 (1E3C08):開始遊戲,並處理主畫面各選單
0000D2C1 (1E42C1):顯示大地圖選單
0000D2E0 (1E42E0):移動
0000D3F4 (1E43F4):使用
0000DB45 (1E4B45):處理小丑卡
0000E258 (1E5258):主角及傭兵恢復生命與法力
0000E450 (1E5450):領地守軍恢復生命與法力,呼叫0000C264(1E3264)做主要處理
0000E455 (1E5455):遞增日期,呼叫00000067(1D7067)做主要處理
0000E462 (1E5462):檢查是否為週日及處理稅收與傭兵給薪,呼叫0000A591(1E1591)及0000A690(1E1690)做主要處理
0000E515 (1E5515):決定是否發生突發事件,有發生則呼叫0002478E(1FB78E)做主要處理
000161F1 (1ED1F1):重算屬性(含裝備)
00016B0D (1EDB0D):顯示字串(字串在第2個參數)
00016B7C (1EDB7C):檢查角色是否有該物品,輸入:物品,角色,傳回EAX=1表有,0表沒有
00016BC2 (1EDBC2):移除角色物品,輸入:物品,角色
00016CA3 (1EDCA3):移除指定卡片,輸入:卡片編號,角色編號
00016D45 (1EDD45):加入指定卡片,輸入:卡片編號,角色編號
00017128 (1EE128):戰鬥獲勝後,計算可獲得的金錢與各隊員可獲得的經驗值
00017033 (1EE033):電腦玩家評估雙方戰力及判斷是否逃跑,傳回EAX=1表是,0表否
[ebp+10]=戰場資料參考點,[ebp+14]=主角索引值
00017351 (1EE351):決定攻擊對象,回傳EAX=對象索引值
0001764D (1EE64D):加入並初始化傭兵資料(不含目前血法),輸入:等級,怪物編號,陣營,戰場資料參考點
[ebp+10]=戰場資料參考點,[ebp+14]=陣營(1=我,-1=敵),[ebp+18]=怪物編號,[ebp+1C]=等級
00017F4A (1EEF4A):顯示單一動畫與損血量
00018618 (1EF618):法術分支表
00018734 (1EF734):計算及設定對單一目標的傷害值(或醫療值)與特殊效果
[ebp+C]=戰場資料參考點,[ebp+10]=傷害值儲存點,[ebp+14]=攻擊者資料起點,[ebp+18]=目標資料起點,[ebp+20]=目標特殊狀態儲存點
0001878A (1EF78A):法術處理跳躍分支
[eax+BB8]=效果(後處理)法術編號
000187AB (1EF7AB):計算醫療值(法術型態為0A時),含隨機增減
000187B8 (1EF7B8):關閉動畫時增加目標生命值
00018D1C (1EFD1C):計算傷害值(法術型態非0A時),含狀態加成、命中率檢測、隨機傷害增減、相性加成
00018E54 (1EFE54):關閉動畫時扣減目標生命值
00018E94 (1EFE94):攻擊或法術處理
[ebp+C]=戰場資料參考點,[ebp+10]=攻擊者索引值(我方0~4,敵方5~9),[eax+BA4]=目標索引值,5以上為全體
00018EE3 (1EFEE3):處理行動者為敵方的情況
00018F44 (1EFF44):處理目標為14的情況,呼叫00018734(1EF734)計算效果
00018FC7 (1EFFC7):處理目標為單人的情況,呼叫00018734(1EF734)計算效果
000190CB (1F00CB):處理目標為全體的情況,對每個目標呼叫00018734(1EF734)計算效果
000191A6 (1F01A6):處理迷魂琴音,設定麻痺回合數
000191D1 (1F01D1):處理行動者為我方的情況
0001922B (1F022B):處理目標為14的情況,呼叫00018734(1EF734)計算效果
000192A3 (1F02A3):處理目標為單人的情況,呼叫00018734(1EF734)計算效果
00019385 (1F0385):處理目標為全體的情況,對每個目標呼叫00018734(1EF734)計算效果
00019460 (1F0460):處理迷魂琴音,設定麻痺回合數
000194A0 (1F04A0):顯示動畫並處理血量增減,呼叫00019BFB(1F0BFB)進行主要處理
00019BFB (1F0BFB):顯示動畫並處理血量增減,若無關閉動畫會呼叫00019C30(1F0C30)進行主要處理
[ebp+8]=戰場資料參考點
00019C30 (1F0C30):動畫及血量增減主處理程式
[ebp+72]=戰場資料參考點
0001A2AD (1F12AD):播放部分動畫及顯示傷害值/醫療值/特殊效果的漂浮文字
0001A405 (1F1405):增加每個目標的生命值(法術型態為0A時)
0001A622 (1F1622):處理分解術、吞沒等,設定目標死亡
0001A648 (1F1648):扣減每個目標的生命值(法術型態非0A時)
0001A897 (1F1897):處理吸血,增加吸血鬼的生命值
0001AD4A (1F1D4A):檢查隊伍是否有空位容納敵方角色加入,回傳EAX=1表有,0表沒有
[ebp+8]=戰場資料參考點,[ebp+C]=敵方角色索引值(0~4)
0001B4C4 (1F24C4):選擇領地
0001C0C9 (1F30C9):處理交換卡
0001CC87 (1F3C87):檢查對手是否有額外領地,回傳EAX=1表有,0表沒有
0001CCE0 (1F3CE0):檢查是否有對手,回傳EAX=1表有,0表沒有
0001CD27 (1F3D27):檢查我方是否有額外領地,回傳EAX=1表有,0表沒有
0001CD8E (1F3D8E):計算有卡片的對手人數,回傳EAX=人數
0001CDE3 (1F3DE3):處理選擇選單,回傳EAX=選單索引值,-1表取消
[ebp+8A]=主角索引值,[ebp+8E]=選單類型(-3=地圖物品,0=戰鬥物品,1=主角法術,3=怪物法術,50=地圖回血道具,51=地圖回魔道具)
0001D152 (1F4152):檢驗可以顯示出來的怪物法術
0001D208 (1F4208):檢驗可以顯示出來的主角法術
0001D375 (1F4375):檢驗可以顯示出來的卡片
0001E9F1 (1F59F1):顯示裝備資訊
0001EC4B (1F5C4B):處理更換裝備
0001F6BF (1F66BF):處理動畫切換
00020DEA (1F7DEA):卡片店
00021CFD (1F8CFD):隨機產生可招募怪物的編號,回傳EAX=怪物編號
[ebp+C]=主角索引值,[ebp+10]=怪物型態(0=從四大種族隨機抽取主角可招募者)
00021DBC (1F8DBC):招募怪物
[ebp+82]=主角索引值,[ebp+86]=怪物型態或怪物編號基準值(傭兵卡=1),[ebp+8A]=怪物編號隨機範圍(招募守軍=6,傭兵卡=1C)
00022F97 (1F9F97):裝備店
0002478E (1FB78E):處理突發事件
[ebp+8A]=主角索引值
000258DF (1FC8DF):sprintf,建立格式化字串
00025E2E (1FCE2E):random,取得亂數
變數:
[00007B5E] (243B5E):所在地型態,1 byte。一般=0,領地=1,關卡魔王領地=2
[00007B60] (243B60):所在領地編號
00007EC4 (243EC4)+N*AA:領地資料起點(N=領地編號)
[00009EA8] (245EA8):領地總數+1
00009EAC (245EAC)+N*15:法術資料起點(N=法術編號,例如[00009EC0 (245EC0)+法術X編號*15]=[00009EAC (245EAC)+N*15+14]=法術X耗用法力)
0000A4C3 (2464C3):日期資料起點
[0000A4D3] (2464D3):遊戲章節(1~4)
[0000A4D7] (2464D7):目前行動角色的主角索引值(0~3)
[0000A54B] (24654B):物品資料參考點,通常值為296D0+23C000=2656D0
[0000A553] (246553):怪物資料參考點,通常值為2A838+23C000=266838
[0000A557] (246557):戰場目前行動者的角色資料起點
0000A563 (246563)+N*17F:主角資料起點(N=主角索引值0~3,例如[0000A58A (24658A)+2*17F]=[0000A563 (246563)+2*17F+27]=第3個主角(凱麗)目前法力)
000296D0 (2656D0)+N*2A:物品資料起點(N=物品編號)
0002A838 (266838)+N*AA:怪物資料起點(N=怪物編號)