天堂私服 | 變身檔-走路分析與修改
章節用意
此章將會針對變身檔中的0.walk空手走路動作,進行分析與修改,進而瞭解其特性與限制。
版本資訊
- 客戶端版本- 天堂(Lineage 3.81C)
 
- 核心版本- L1J-3.80c
 
- 登入器版本  - L1J-3.80c
 
前言
在開始前,請務必先將以下文章閱讀與實際操作過。
注意事項
- 請將伺服器端開啟加速器檢測功能。- 原因:用於測試修改變身檔總單位時間的偵測極限。1 
 2
 3
 4
 5# 加速器偵測功能,開啟後將檢驗封包發送間隔時間 
 # Move: 移動間隔 Attack: 攻撃間隔 Spell: 技能使用間隔
 CheckMoveInterval = true
 CheckAttackInterval = true
 CheckSpellInterval = true
 
- 原因:用於測試修改變身檔總單位時間的偵測極限。
- 人物使用非GM角色進行測試。- 原因:此測試的伺服器核心會將加速器偵測排除掉GM角色。
 
- 原因:此測試的伺服器核心會將加速器偵測排除掉
- 請不要因更動變身檔後,重新產生和更新資料庫的spr_action。- 原因:保持修改前的資料,測試伺服器的偵測極限。
 
分析
- 圖片張數數量分析<根據TW13081901.txt>:- 有向性:1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17// 動作編碼 = 共有幾個編號使用 → 說明 
 0.walk(1 0) = 0 → 無,理論上不可能沒有圖片。
 0.walk(1 1) = 765 → 表示不會移動,例:木頭人。
 0.walk(1 2) = 3 → 理論不會移動,例:黑暗精靈稻草人。
 0.walk(1 3) = 6 → ?
 0.walk(1 4) = 789 → 使用了4張圖,例:王子、骷髏、石頭高崙、巴風特..等等。
 0.walk(1 5) = 3 → 使用了5張圖,例:魔法師。
 0.walk(1 6) = 67 → 使用了6張圖,例:人形殭屍、哥布林、亞力安..等等。
 0.walk(1 7) = 1 → ? 例:皮革工藝NPC。
 0.walk(1 8) = 1447 → 使用了8張圖,例:狼、狼人、萊肯、怪手、格倫NPC..等等。
 0.walk(1 9) = 13 → 使用了9張圖,例:青蛙、卡司特、卡司特王..等等。
 0.walk(1 10) = 4 → ?
 0.walk(1 11) = 0 → 無。
 0.walk(1 12) = 753 → 使用了12張圖,例:妖魔殭屍、紙人、活鎧甲..等等。
 ...省略... = 0 → 無。
 0.walk(1 15) = 1 → ?註:可以看到使用占比較高的為 4與8張圖,基本上可以說多數的人物、怪物都是使用4與8張圖。
- 無向性:1 
 2
 3
 4
 5
 6
 7// 動作編碼 = 共有幾個編號使用 → 說明 
 0.walk(0 0) = 0 → 無,理論上不可能沒有圖片。
 0.walk(0 1) = 30 → 船、叉叉圖。
 0.walk(0 8) = 3 → 矮史密斯NPC。
 0.walk(0 11) = 1 → 沙漠進蟻洞的流沙動畫。
 0.walk(0 16) = 3 → 菁英林德拜爾制空動畫。註:以上僅自己透過分析變身檔整理出來的資訊,並不表示就是最正確與完整。 
 註:走路的部分不僅僅只有空手走路,還有拿不同武器的走路,這邊就不特別列出。
 
- 有向性:
- 以下盡量提供各個0.walk的範例:- 王子#0: - 圖片張數 = 4
- 時間總合 = 4 + 4 + 4 + 4 = 16
 
- 圖片張數 = 
- 人形殭屍#52: - 圖片張數 = 6
- 時間總合 = 8 + 8 + 8 + 10 + 8 + 8 = 50
 
- 圖片張數 = 
- 狼人#1110: - 圖片張數 = 8
- 時間總合 = 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 = 16
 
- 圖片張數 = 
- 活鎧甲#1578: - 圖片張數 = 12
- 時間總合 = 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 = 36
 
- 圖片張數 = 
 
- 王子#0:
實驗修改
- 以下使用王子#0,實驗修改。 - 1 - 0.walk(1 4,0.0:4<479 0.1:4 0.2:4<478 0.3:4) 
- 改變圖片張數: - 分別為0、1、2、3、時間總合都維持原來的16。- 0= 叉叉,- 1= 無法移動,- 2= 無法移動,- 3= 可以移動。- 1 
 2
 3
 4- 0.walk(1 0) 
 0.walk(1 1,0.0:16<479)
 0.walk(1 2,0.0:8<479 0.3:8)
 0.walk(1 3,0.0:4<479 0.2:6<478 0.3:6)      
 
 
- 分別為
- 改變時間總合: - 分別為15、14、13、12,圖片張數維持原來的4。- 數字越小,可以觀察到有些微的移動速度加速。1 
 2
 3
 40.walk(1 4,0.0:4<479 0.1:4 0.2:4<478 0.3:3) 
 0.walk(1 4,0.0:4<479 0.1:4 0.2:3<478 0.3:3)
 0.walk(1 4,0.0:4<479 0.1:3 0.2:3<478 0.3:3)
 0.walk(1 4,0.0:3<479 0.1:3 0.2:3<478 0.3:3)      
 
- 數字越小,可以觀察到有些微的移動速度加速。
- 修改為4,圖片張數維持原來的4。- 可見移動速度明顯加快,但是移動過快,被伺服器的偵測到而傳送特定地圖了。1 0.walk(1 4,0.0:1<479 0.1:1 0.2:1<478 0.3:1)  註:每個伺服器偵測的基準與演算法請自行研究分析。 
 
- 可見移動速度明顯加快,但是移動過快,被伺服器的偵測到而傳送特定地圖了。
 
- 分別為
- 以下使用狼人#1110,實驗修改。1 0.walk(1 8,0.0:2 0.1:2> 0.2:2 0.3:2> 0.4:2 0.5:2> 0.6:2 0.7:2>) 
- 改變圖片張數:- 修改為4,時間總合都維持原來的16。- 於原始8張圖的比較,會有錯覺感覺走比較快,但是其實是一樣的速度。1 0.walk(1 8,0.0:4 0.2:4 0.4:4 0.6:4)    
 
- 於原始
 
- 修改為
結論
- 針對 - 0.walk走路動作 -- 最少需要3幾張圖,才可移動。
- 時間總合基於伺服器的偵測,而判斷可減少多少,不然很容易回碩、偵測、退回。
- 如需要動作更加細膩,可使用多張圖片張數達成,例:狼人。
- 多數動作緩慢的怪物、NPC…等等,基本上都是使用多張圖片,但也有例外,例:狼人。
 - 注意:走路的部分不僅僅只有空手走路,還有拿不同武器的走路。 
- 最少需要
結語
原創文章真的不易,希望多多支持,感謝。
最後建議回顧一下首章天堂私服 | 天堂私服架設教學,了解其章節目錄。
免責聲明
- 本部落格文章中皆不提供任何所謂的遊戲「主程式」、「模擬器」、「登入器」…等等相關程式的下載點。
- 本部落格文章中所見之遊戲主程式和服務器端程序均來自網路發佈,版本歸原作者所有。
- 本部落格文章為研究SQL資料庫與修改JAVA語法使用,並非商業用途,亦無做營運事實等任何一切商業行為。
- 本部落格文章內容是為研究學習設計思想和原理為目的,絕沒有故意侵權或惡意抄襲、篡改其他遊戲內容!

 
		