資訊修改
以下為仙劍奇俠傳各遊戲資訊檔的作用:

*.RPG     遊戲存檔
ABC.MKF   戰鬥時敵方怪物圖像(YJ_1壓縮,分檔同GOP.MKF結構)
BALL.MKF  物品圖像(各分檔為4 byte調色盤編號+RLE圖片壓縮格式DATA.MKF  各種遊戲資訊設定,如商店、等級、仙術、敵人、戰鬥等數據
F.MKF     戰鬥時我方人物圖像(YJ_1壓縮,分檔同GOP.MKF結構)
FBP.MKF   背景圖(300x200,YJ_1壓縮)
FIRE.MKF  攻擊與法術效果圖(YJ_1壓縮,分檔同GOP.MKF結構)
GOP.MKF   圖元集
M.MSG     對話與提示文字,特殊字符如下:
            '':裡面的內容以紅色顯示
            "":裡面的內容以黃色顯示
            --:裡面的內容以青色顯示
            ~:對話自動中斷,不須按空格,後接一個數字,顯示完文字後等待的時間
            $:文字顯示速度,後接一個數字,愈大顯示愈慢
            (:表情,滴汗
            ):表情,愛心
MAP.MKF   地圖
MGO.MKF   人物行動圖像(YJ_1壓縮,分檔同GOP.MKF結構)
MIDI.MKF  MIDI音樂檔(95版改放在MUSICS子目錄下)
MUS.MKF   FM/RIX音樂檔
PAT.MKF   調色盤
RGM.MKF   人物頭像(各分檔為4 byte調色盤編號+RLE圖片壓縮格式)
RNG.MKF   過場動畫
SSS.MKF   事件、場景、物品、仙術、對話、腳本之定義
VOC.MKF   音效檔
WORD.DAT  名稱、選項文字,每個10 byte,不足時補空白(20h)

*** MKF檔

仙劍奇俠傳的遊戲資訊檔幾乎都是MKF檔,這種檔案格式是將多個檔案合併成一
個檔案,其格式為:

1.分檔在MKF檔的位置:每個分檔4 byte整數
2.MKF檔檔尾位置:4 byte整數
3.各分檔內容

從第一個4 byte整數n便能得知有多少分檔:n/4-1,各分檔大小則是下一個分
檔位置減去目前分檔位置。

*** DATA.MKF

裡面共有15個分檔,依次為:

1.煉藥/商店物品
2.敵人數據
3.敵人出現組合
4.我方初登場數據
5.仙術數據
6.戰場數據
7.升級學會仙術
8.密碼色塊
9.密碼輸入界面
10.遊戲內選單界面
11.我方施法特效
12.我方施法特效設定
13.對話界面
14.敵人戰場座標
15.升級經驗設定

*** 煉藥/商店物品

每個商店9個物品編號,共18 byte,不足時填入00 00。
第一個商店為紫金葫蘆的煉藥物品。

*** 敵人數據(請另行參見敵人列表)

每個敵人佔46h=70 byte,編號0不使用:

A1 A1 A2 A2 A3 A3 A4 A4 B1 B1 B2 B2 C1 C1 C2 C2
C3 C3 C4 C4 C5 C5 LF LF EX EX MO MO LV LV D1 D1
D2 D2 E1 E1 E2 E2 F1 F1 F2 F2 G1 G1 G2 G2 G3 G3
G4 G4 G5 G5 H1 H1 H2 H2 H3 H3 H4 H4 H5 H5 H6 H6
H7 H7 II II JJ JJ

A1~A4 = 空閒幀數、法術幀數、普攻幀數、蠕動幀數
B1~B2 = 重繪次數、位置Y調整
C1~C5 = 普攻音效、行動音效、施法音效、死亡音效、攻克音效
LF = 生命
EX = 經驗值
MO = 掉落錢數
LV = 等級
D1~D2 = 絕招編號、絕招出現機率(需乘上10%)
E1~E2 = 攻擊效果對應的物品編號、攻擊效果出現機率(需乘上10%)
F1~F2 = 可偷竊物品編號(0表金錢)、數量
G1~G5 = 等級0的武術、靈力、防禦、身法、吉運,
         還要加上(等級+6)*(武術+6、靈力+6、防禦+4、身法+3、吉運+4)
H1~H6 = 毒抗、風抗、雷抗、水抗、火抗、土抗,實際抗性=(X-5)*20%
H7 = 物理抗,實際抗性=(100-100/X)%
II = 是否2次行動,0=否,1=是
JJ = 靈葫值

*** 敵人出現組合

每種組合10 byte,分別表示5個敵人的編號,FFFFh為空位置。

*** 我方初登場數據

所有資料均為2 byte整數,每項屬性均按下列六人依次排列(和存檔相同):

編號  人物
---------------
0     李逍遙
1     趙靈兒
2     林月如
3     巫后
4     阿奴
5     蓋羅嬌

以下為各屬性意義:

編號  位置  意義
---------------------------------
00    0000  頭像(對應RGM.MKF檔)
01    000C  戰鬥時圖像(對應F.MKF檔)
02    0018  行動時圖像(對應MGO.MKF檔)
03    0024  人名代碼,即WORD.DAT名稱索引值
04    0030  普通攻擊能否攻敵全體,0=否,1=是
05    003C  保留,固定0
06    0048  等級
07    0054  最大體力
08    0060  最大真氣
09    006C  目前體力
0A    0078  目前真氣
0B    0084  頭戴物品編號
0C    0090  披掛物品編號
0D    009C  身穿物品編號
0E    00A8  手持物品編號
0F    00B4  腳穿物品編號
10    00C0  配戴物品編號
11    00CC  武術
12    00D8  靈力
13    00E4  防禦
14    00F0  身法
15    00FC  吉運
16    0108  毒抗
17    0114  風抗
18    0120  雷抗
19    012C  水抗
1A    0138  火抗
1B    0144  土抗
1C    0150  保留,固定0
1D    015C  保留,固定0
1E    0168  保留,固定0
1F    0174  本人血低時的援護者編號(0~5)
20    0180  法術編號,以下共32組
40    0300  行動楨數(0~3)
41    030C  以本人為主導之合體法術編號
42    0318  保留,固定0
43    0324  保留,固定0
44    0330  死亡音效
45    033C  普攻音效
46    0348  武器音效
47    0354  倍攻音效
48    0360  施法音效
49    036C  格擋音效
4A    0378  被擊音效

*** 仙術數據(請另行參見仙術列表)

每個仙術佔20h=32 byte:

AA AA BB BB XX XX YY YY CC CC DD DD EE EE FF FF
GG GG HH HH II II JJ JJ KK KK LL LL MM MM NN NN

AA = 法術特效
BB = 法術特性
XX,YY = 座標偏移
CC = 召喚特效
DD = 動作速度
EE = 特效持續
FF = 預演幀數
GG = 動作持續
HH = 地面震動
II = 畫面重影
JJ = 保留,固定0
KK = 消耗真氣
LL = 基礎傷害力
MM = 五行屬性,0=無,1=風,2=雷,3=水,4=火,5=土,6=毒,7=非攻擊性仙術
NN = 音效

*** 戰場數據

每個戰場佔0Ch=12 byte:

AA AA BB BB CC CC DD DD EE EE FF FF

AA = 特效
BB = 風系仙術威力增減
CC = 雷系仙術威力增減
DD = 水系仙術威力增減
EE = 火系仙術威力增減
FF = 土系仙術威力增減

仙術威力增減之數值需乘上10%,如3即增加30%,-10表示-100%。

*** 升級學會仙術

每組資料佔4 byte:

LV LV SP SP

LV = 等級
SP = 仙術編號

各組資料均按李逍遙、趙靈兒、林月如、巫后、阿奴等五人依次排列。

*** 升級所需經驗

每級2 byte整數,由等級0開始,表示要升到下個等級所需的經驗值。

*** SSS.MKF

裡面共有5個分檔,依次為:

1.事件定義
2.場景定義
3.名稱定義
4.對話索引
5.腳本定義

前3個會載入記憶體裡做變更,並儲存至存檔中。

*** 事件定義

每個事件定義佔32 byte:

-- -- XX XX YY YY MA MA S1 S1 S2 S2 ST ST CN CN
T1 T1 T2 T2 T3 T3 T4 T4 -- -- TM TM -- -- -- --

XX = 事件X座標+A0h
YY = 事件Y座標+70h
MA = 圖層
S1 = 觸發腳本
S2 = 自動腳本
ST = 事件觸發狀態
CN = 觸發方式(距離)
     0 無法觸發
     1 一格內調查觸發,例如道具的拾獲
     2 兩格內調查觸發,例如人物的對話
     3 四格內調查觸發
     4 重疊接觸觸發,例如機關踏板
     5 一格內接觸觸發,例如場景切換
     6 兩格內接觸觸發
     7 四格內接觸觸發
     8 八格內接觸觸發
T1~T4 = 觸發物圖像(對應MGO.MKF檔)、動態圖像參數、靜態圖像參數、特殊圖像參數
TM = 事件觸發後的累計時間(在記憶體或存檔時使用)

*** 場景定義

每個場景定義佔8 byte(最後一個場景定義不使用):

MA MA EN EN EX EX EV EV

MA = 場景地圖編號
EN = 場景進入腳本,進入該場景時自動觸發的腳本
EX = 場景脫離腳本,在該場景使用引路蜂、土靈珠時調用的腳本
EV = 本場景開始的事件編號(從下一個場景定義可得知本場景所擁有的事件編號範圍)

遊戲是從場景#0開始的。

*** 名稱定義

此處用來定義WORD.DAT中各名稱的實際內容,每個名稱佔12 byte(95版為14 byte):

V1 V1 V2 V2 V3 V3 V4 V4 V5 V5 (V7 V7) V6 V6

V1 = 關聯參數
V2 = 屬性參數
V3 = 腳本1
V4 = 腳本2
V5 = 腳本3
V7 = 說明腳本(95版才有)
V6 = 作用參數

以上各數值會依名稱所屬類別,而有不同的意義:

1.系統:編號00h~17h,19h~23h,2Ah~3Ch,沒有任何定義。
2.人物:編號24h~29h,共6位
  V3 = 隊友戰死腳本,有隊友戰死時該人物調用的腳本
  V4 = 自己受傷腳本,自己體力值低於某一百分比時,該人物調用的腳本
3.物品:編號3Dh~126h
  V1 = 物品圖像(對應BALL.MKF檔)
  V2 = 物品價格
  V3 = 物品使用腳本,使用該物品時調用的腳本
  V4 = 物品裝備腳本,裝備該物品時調用的腳本,卸下時反調用
  V5 = 物品投擲腳本,投擲該物品時調用的腳本
  V6 = 物品基本屬性,按位元來表示是否具有某屬性
       0001h = 可使用
       0002h = 可裝備
       0004h = 可投擲
       0008h = 使用後損耗
       0010h = 在使用和投擲時無須選擇對象(自己或全體)
       0020h = 可典當
       0040h = 李逍遙可裝備
       0080h = 趙靈兒可裝備
       0100h = 林月如可裝備
       0200h = 巫后可裝備
       0400h = 阿奴可裝備
       0800h = 蓋羅嬌可裝備
4.仙術:編號18h,127h~18Dh
  V1 = 內部仙術編號(對應DATA.MKF第5個分檔)
  V3 = 仙術後序腳本
  V4 = 仙術前序腳本
  V6 = 仙術基本屬性,按位元來表示是否具有某屬性
       0001h = 平時可施放
       0002h = 戰時可施放
       0004h = 不明
       0008h = 作用對象是敵方
       0010h = 無須選擇對象(自己或全體)
5.敵人:編號18Eh~226h
  V1 = 內部敵人編號(對應DATA.MKF第2個分檔,以及ABC.MKF檔)
  V2 = 敵人的巫術抗性,即對中毒和特殊狀態的免疫程度,需乘以10%,10表示完全免疫
  V3 = 敵人的戰前腳本,每回合開始之前調用的腳本
  V4 = 敵人的戰後腳本,戰鬥勝利後調用的腳本
  V5 = 敵人的戰時腳本,敵人攻擊時調用的腳本
6.中毒:編號227h~234h,共14個
  V1:該毒的毒性,和解毒有關,某些物品或法術只能解除毒性低於某值的毒
      0=赤毒
      1=屍毒、瘴毒
      2=毒絲
      3=七大毒蠱
      4=碧血蠶、食妖蟲
      99=壽葫蘆
  V2 = 該毒的顏色參數(*10就是顏色號)
  V3 = 我方中毒腳本
  V5 = 敵方中毒腳本

*** 對話索引

每個對話索引佔4 byte,指向對話文字在M.MSG的檔案位置,長度可由下個對話索引得知。

*** 腳本定義

每8 byte為一個指令(亦即腳本指標*8=腳本定義開始位置),格式為:

  IT IT P1 P1 P2 P2 P3 P3

IT = 指令代碼
P1~P3 = 參數1~參數3

腳本指令的執行必須持續到停止執行指令為止。以下為各指令代碼的意義:

00 00 停止執行,無參數。
      注意:獨佔腳本若執行的腳本編號為0,則原腳本指標會被變更為0,造成原腳本無法再執行,
            常見的情況是跳轉至腳本0,於是造成七大毒蠱投擲bug(005E指令)。
01 00 停止執行,將原腳本指標替換成下一個指令位置,無參數
02 00 停止執行,變更原腳本指標,P1=新腳本,P2=最多變更次數,達到次數後便不停止執行,0表總是變更
03 00 跳轉到新腳本,P1=新腳本,P2=最多跳轉次數,達到次數後便不再跳轉,0表總是跳轉
04 00 呼叫腳本,P1=被呼叫腳本,遇到結束或中斷指令時返回,P2=事件編號,0表當前對象
05 00 清除螢幕額外顯示的文字與圖片,P1=清除方式,P2=延遲時間,P3=是否執行事件物體腳本
06 00 機率跳轉,產生100以內的隨機數,P1=機率值(即有多少機率會繼續執行)
      P2=隨機數<=P1時跳轉的腳本,0表示將原腳本指標替換成本指令位置後停止執行
07 00 進入戰鬥,P1=敵人組合編號,對應DATA.MKF第三個分檔,P2=戰敗腳本
08 00 將原腳本指標替換成下一個指令位置並繼續執行,無參數
09 00 禁止主角移動並等待,P1=等待時間,P2=是否觸發事件,P3=是否更新進主角步伐表格
0A 00 對話框選擇,選是繼續下個指令,P1=選否跳轉的腳本
0B 00 向西行,無參數
0C 00 向北行,無參數
0D 00 向東行,無參數
0E 00 向南行,無參數
0F 00 改變方向,P1=方向代號,負數時不改變,P2=該方向上的楨數
10 00 走到指定位置(速度3),P1=X區塊,P2=Y區塊,P3=是否半區塊
      X=P1*32+P3*16,Y=P2*16+P3*8
11 00 慢速走到指定位置(速度2),P1=X區塊,P2=Y區塊,P3=是否半區塊
12 00 移動事件座標,P1=事件編號,對應SSS.MKF第一個分檔,(P2,P3)=增加的座標值
13 00 改變事件座標,P1=事件編號,(P2,P3)=新座標
14 00 改變事件圖像,P1=圖像編號
15 00 設定隊員方向,P1=方向代號,P2=該方向上的楨數,P3=角色代號
16 00 改變事件動作,P1=事件編號,P2=行動楨數,P3=目前楨數
17 00 裝備的附加屬性,P1=裝備位置,P2=屬性編號,P3=增加的數值
      裝備位置、屬性編號請參見DATA.MKF第4分檔我方初登場數據
      例如裝備位置:0B=頭戴,0C=身穿,0D=披掛,0E=武器,0F=腳穿,10=配戴
18 00 裝備物品,P1=裝備位置,P2=物品編號
19 00 增加屬性,P1=屬性編號,P2=增加的數值,P3=主角編號+1,0表選定的角色
1A 00 變更屬性,P1=屬性編號,P2=變更的數值,P3=主角編號+1,0表選定的角色
1B 00 恢復體力,P1=是否為全體,P2=恢復的數值
1C 00 恢復真氣,P1=是否為全體,P2=恢復的數值
1D 00 恢復體力、真氣,P1=是否為全體,P2=體力恢復的數值,P3=真氣恢復的數值,若為0則使用P2
1E 00 增加金錢,P1=增加的數目(負數表減少),P2=錢不夠時跳轉的腳本
1F 00 增加物品,P1=物品編號,P2=數量,0表1
20 00 去除物品,P1=物品編號,P2=數量,0表1,P3=物品數量不足時跳轉的腳本
21 00 給敵人傷害,P1=是否為全體,P2=傷害數值
22 00 我方復活,P1=是否為全體,P2=回復生命量,需乘上10%
23 00 卸下裝備,P1=隊伍第幾人,0表全體,P2=裝備位置代號
      裝備位置代號:01=頭戴、02=身穿、03=披掛、04=武器、05=腳穿、06=配戴
24 00 更改自動腳本,P1=事件編號,FFFF表默認事件,P2=新腳本
25 00 更改觸發腳本,P1=事件編號,FFFF表默認事件,P2=新腳本
26 00 進入商店,P1=商店編號,對應DATA.MKF第一個分檔
27 00 進入當鋪,無參數
28 00 敵方中毒,P1=是否為全體,P2=中毒編號(227h~234h),毒抗隨機判斷
29 00 我方中毒,P1=是否為全體,P2=中毒編號(227h~234h),毒抗隨機判斷
2A 00 敵方解毒,P1=是否為全體,P2=中毒編號(227h~234h)
2B 00 我方解毒,P1=是否為全體,P2=中毒編號(227h~234h)
2C 00 我方解毒,P1=是否為全體,P2=毒性值,可解毒性<=P2的所有中毒
2D 00 我方特殊狀態,P1=狀態代號,P2=持續的回合數
      狀能代號:00=瘋魔、01=定身、02=昏睡、03=咒封、04=死者繼續攻擊、
                05=普通攻擊加強、06=防禦加強、07=身法加強、08=兩次攻擊
2E 00 敵方特殊狀態,P1=狀態代號,P2=持續的回合數,P3=若敵人不受該狀態影響時跳轉的腳本
2F 00 我方解除特殊狀態,P1=狀態代號
30 00 暫時增加屬性,P1=屬性編號,P2=增加的百分比,需乘上1%,P3=主角編號+1,0表選定角色
31 00 暫時改變人物圖像,P1=人物圖像代號
      人物圖像代號:00=李逍遙、01=趙靈兒、02=持刀林月如、03=巫后、04=執杖阿奴、05=蛇身靈兒
                    06=持鞭林月如、07=執刀阿奴、08=蓋羅嬌、09=聖靈兒、0A=武神、0B=天劍
                    0C=雪妖、0D=山神、0E=風神、0F=酒神、10=雷神、11=劍神、12=火神
32 00 戰時/平時分派,P1=戰時腳本,P2=平時腳本
33 00 吸取靈葫值,P1=不成功(敵人靈葫值為0)應跳至的腳本
34 00 靈葫煉丹,P1=靈葫值為0時應跳至的腳本
35 00 畫面抖動,P1=抖動次數,P2=抖動幅度
36 00 設置動畫,P1=動畫編號,對應RNG.MKF檔
37 00 播放當前動畫,P1=開始禎數,P2=結束禎數,0表全部播放,P3=播放速度
38 00 脫離迷宮,即調用所在場景的迷宮脫離腳本,P1=無迷宮脫離腳本時跳轉的腳本
39 00 吸取敵人生命,P1=吸取數量
3A 00 脫離戰鬥,即調用戰鬥指令07參數P3指向的腳本,P1=若無前述腳本應跳轉的腳本
3B 00 在畫面中央顯示文字,P1=字體顏色
3C 00 上方顯示對話文字,P1=頭像編號,對應RGM.MKF檔,P2=字體顏色,P3=是否播放動畫
3D 00 下方顯示對話文字,P1=頭像編號,對應RGM.MKF檔,P2=字體顏色,P3=是否播放動畫
3E 00 在螢幕中央顯示一個文字框,P1=字體顏色
3F 00 乘物低速駛到座標,P1=X區塊,P2=Y區塊,P3=是否半區塊
40 00 設置事件觸發方式,P1=事件編號,P2=觸發方式,參見事件定義。
41 00 仙術無效,停止執行,無參數
42 00 我方使用仙術,P1=仙術編號
43 00 播放背景音樂,P1=音樂編號,P2=次數
44 00 乘物中速飛至某座標,P1=X區塊,P2=Y區塊,P3=是否半區塊
45 00 設置戰鬥背景音樂,P1=音樂編號
46 00 設置隊員位置,P1=X區塊,P2=Y區塊,P3=是否半區塊
47 00 播放音效,P1=SOUNDS.MKF檔的索引值
49 00 設置事件狀態,P1=事件編號,P2=事件狀態
      事件狀態:0=隱藏事件物體並停止其自動腳本、1=顯示該物體
                2=顯示該物體並啟動其自動腳本、3=顯示該物體並停止其自動腳本
4A 00 設置戰場環境,P1=戰場編號,參見DATA.MKF第6分檔戰場數據
4B 00 退出戰場,P1=等待時間,單位10毫秒
4C 00 追向主角,P1=警戒範圍,內定8,P2=追及速度,內定4
4D 00 等待按下任何一鍵,無參數
4E 00 讀取最後存檔,無參數
4F 00 螢幕慢慢變紅,P1=色彩控制
50 00 淡出,P1=是否快速
51 00 淡入,P1=是否快速
52 00 消失匿跡,P1=持續時間
53 00 切換調色板變成日間,無參數
54 00 切換調色板變成夜間,無參數
55 00 學得仙術,P1=仙術編號,P2=主角編號+1,0表隊伍第一位角色
56 00 刪除仙術,P1=仙術編號,P2=主角編號+1,0表隊伍第一位角色
57 00 真氣轉基本傷害,真氣降到1,P1=仙術編號,P2=真氣乘上倍數,0表8倍
58 00 物品不夠則跳轉,P1=物品編號,P2=數量,0表1,P3=跳轉的腳本
59 00 轉換場景,P1=場景編號+1
5A 00 己方隊員生命減少一半,無參數
5B 00 敵人生命減少一半,P1=生命值減少的上限
5C 00 我方隱形,P1=持續回合數
5D 00 若己方隊員未中此毒則跳轉,P1=中毒編號,P2=跳轉的腳本
5E 00 若該敵人未中此毒則跳轉,P1=中毒編號,P2=跳轉的腳本
5F 00 我方陣亡,無參數
60 00 敵方陣亡,無參數
61 00 若己方隊員未中毒則跳轉,P1=跳轉的腳本
62 00 敵人停止追逐感應,P1=持續時間
63 00 敵人追逐感應倍增,P1=持續時間
64 00 檢測敵人生命是否高於一個百分比,P1=百分比,需乘上10%,P2=是的話應跳至的腳本
65 00 設置隊員行動圖像,P1=第幾位隊員,P2=MGO.MKF檔的索引值,P3=是否立即顯示圖像
66 00 投擲武器,P1=模擬仙術編號,P2=基本傷害
67 00 設定敵人仙術,P1=仙術編號,P2=施術頻率,0~100
68 00 目標若為我方則跳轉,P1=跳轉的腳本
69 00 敵人逃跑,P1=是否100%成功
6A 00 偷竊,P1=成功機率
6B 00 吹開敵人,P1=數量
6C 00 一次移動場景中的事件物體,P1=事件編號,(P2,P3)=移動量
6D 00 設置場景腳本,P1=場景編號,P2=進入腳本,P3=離開腳本
6E 00 一次移動主角,(P1,P2)=移動量,P3=圖層
6F 00 與指定事件同步狀態,P1=指定的事件編號,P2=事件狀態
70 00 主角慢慢走到座標(速度2),P1=X區塊,P2=Y區塊,P3=是否半區塊
71 00 畫面晃動,P1=晃動層次,P2=步進值
72 00 更換行動圖像,P1=事件編號,P2=MOG.MKF索引值,P3=是否重建MGO映像
73 00 泛金消散,P1=每次消散耗時,P2=消散次數
74 00 檢查我方隊員是否受傷,P1=有受傷應跳轉的腳本
75 00 調整隊伍,P1~P3=角色編號+1,0表示沒人
76 00 顯示圖片,P1=戰場編號,P2=等待時間
77 00 停止音樂
78 00 戰後返回地圖,無參數
79 00 檢測隊伍中是否有某人,P1=主角編號,P2=有的話應跳轉的腳本
7A 00 主角稍快走到座標(速度4),P1=X區塊,P2=Y區塊,P3=是否半區塊
7B 00 主角迅速走到座標(速度8),P1=X區塊,P2=Y區塊,P3=是否半區塊
7C 00 內定對象走到座標(速度4),P1=X區塊,P2=Y區塊,P3=是否半區塊
7D 00 相對移動事件物體,P1=事件編號,(P2,P3)=移動量
7E 00 設置事件物體所在層,P1=事件編號,P2=所在層編號
7F 00 移動視線,(P1,P2)=座標,P3=次數,-1時為絕對區塊座標,否則為相對像素
80 00 日夜切換,P1=是否高速切換
81 00 若活動對象不在目視指定範圍內則跳轉,P1=事件編號,P2=距離,P3=跳轉的腳本
82 00 內定對象跑到座標,P1=X區塊,P2=Y區塊,P3=是否半區塊
83 00 若對象不在指定範圍內則跳轉,P1=事件編號,P2=最大距離,P3=跳轉的腳本
84 00 放置事件,P1=事件編號,P2=觸發方式,P3=無法放置時跳轉的腳本
85 00 等待,P1=時間
86 00 若裝備著的該物品少於指定數量則跳轉,P1=物品編號,P2=數量,P3=跳轉的腳本
87 00 內定對象原地漫步,無參數
88 00 耗費錢數成為基本傷害,P1=仙術編號,基本傷害=5000或剩下的錢數/2.5
89 00 結束戰鬥,P1=戰鬥結果,0=逃離戰鬥、1=我方全滅、3=敵方全滅
8A 00 下一戰自動戰鬥,無參數
8B 00 更換調色盤,P1=調色盤編號
8C 00 指定色彩淡入,P1=顏色號,P2=每次淡入等待時間,P3=是否反轉淡入
8D 00 修行提升,P1=提升數量
8E 00 清空對話文字,無參數
8F 00 金錢減半,無參數
90 00 設定敵人腳本,P1=敵人編號,P2=腳本,P3=腳本類型
91 00 若敵人不是唯一則跳轉,P1=跳轉的腳本
92 00 覺醒(使用絕招姿勢),P1=主角編號
93 00 淡入淡出,P1=速度,正數時淡入,負數時淡出
94 00 若事件為指定狀態則跳轉,P1=事件編號,P2=事件狀態,P3=跳轉的腳本
95 00 若在指定場景則跳轉,P1=場景編號,P2=跳轉的腳本
96 00 靈兒飛上天,無參數
97 00 乘物高速飛到座標(速度8),P1=X區塊,P2=Y區塊,P3=是否半區塊
98 00 跟隨,P1=主物體事件編號,P2=跟隨物體事件編號
99 00 改變場景對應地圖,P1=場景編號,<0表示當前場景,P2=地圖編號
9A 00 設置事件序列狀態,P1=在前的物體事件編號,P2=在後的物體事件編號,P3=事件狀態
9B 00 淡入到當前圖景,P1=繪製方式,P2=戰場編號
      繪製方式:0=重繪、1=直接、2=淡入、FFFFh=生成
9C 00 若敵方分身失敗則跳轉,P1=分身數量,0表1,P2=跳轉的腳本
9D 00 若敵方復活失敗則跳轉,P1=是否單人,P2=跳轉的腳本
9E 00 若敵方召喚失敗則跳轉,P1=召喚敵人編號,<=0為同類,P2=召喚數量,P3=跳轉的腳本
9F 00 敵方變身,P1=變身後的敵人編號
A0 00 退出遊戲,無參數
A1 00 更新我方位置及步伐,無參數
A2 00 後面的指令隨機跳轉,P1=指令數
A3 00 播放CD音軌,P1=音軌號,P2=對應的音樂編號
A4 00 捲動圖片,P1=戰場編號,P2=事件編號,P3=速度
A5 00 淡入圖片,P1=戰場編號,P2=事件編號,P3=速度
A6 00 以當前畫面為底,無參數
A7 00 物品說明(98版新增)
FF FF 顯示對話,P1=對話索引編號

*** PAT.MKF

1.每個調色盤256個顏色,每個顏色3 byte,依次為RGB。
2.一個分檔裡若有兩個調色盤,分別為白天和晚上用的。

*** GOP.MKF

每個分檔為一個圖元包,其格式類似MKF檔為:

1.圖片在圖元包的位置/2:每個圖片2 byte整數
2.保留:2 byte,固定00 00
3.圖片內容:RLE圖片壓縮格式

所有圖片均使用PAT.MKF第0個調色盤。

*** MAP.MKF

分檔均經YJ_1壓縮,解壓後為一128x128菱形方陣(第一行為左上到右下),每一格4 byte,共64KB:

AA BB CC DD

AA = 下層圖元在對應的GOP.MKF圖元包裡的索引號
BB = 下層圖元控制
     20h = 是否為不可移動進入的區域(阻隔)
     10h = 是否擴展圖元索引,若是1的話,AA的值要再加上256才是實際索引號
     低4位元 = 下層圖層的層高
CC = 上層圖元在對應的GOP.MKF圖元包裡的索引號,0表無上層圖元
DD = 上層圖元控制
     10h = 是否擴展圖元索引,若是1的話,CC加上256才是實際索引號
     低4位元 = 上層圖層的層高

貼完GOP圖元後成為2048x2048的地圖。

*** RLE圖片壓縮格式

寬度:2 byte
高度:2 byte
圖片壓縮資料,解壓方式如下:

讀取一個byte,低7位元為像素數目
if 最高位元(80h)=1 then 像素為透明
else 讀取前述數目byte的像素資料(256色調色盤索引值)

*** YJ_1資料壓縮格式

YJ_1為一LZSS+Huffman編碼的壓縮法,其格式為:

文件標記:4 byte,固定為"YJ_1"(59 4A 5F 31)
壓縮前長度:4 byte
壓縮後長度:4 byte
編碼區塊數:2 byte
保留:1 byte,固定00
Huffman編碼樹長度:1 byte
Huffman編碼樹:後述
編碼區塊:後述

1.Huffman編碼樹

Huffman編碼樹為一完全二元樹,採用陣列記錄,其結構分成2個部份:

節點值:Huffman編碼樹長度*2個,每個1 byte,記錄根節點以外的所有節點值
葉節點旗標:Huffman編碼樹長度*2個位元,依次表示前述節點是否為葉節點

2.編碼區塊

本區塊壓縮前長度:2 byte,最大16KB(4000h)
本區塊壓縮後長度:2 byte,包含整個區塊
LZSS重複次數表:4個2 byte整數(LZSSRepeatTable[4])
LZSS偏移量編碼長度表:4個1 byte整數(LZSSOffsetCodeLengthTable[4])
LZSS重複次數編碼長度表:3個1 byte整數(LZSSRepeatCodeLengthTable[3])
同類編碼的編碼數的編碼長度表:3個1 byte整數(CodeCountCodeLengthTable[3])
同類編碼的編碼數表:2個1 byte整數(CodeCountTable[2])
已壓縮編碼資料

其中:

(1)LZSS重複次數表:按從高到低的順序存放本區塊中出現頻率最高的4個重複次數
(2)LZSS偏移量編碼長度表:將偏移量劃分為4個長度級別,按從小到大存放至本表
(3)LZSS重複次數編碼長度表:將LZSS重複次數表以外的重複次數,劃分為3個長度級別,按從小到大存放至本表
(4)同類編碼的編碼數的編碼長度表:將編碼數表以外的編碼數,劃分為3個長度級別,按從小到大存放至本表
(5)同類編碼的編碼數表:按從高到低的順序存放本區塊中出現頻率最高的2個編碼數

已壓縮編碼資料由HUFFMAN編碼和LZSS壓縮編碼交替組成,如下所示:

[HUFFMAN編碼塊] [LZSS編碼塊] [HUFFMAN編碼塊] [LZSS編碼塊]...

每個編碼塊都有一個編碼數,用以表明該編碼(Huffman或LZSS)有多少次,若是0次表示編碼資料結束。

(1)編碼數

讀取1個位元
if 位元=1 then 傳回CodeCountTable[0]
else
{
  讀取2個位元
  if 位元值=0 then 傳回CodeCountTable[1]
  else 讀取CodeCountCodeLengthTable[位元值-1]個位元傳回
}

(2)HUFFMAN編碼

從根節點開始,每次讀取1位元,0表示左子節點,1表示右子節點,重複直至葉節點為止,傳回節點值

(3)LZSS編碼

a.決定重複次數Count

讀取2個位元值A
if A=0 then 傳回LZSSRepeatTable[0]
else
{
  讀取1個位元
  if 位元值=0 then 傳回LZSSRepeatTable[A]
  else 讀取LZSSRepeatCodeLengthTable[A-1]個位元傳回
}

b.決定偏移量Offset

讀取2個位元值
傳回LZSSOffsetCodeLengthTable[位元值]

c.將目前輸出資料位置往前Offset的地方開始,複製Count個byte過來