您当前位置: 天堂123 > 天堂架設 > 天堂私服走路分析與修改

天堂私服走路分析與修改

2022/5/25

請將伺服器端開啟加速器檢測功能。
原因:用於測試修改變身檔總單位時間的偵測極限。
# 加速器偵測功能,開啟後將檢驗封包發送間隔時間
# Move: 移動間隔  Attack: 攻撃間隔  Spell: 技能使用間隔
CheckMoveInterval = true
CheckAttackInterval = true
CheckSpellInterval = true
人物使用非GM角色進行測試。
原因:此測試的伺服器核心會將加速器偵測排除掉GM角色。
請不要因更動變身檔後,重新產生和更新資料庫的spr_action。
原因:保持修改前的資料,測試伺服器的偵測極限。
分析
圖片張數數量分析<根據TW13081901.txt>:
有向性:
// 動作編碼   = 共有幾個編號使用 → 說明

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張圖。

無向性:
// 動作編碼   = 共有幾個編號使用 → 說明

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.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 = 可以移動。
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。
數字越小,可以觀察到有些微的移動速度加速。
0.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。
可見移動速度明顯加快,但是移動過快,被伺服器的偵測到而傳送特定地圖了。
0.walk(1 4,0.0:1<479 0.1:1 0.2:1<478 0.3:1)

註:每個伺服器偵測的基準與演算法請自行研究分析。

以下使用狼人#1110,實驗修改。
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張圖的比較,會有錯覺感覺走比較快,但是其實是一樣的速動。
0.walk(1 8,0.0:4 0.2:4 0.4:4 0.6:4)