Like Share Discussion Bookmark Smile

J.J. Huang   2022-05-12   天堂私服 09.變身檔分析/修改   瀏覽次數:次   DMCA.com Protection Status

天堂私服 | 變身檔與 gfxid、polyid 分析

章節用意

在分析核心、資料庫、對話檔的過程中,對於變身相關的部分,主要就兩個關鍵字欄位分別為gfxidpolyid,時常混淆不清楚其定義,此處針對兩個欄位做分析與解釋。

版本資訊

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

前言

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

<如有錯誤或是可以提供更詳細的說明,歡迎糾正與分享。>

說明

  • 開始說明前,要先理解一些簡單的定義:

    • 圖檔編號:表示圖片的檔名。
      • 例:362-0.spr,圖檔編號為362
    • 變身編號:表示於list.spz內的編號。
      • 例如:
        • #240 64 Death Knight#240表示變身編號為240,此時沒定義圖檔編號,則是直接使用圖檔編號與自身相同24064張圖。
        • #5641 64=240 Death Knight#5641表示變身編號為5641,而64=240則表示使用的是圖檔編號為24064張圖。

          註:詳細的list編輯教學在後面進階教學章節會再慢慢介紹。

  • 另外要認識欄位、變數名稱的命名:

    • gfxid
      • 英文縮寫GFX的英文全稱,查詢結果是Graphic Effect(s),中文意思是圖形效果
    • polyid
      • 完整英文應該是Polymorph,中文意思是同質異形性,太專業的術語,其實還有另一個意思就是變形

簡單來說就是gfxid對應的就是圖形的索引,而polyid就是對應變身的索引

註:以上名稱的命名,應該是這樣表示;當初開這個Schema的作者到底是不是用這英文意思…就需要原作者說明。

問題

看完定義後,產生幾個疑問:

  • gfxid對應的是圖檔的編號?
  • polyid對應的是變身編號?
  • gfxidpolyid的差異在哪裡?
  • gfxidpolyid分別應用在哪裡?

分析

  • 0.分析前準備:
    • 登入器的TW13081901.txt變身檔。
    • L1Viewer 工具
    • 資料庫的npcpolymorphs的表。
  • 1.針對gfxid進行分析
    • 進入資料庫使用以下SQL語法進行搜尋。
    • 可以搜尋出每個gfxid對應的怪物名稱,方便後面進行分析。
      1
      SELECT name, gfxid FROM `npc` GROUP BY name, gfxid ORDER BY gfxid DESC

    • 首先針對死亡騎士11616進行分析。
    • 接著到TW13081901.txt裡面搜尋#11616的內容。
    • 可以找到#11616 64 Lightning DeathKnight#11616表示變身編號為11616,此時沒定義圖檔編號,則是直接使用圖檔編號與自身相同1161664張圖。
    • 用圖檔編號11616,透過搜尋L1Viewer 工具去搜尋。
    • 可以看到該圖檔的預覽畫面如下。
    • 使用GM指令使用 (影像動畫),來放置預覽該圖檔動畫。
      1
      .gfxid 11616 1 1
    • 呈現效果如下圖。
    • 使用GM指令使用 (人物變身)來變身。
      1
      .poly 線上GM 11616
    • 變身效果如下圖。

      註:為什麼用L1Viewer預覽圖片沒有閃電殘影,這邊卻有?這部分是因為變身編碼有使用105.clothes加上去的效果,關於這個在list編輯教學在後面進階教學章節會再慢慢介紹


    • 接著我們在分析守護兵11442進行分析。
    • 接著到TW13081901.txt裡面搜尋#11442的內容。
    • 可以找到#11442 48=5246 spear of saint cross daker#11442表示變身編號為11442,而48=5246則表示使用的是圖檔編號為524648張圖。
      • 額外嘗試:
        • 1.可以嘗試使用L1Viewer看可不可以找到11442的圖檔,答案是沒有這張圖的,因為他指向的是5246
        • 2.搜尋TW13081901.txt裡面搜尋#5246的內容,會發現他是有直接定義變身編號為#5246 48 spear of saint cross的。

          註:到這邊應該可以知道變身編號和圖檔編號的一個關係了。疑問?所以114425246不就是一樣的嗎?關於這個在list編輯教學在後面進階教學章節會再慢慢介紹

    • 用圖檔編號5246,透過搜尋L1Viewer 工具去搜尋。
    • 可以看到該圖檔的預覽畫面如下。
    • 使用GM指令使用 (影像動畫),來放置預覽該圖檔動畫。
      1
      .gfxid 11442 1 1
    • 呈現效果如下圖。
    • 使用GM指令使用 (人物變身)來變身。
      1
      .poly 線上GM 11442
    • 變身效果如下圖。

  • 2.針對polyid進行分析
    • 進入資料庫使用以下SQL語法進行搜尋。
    • 可以搜尋出每個polyid對應的變身名稱,方便後面進行分析。
      1
      SELECT name, polyid FROM `polymorphs` GROUP BY name, polyid ORDER BY polyid DESC

    • 首先針對death 809206進行分析。
    • 接著到TW13081901.txt裡面搜尋#9206的內容。
    • 可以找到#9206 64=240 ancient platinum Death Knight morph#9206表示變身編號為9206,而64=240則表示使用的是圖檔編號為24064張圖。
    • 後面的操作基本上都與上方的分析是一致的結果,就不再示範。

結論

  • gfxid對應的是圖檔的編號?
    • 其實實質上是對應變身編號的。
  • polyid對應的是變身編號?
    • 其實實質上是對應變身編號的。
  • gfxidpolyid的差異在哪裡?
    • 其實可以說是沒有差異,只是在運用上定義成兩個不一樣的名稱,方便分類。
  • gfxidpolyid分別應用在哪裡?
    • gfxid通常運用在:
      • 怪物的樣子。
      • 怪物施放的魔法動畫。
      • 地形的場景(門、陷阱..等等)。
      • 武器施放的魔法動畫。
    • polyid通常運用在:
      • 對應變身清單(polymorphs)。
      • 套裝變身(惡魔全套、死騎全套..等等)。
      • 怪物施放的魔法動畫。
      • 人物狀態(變身→對應的變身)。

所以!

  • gfxidpolyid都是對應list編碼裡面的變身編號(#362)
  • gfxidpolyid是否就是對應圖檔編號(362-0.spr),這是不一定的,取決於編碼內對應的編號。

還是不懂?再來個例子:

  • 完全可以對應:

    1
    2
    3
    gfxid = 362
    #362 64
    362-0.spr
  • 不完全對應:

    1
    2
    3
    gfxid = 11442
    #11442 48=5246
    5246-0.spr

結語

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

免責聲明

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