Like Share Discussion Bookmark Smile

J.J. Huang   2022-05-30   天堂私服 9.變身檔分析/修改   瀏覽次數:

天堂私服 | 變身檔-指向指令分析與修改

章節用意

此章將會針對變身檔中的指向指令,進行分析與修改,進而瞭解其特性與限制。

版本資訊

  • 客戶端版本
    • 天堂(Lineage 3.81C)
  • 核心版本
    • L1J-3.80c
  • 登入器版本
    • L1J-3.80c

前言

在開始前,請務必先將以下文章閱讀與實際操作過。

分析

  • 分析<根據TW13081901.txt>
    • 注意到在#786變檔編號裡面的”動作編碼”,有使用到8=784的方式(下圖第18行),這就是指向指令的用法。
    • 編碼內容說明:
      • 透過資料庫查詢#784甘地妖魔、羅孚妖魔使用的編號、#786阿吐巴妖魔使用的編號。
      • 編碼解析:
        • #7848.death(死亡動作),有定義使用的圖片張數圖片編號時間總合的完整動作編碼(橘色框)。
        • #786的第18行,使用8=784,下方做解釋。
          • 8 = 8.death
          • 784 = 變身編號#784。(注意不是定義圖檔編號)
        • 紫色框是表示#784死亡動作,呼叫的其中一張圖是784-24-000.bmp圖片。
        • 藍色框是表示#786攻擊動作,呼叫的其中一張圖是786-24-000.bmp圖片。

          註:為何要特別說明這兩個圖?因為他都是第24的圖檔,但是一個是給攻擊的一個是給死亡的,所以阿吐巴妖魔使用指向指令後,呼叫的圖檔就不會是原本的786-24-000.bmp圖,而是會去參考呼叫784-24-000.bmp

      • 指向指令說明:
        • 透過上方的解析可以知道,動作編碼,可以透過指向方式去執行別的變身編號內的變身編碼內容。
        • 白話說法:#786阿吐巴妖魔的死亡動作,直接使用#784甘地妖魔的死亡動作編碼內容+圖檔。

實驗修改

  • 使用王子#0,實驗修改。

    1
    8.death(1 12,96.11:4 96.0:4 96.1:4[1536 96.2:4 96.3:4 96.4:4 96.5:4 96.6:4 96.7:4 96.8:4 96.9:4 96.10:4)
    • 使用指向指令,指定到後面公主#1變身編碼。
    • 希望王子死亡的動畫,變成公主的死亡動畫。
      1
      2
      #0 312=3225	prince
      8=1
    • 測試王子死亡後,遊戲直接崩潰。
  • 接著反過來使用公主#1,實驗修改。

    1
    8.death(1 12,96.11:4 96.0:4 96.1:4[1545 96.2:4 96.3:4 96.4:4 96.5:4 96.6:4 96.7:4 96.8:4 96.9:4 96.10:4)
    • 使用指向指令,指定到前面王子#0變身編碼。
    • 希望公主死亡的動畫,變成的王子死亡動畫。
      1
      2
      #1 312=3227	princess
      8=0
    • 測試死亡後,正常顯示為王子的死亡動畫。

      註:所以指向指令所指定的變身編號,必須要小於自己的變身編號。

  • 是否可以透用其他的動作編碼?例如攻擊、走路?

  • 主要使用公主#1,實驗修改。

    • 王子#0的空手攻擊動作編碼
      1
      1.attack(1 7,0.0:0 16.0:3 16.1:3 16.2:3 16.3:5[1539 16.4:2! 16.5:4)
      • 圖片張數 = 7
      • 時間總合 = 0 + 3 + 3 + 3 + 5 + 2 + 4 = 20
    • 公主#1的空手攻擊動作編碼
      1
      1.attack(1 8,0.0:0 16.0:2 16.1:3 16.2:5 16.3:3 16.4:2[246 16.5:2! 16.6:3)
      • 圖片張數 = 8
      • 時間總合 = 0 + 2 + 3 + 5 + 3 + 2 + 2 + 3 = 20
    • 修改公主的空手攻擊,指向到王子的空手攻擊。
      1
      2
      #1 312=3227	princess
      1=0
    • 測試空手攻擊,正常顯示為王子的攻擊動畫。
  • 加碼使用活鎧甲#1578,實驗修改。

    1
    1.attack(1 13,8.0:4 16.0:4 16.1:6 16.2:5[731 16.3:2 16.4:3! 16.5:2 16.6:5 16.7:2 16.8:3! 16.9:4 16.10:4 16.11:4)
    • 圖片張數 = 13
    • 時間總合 = 4 + 4 + 6 + 5 + 2 + 3 + 2 + 5 + 2 + 3 + 4 + 4 + 4 = 48
      • 修改活鎧甲的空手攻擊,指向到王子的空手攻擊。
        1
        2
        #1578 40 living armor
        1=0
      • 測試空手攻擊,正常顯示為王子的攻擊動畫。
      • 但!可以看到原本活鎧甲攻擊速度是比較慢的,但是指向王子的攻擊後,攻擊速度提升了,那是因為時間總合變短了。
      • 這樣可能會被伺服器的偵測到而傳送特定地圖了。

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

怪死消失

  • 依照指向指令的特性,可以利用這個將死亡的動作變成使用火炎蛋的圖檔。
  • 此使用362這個空變身編號,來新增怪死消失的死亡效果。
    1
    2
    3
    4
    #362  40=1820 fire egg death
    8.death(1 1,32.10:0)
    102.type(10)
    104.attr(8)
  • 設定狼人#1110的死亡指向到362
    1
    2
    #1110 48      warewolf two
    8=362
    • 測試狼人怪物死亡後的效果。

      註:不只應用在怪死消失,還有火窟除除霧除火…等等。

總結

  • 針對指向指令 -
    • 指向的指令變身號碼,必須小於自身的變身編號。

      註:其實可以透過其他變身編號去解決這問題;請自行思考嘗試看看。

    • 指向指令後,所讀取的圖檔為指向的變身編號的號碼為主要號碼。
    • 指向指令可以指向其他的變身編號,不限於死亡、攻擊…其他的自己試驗看看。

結語

原創文章真的不易,希望多多支持,感謝。
最後建議回顧一下首章天堂私服 | 天堂私服架設教學,了解其章結目錄。

免責聲明

  • 本部落格文章中皆不提供任何所謂的遊戲「主程式」、「模擬器」、「登入器」…等等相關程式的下載點。
  • 本部落格文章中所見之遊戲主程式和服務器端程序均來自網路發佈,版本歸原作者所有
  • 本部落格文章為研究SQL資料庫與修改JAVA語法使用,非商業用途,亦無做營運事實等任何一切商業行為
  • 本部落格文章內容是為研究學習設計思想和原理為目的,絕沒有故意侵權或惡意抄襲、篡改其他遊戲內容

註:以上參考了
Linhelper論壇 - [教學] [彙整]List.spr變身檔網路教學彙整