Like Share Discussion Bookmark Smile

J.J. Huang   2022-05-07   天堂私服 8.對話檔分析/修改   瀏覽次數:

天堂私服 | 執行行動分析<道具篇>

章節用意

透過分析”說話卷軸”的道具,嘗試分析與伺服器之間的互動,並不會介紹過多的程式碼,僅大略提及說明。
常見應用用途:

  • 道具 → 變身清單
  • 道具 → 內掛選單
  • 道具 → 隨身商店
  • 道具 → 隨身倉庫

版本資訊

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

前言

在開始分析前,請務必先將以下文章閱讀完畢。

分析

以下分析使用說話卷軸來做分析。
可見說話卷軸點擊使用後顯示對話檔內容。

  • 1.使用名稱找尋:
    • 進入資料庫搜尋etcitemname說話卷軸
    • 結果的item_id40641
      1
      2
      SELECT * FROM	etcitem WHERE NAME = '說話卷軸'
      -- 40641
  • 2.分析對應的程式碼:
    • 關於細部程式碼請自行分析,非此篇重點<請自行閱讀程式碼>
    • 搜尋關鍵字40641找尋哪裡有在做判斷。
    • 可以發現有一段程式碼在判斷使用。
      1
      `else if (itemId == 40641) { // 說話卷軸`
    • class如下。
      1
      src/l1j/server/server/clientpackets/C_ItemUSe.java
    • 關鍵的程式碼為下面這段去呼叫開啟tscrollp的對話檔。
      1
      pc.sendPackets(new S_NPCTalkReturn(pc.getId(), "tscrollp"));
  • 3.使用抽檔程式抽檔:
    • 使用抽檔工具去看tscrollp對話檔。
    • 以下為tscrollp對話檔的內容,對應說話卷軸的內容。
    • 透過抽檔工具匯出該對話檔`tscrollp-c.html。
  • 3.查看對話檔:
    • 以下使用編輯器去開啟。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      <body>
      <font fg=ffffff><p align=left>說話卷軸 :</p></font>
      <br>
      你好,我是從象牙塔誕生的知識結成體,『說話卷軸』<br>
      象牙塔是世界的魔法根源地,我也因此具備許多知識<br>
      <br>
      從現在開始,我會陪同 <username> 一起冒險,冒險所需的知識可以透過我來獲得<br>
      <username> 有任何問題,可以隨時問我<br>
      <br>
      如果是我無法回答的問題,或想要更詳細的說明,請按住鍵盤 <font fg=ffffff>CTRL鍵,同時按 H 鍵</font><br>
      <br>
      <br>
      <a link="tscrollp0">有關新情報</a><br>
      <br>
      <font fg=ffffaf>前言</font><br>
      <br>
      <a link="tscrollp1">有關說話卷軸</a><br>
      <br>
      <br>
      <font fg=ffffaf>順序</font><br>
      <br>
      <a link="tscrollp2">第1章 - 有關 移動、攻擊、對話 </a><br>
      <a link="tscrollp3">第2章 - 有關村莊 </a><br>
      <a link="tscrollp4">第3章 - 有關地監 </a><br>
      <a link="tscrollp5">第4章 - 有關城堡 </a><br>
      <br>
      </body>
    • 這邊就不特別做說明,主要是了解到使用道具去呼叫對話檔的一個分析。

結論

  • 程式碼:
    • src/l1j/server/server/clientpackets/C_ItemUSe.java
      • 處理客戶端來的使用道具時的處理。

結語

在此章節主要分析使用道具時與伺服器端互動所對應的對話檔。
所以這個可以運用的地方就很多了,只需要發揮點巧思很多東西都可以透過這方是去製作,就像文章開頭提到的那些應用。

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

免責聲明

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