網站首頁 單機圖文攻略 單機視頻攻略 單機遊戲攻略 單機遊戲問答 遊戲常見問題 遊戲心得體會 手遊圖文攻略 手遊視頻攻略 手遊圖鑑攻略 手遊軟件教程 手遊攻略問題 網遊圖文攻略 網遊綜合攻略 網遊遊戲問答
當前位置:趣味遊戲館 > 單機遊戲攻略 > 

[仙劍奇俠傳4]修改原理之天卷

欄目: 單機遊戲攻略 / 發佈於: / 人氣:2.12W

仙劍4數據存儲原理和地址規律

[仙劍奇俠傳4]修改原理之天卷

不想看原理的可以直接看最下面。 首先,系統下程序可用的內存地址是00400000-7FFFFFFF

但這回仙4的大部分人物屬性相關地址都保存在7F966880之後……而且到現在為止都是雙字節,裝備是4字節,所以最大值是65535,但在一些情況下最好別取這個值,後面再説。

仙4的人物屬性數據分4塊

戰鬥臨時數據:仙4中戰鬥時所調用的地址,但是這個地址是會變的,地址範圍也是很靠後,但應該在7F966880之前,這個等地卷解決。

人物基礎數據

人物現有MAX數據(就是在人物屬性界面所看到的,但精氣神保存的是最大值)

人物現有數據(同上,但精氣神保存的是現有值)

接下來重點説每個部分,這裏按雲天河的內存地址為例(這裏數據採用了2次收錄,數據有差異,但位置沒變) 以下地址我試了2次,50%認為地址是不變的。 人物基礎數據,人物最基礎的幾個屬性,這裏的屬性是人物的原始值,就是沒加裝備前的。依我判斷,這裏的值加上裝備的加成就生成了[人物現有MAX數據]中的攻擊。修改這裏最有效,但升級後是加成還是新算還待確認,但也可以直接鎖定掉。前面還有一些數據,沒仔細研究。

7F966880 00 00 00 00 AA 06 00 00 05 00 00 00 6D 00 00 00

----------------------精----------?-----------氣

7F966890 F7 00 00 00 AF 00 00 00 CB 00 00 00 DC 00 00 00

----------功----------防----------速-----------運

由於這裏的功是人物基礎值,基礎值+裝備加成才會=真正的輸出攻擊力,所以推薦這裏基礎值不要設到65535,容易溢出。如果想最大攻擊輸出,那就FFFF減該人物拿着的武器攻擊力的16位值,得出來的就可以添在這。

7F9668A0 99 00 00 00 CD CC 4C 3E AE 47 E1 3D 00 00 00 00

----------靈----------4字節為一組的數據,暫時還不知道是什麼

7F9668B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F9668C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F9668D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F9668E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F9668F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F966900 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 00

-------------------------------------------待確認

7F966910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F966920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F966930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F966940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

人物現有MAX數據,這裏的值都是按照人物基礎值+裝備加成後的值,所以大部分都是動態生成的,比如功,防,在這裏修改是沒用的,因為這裏只是顯示在遊戲中人物狀態裏的結果,當進入新的戰鬥後,戰鬥中的攻擊會重新計算,而不是直接調用這裏值。

7F966950 00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00

----------------------------------------------等級

7F966960 99 8E 00 00 00 00 00 00 00 00 00 00 00 00 00 00

----------總經驗值

7F966970 00 00 00 00 00 00 80 3F 00 00 80 3F 00 00 80 3F

7F966980 00 00 80 3F 00 00 00 00 00 00 80 3F 00 00 80 3F

7F966990 00 00 80 3F 00 00 80 3F 00 00 80 3F 00 00 80 3F

7F9669A0 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00

這一大段可能是分割符的作用

7F9669B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F9669C0 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00

----------------------------------未知

7F9669D0 00 00 00 00 09 06 00 00 05 00 00 00 61 00 00 00

----------------------精MAX------?----------氣MAX

7F9669E0 21 01 00 00 AF 00 00 00 B3 00 00 00 BF 00 00 00

----------攻值--------防值---------速值--------運值

7F9669F0 84 00 00 00 9A 99 99 3E CD CC CC 3D 00 00 00 00

----------靈值--------這4個字節是武器,後4個字節就不知道了,而且這個武器我覺得,可能只是調用位置,而不是武器代碼。

比如CD CC 4C 3E鑄雲鐵,9A 99 99 3E峯嶺刃,但下面有個土屬性戒指也是9A 99 99 3E。

7F966A00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F966A10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F966A20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F966A30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

----------------------------------水裝備加成---火裝備加成

這裏是指環的裝備地址,4字節,9A 99 99 3E是2個相同裝備,9A 99 19 3E是1個,但到底還有什麼規律呢?

7F966A40 00 00 00 00 00 00 00 00 9A 99 99 3E 00 00 00 00

----------雷裝備加成---風裝備加成---土裝備加成--水屬性值

各屬性值就是5靈的值,雙字節,之間間隔2個字節,但直接改這裏仍然對戰鬥中無影響

7F966A50 00 00 00 00 00 00 00 00 00 00 00 00 1F 00 00 00

----------火屬性值-----雷屬性值----風屬性值-----土屬性值

7F966A60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F966A70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F966A80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

7F966A90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

人物現有數據,是人物現有的狀態,比如還剩多少血就在這裏。也就是鎖定這裏的最大精就可以戰鬥結束後自動滿精了。

7F966AA0 00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00

----------------------------------------------現在等級

7F966AB0 99 8E 00 00 00 00 00 00 09 06 00 00 64 00 00 00

----------現有總經驗---------------現有精------現有氣

7F966AC0 52 00 00 00 00 00 80 3F 00 00 80 3F 00 00 80 3F

----------現有神

戰鬥臨時數據,是隨機產生的,但應該有個範圍,我抓了2次,分別在6FB2CB94,78BD2FdC附近。數據的結構和人物現有MAX數據裏的一樣,可以參考。

如果你在戰鬥臨時數據中修改了人物的攻擊力,之後受到加攻擊或減攻擊等法書的影響,那這個值將會從人物基礎數據處+裝備加成+法術中得出,再賦值給戰鬥臨時數據。而且戰鬥臨時數據在結束戰鬥後就消失,下場開始時再動態生成一個新的地址範圍,所以鎖定無用。

所以,仙4的人物數值可以這麼來理解:

人物基礎數據+裝備加成=人物現有MAX數據裏顯示的

人物現有數據<->戰鬥臨時數據是互導的關係,也就是戰鬥結束後HP為1004,會保存在人物現有數據中的7F966AB8,然後再次進入戰鬥模式時,會把這個值賦回給戰鬥臨時數據中的HP地址。那麼戰鬥中的數值是賦值給動態地址的,所以還沒辦法戰鬥中進行鎖定。

對於其他人物,他們之間的間隔為B14,也可以説一個人物的所有數據佔用了B14,就是2836字節。

按照這個可以想到,如果你想建立一個已經離隊的人物,你起碼得自己建起2836字節的數據。

那麼,其他人的地址分別如下,如果想要韓菱紗的攻擊,只要雲天河的攻擊地址7F966890+B14=7F9673A4,就是韓菱紗的基礎攻擊地址。

韓菱紗 7F967394

柳夢璃 7F967EA8

慕容紫英 7F9689BC

現在還沒確認的就是這個排列是否固定,我現在玩得人物少一個慕容紫英。

以下都為雙字節,數值最大65535,但避免溢出,不推薦設成那麼大的值。不用鎖定,但暫時還不知道升級後是不是又重新算了。

7F966890 雲天河的攻

7F966894 雲天河的防

7F966898 雲天河的速

7F96689C 雲天河的運

7F9668A0 雲天河的靈

7F9673A4 韓菱紗的攻

7F9673A8 韓菱紗的防

7F9673BC 韓菱紗的速

7F9673B0 韓菱紗的運

7F9673B4 韓菱紗的靈

7F967EB8 柳夢璃的攻

7F967EBC 柳夢璃的防

7F967EC0 柳夢璃的速

7F967EC4 柳夢璃的運

7F967EC8 柳夢璃的靈

7F9689CC 慕容紫英的攻

7F9689D0 慕容紫英的防

7F9689D4 慕容紫英的速

7F9689D8 慕容紫英的運

7F9689DC 慕容紫英的靈

還不肯定這個4個人物範圍是固定排列還是剩誰就排在前面。

如果要真正能夠鎖定精,氣,神,則需要找到戰鬥臨時數據地址生成的規律,鎖定了就可以。對了,如果HP鎖定後被一擊必殺打中(比如淮南王的奪魂)……不死亡(可以想到必殺的方程式不是,怪物攻擊輸出的值(顯示用)=人物的剩餘血量,狀態=死亡(直接死亡);可能是怪物攻擊輸出的值=人物的剩餘血量,人物的剩餘血量=人物的剩餘血量-怪物攻擊輸出的值,再 if 人物的剩餘血量=0 then 狀態=死亡)

地卷待解決的問題

1。對於64位系統而言,是否地址會隨着變更?

2。在32位對於XP和VISTA的內存地址是否會變更?(可能性小)

3。戰鬥時的內存地址範圍是多少,只見是否有個規律?

4。在7F966880修改的數值,人物升級後是在7F966880得值上修改加成還是被替換掉?

5。遊戲的地址是不是固定的?