這裡是亞夜,
《聖眼之翼》好好玩。
既然遊戲沒有續作,
那我們就自己來搞點樂子。
首先我們要先準備一個軟體叫作「Cheat Engine」,
當然你要使用「Game Master」也可以啦,
功能是一樣的,
總之就是能讓你修改記憶體數值的軟體。
今天的重點是要講解「如何修改單位能力」,
至於改錢什麼的那個太簡單了對吧(攤手
首先當然就是用Cheat Engine去針對我們的遊戲程式來做記憶體搜尋,
如果你是使用虛擬機(畢竟20年前的遊戲了,有相容性問題),
那就針對虛擬機做搜尋。
例如敝人使用Qemu,
那就對Qemu搜尋記憶體即可。
接著打開記憶體列表,
然後針對你要修改的角色狀態去做搜尋。
那麼在搜尋之前,
自然就得先知道格式才能對吧?
因此現在要先說明角色能力在記憶體內的格式,
他會長這個樣子:
具體來說是這樣的,
一名角色的記錄範圍為8行,
每行16個位元組又能4個一組分成4個部分,
接下來敝人要來解釋一下各欄位的功能。
在這之前呢,
我們先講解一下這些數字本身是怎麼記錄的。
在記憶體裡面使用的是8個位元來組成1個位元組,
而1個位元只能是0或1,
因此8個位元就能表示00000000~11111111共256個數字。
為了方便起見呢,
我們將4個位元共計16個數字以0~F表示成一個16進位的數字,
因此一個位元組我們就能簡單用2個數字來表示,
分別是00~FF這樣。
那麼如果我要表示超過256的數字怎麼辦呢?
在記憶體中的表示方式就是跳下一位。
換句話說,
256寫成16進位是100,
但一個位元組只能表示2個數字,
因此那個1就會跑到下一個位元組去,
變成00 01的方式表示。
這點是非常重要的要先記好,
因為如果你輸入01 00的話這樣只代表1而不是256,
這影響可是差很多的唷。
等級:
只能01~05,超過會當機。
01=入伍新兵
02=見習士兵
03=正規士兵
04=戰場勇士
05=百戰英雄
經驗值:
只能00~63,超過不知道會怎樣。
系統上,當結算時加算超過100(16進位中是64)時會歸零,
然後等級提升1級後加算能力值上去。
但如果等級5的話就會固定是00而不會再加算了。
擊殺數:
你自己填一個喜歡的數字,破萬都可以。
系統上,當結算時加算超過100時會隨機獲得稱號,
如果你一開始就改超過100那當然就無法觸發獲得稱號的條件。
稱號:
只能00~07,但最好不要超過05。
00就是沒有稱號,
其餘數字則根據角色職業不同對應不同的稱號。
有些職業只有5個稱號所以06會出現亂碼;
而有些職業有7個稱號。
總之你可以自己挑一個喜歡的稱號。
血:
血量你自己設定就好,
因為有4組16位元,理論上你要設定到42億都沒有問題,
但顯示上會不會出事敝人不敢保證。
可以確定的是,設定到10000以內是OK的,
只是顯示上會超過欄位而已。
魔:
一樣是你自己設定就好,
但除了艾絲特、僧侶、魔法師以外,
設定魔量沒有任何意義就是了。
攻擊力:
一樣是你自己設定就好,
原則上設定到255(FF 00)基本上除了猶正都是一擊殺,
考量到護甲會減半傷害那你設定511(FF 01)就是了。
當然,
設定到砍什麼都一下死這遊戲大概也沒什麼好玩的了吧?
防禦力:
一樣是你自己設定就好,
敵人最強攻擊力是猶正的32,
因此防禦力32(16進位:20)以上基本上被什麼打都是1滴。
而具有方向判定的敵方攻擊最強是帝國指揮官的18攻,
如果你擔心被指揮官背刺會痛的話那就設定到72(16進位:48)也就夠了,
(背面防禦仍有四分之一)
除非你用自己的火炮兵打自己人那另當別論。
攻速:
具體來說是攻擊延遲,
也就是說從「攻擊動畫發生」到「攻擊判定出現」為止的時間間隔,
因此數值越小攻速越快。
理論上0是最快,
但實際上受到「動畫」的制約,
改太小會導致傷害判定太早出現而導致揮空的狀態(理由後述),
並且實際上你攻擊動畫還沒播完也是不會進行下一刀的。 話雖如此,
各單位的預設值都比動畫還長,
所以把數值改小攻速一樣會變快就是了。
攻擊硬直:
角色揮刀後,
要間隔多久才能進行下一次揮刀。
不過原本大家都夠低了,
再改效果也不明顯。
建議保持03~08之間即可。
跑速:
移動速度,數字越大越快。
偵查兵預設是500(F4 01),
艾絲特、萊伊、女戰士預設是400(90 01),
翰朗、男戰士預設是375(77 01),
利貝爾是300(2C 01),
騎士是275(13 01),
迪尼亞斯跟弓箭兵是250(FA 00),
僧侶跟火炮兵是225(E1 00),
魔法師是200(C8 00)。
超過500的話會煞車失靈停不住愛的原地轉圈圈,
但說實在的,
500夠快了。
視野:
單位是「格數」,數字越大越遠。
偵查兵預設是20(14),
弓箭兵、魔法師、火炮兵、迪尼亞斯預設是15(0F),
艾絲特預設13(0D),
翰朗、女戰士預設11(0B),
萊伊、利貝爾、戰士、騎士預設10(0A),
僧侶則只有9。
你可以把艾絲特設定到255(FF),
這樣就相當於地圖全開了。
警戒區:
單位一樣是「格數」,數字越大越遠。
這個功能是,
當單位沒有收到「停止」或「移動」指令時,
會自動上前攻擊的距離。
預設上,
我方所有近戰都是8、弓箭單位13,
唯獨魔法師、僧侶、偵查兵、火炮兵是0,
也就是說他們不會主動攻擊。
射程:
單位可以發動攻擊的「距離」,數字越大越遠。
近戰單位都是64(40),
這大約是一格半的距離。
格子的邊長大約是40,
但角色自己佔掉1格,
所以從格子中心算起,
實際能攻擊到的範圍要先扣掉20左右,
因此只能打到隔壁格。
遠距離單位的話,
火炮兵是640(16格),
因此原則上看得到就轟得到。
弓箭兵射程是560(只有迪尼亞斯是580),
這點敵人也是一樣的,
火炮兵射程比他們更遠2格,
光這點差距就能欺負人家。
魔法師則只有480(12格)。
如果把我方近戰單位的射程改遠,
那麼我方近戰單位就會格空揮刀。
但是傷害判定看的是物件碰撞,
實際上你刀根本沒砍到所以沒有半點屁用,
這也說明了為什麼把攻速改0反而會砍不到人,
因為傷害判定發生時刀還在你頭上呢。
換句話說實際能改射程的只有遠距離單位而已。
盲區:
當敵人闖進盲區時,
則單位會後退拉開距離的距離,
單位跟射程一樣。
近戰單位都是0,
廢話,都近戰了還保持距離銃三小。
遠距離單位都是240(6格),
但這並不代表最小射程。
事實上,
你把這個數值改0的話遠距離單位就沒有最小射程了,
他們也會貼著敵人開砲,
只是要注意的是,
魔法師跟火炮兵貼太近發砲是會自爆的。
職業:
職業代碼,只能00~08。
00=女武神(艾絲特專用)
01=戰士
02=女戰士
03=騎士
04=弓箭兵
05=魔法師
06=僧侶
07=偵查兵
08=火炮兵
如果這個單位不是英雄(艾絲特、翰朗、萊伊、迪尼亞斯、利貝爾),
那改這個的同時也會影響到戰鬥模組。
換句話說,
你想提前取得火炮兵只需要隨便拿個新兵改成08就好了。
但如果是英雄單位的話改了不是沒效就是當機。
頭像:
頭像代碼:只能是00~22。
00=艾絲特
01=萊伊
02=迪尼亞斯
03=翰朗
04=利貝爾
05=猶正(正常版)
06=歐普里奧
07=王國騎士
08=男戰士
09=女戰士
0A=僧侶
0B=王國魔法師
0C=土洛村弓箭兵
0D=火炮兵
0E=偵查兵
0F=帝國指揮官
10=帝國斧鬥士
11=帝國持劍兵
12=帝國重裝騎士
13=帝國弓箭兵
14=帝國魔法師
15=神殿騎士
16=刀山賊
17=弓山賊
18=斧山賊
19=貴族劍士
1A=貴族騎士
1B=貴族弓劍兵
1C=食屍獸
1D=血爪蟲
1E=巨魔人
1F=男村民
20=女村民
21=老村民
22=猶正(BOSS)
如果你要改變泛用單位的兵種,
最好搭配頭像一起改免得自己誤會。
改成NPC的頭像只能自己爽,
最終來說玩家還是不能使用NPC單位來戰鬥。
OK,
知道格式以後,
接下來要說明要怎麼尋找自己的角色了。
首先你可以先新開遊戲,
或者讀取存檔也行。
新開遊戲的場合,
你的艾絲特一開始一定是「1級」、「0經驗」、「0擊殺」、「名字叫艾絲特」,
因此他的前兩行一定是長這樣:
01 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00
00 00 00 00 | A6 E3 B5 B7 | AF 53 00 00 | 00 00 00 00
A6 E3 B5 B7 AF 53是「艾絲特」三個中文字的BIG5碼,
反正一個中文字佔2個位元組,
所以名字有幾個中文字就很容易可以找到。
如果你是讀取存檔的場合,
你可能等級有提升、或者有經驗值、人頭等變化,
這樣你會比較好搜尋。
如果搜尋不到或改了沒效,
那你可以改搜尋血、魔、攻擊、防禦,
因為這些數值也是遊戲中可以直接看到的,
你會比較好搜尋。
總之先利用字串搜尋的方式定位出角色所在的記憶體位置後,
剩下的就只是相對位置而已。
每個角色佔用8行記憶體欄位,
因此相對8行之後就是下一個角色。
如果你要找的下一個角色不在8行之後那只是記憶體分配的問題而已,
你可以利用上述的方式自行搜尋目標角色的位置。