創作內容

5 GP

[RO]隨筆紀錄‧新版物品名稱&洞數顯示。(2017年1月補充說明)

作者:真‧能貓│仙境傳說 Ragnarok Online│2016-12-15 04:15:07│巴幣:18│人氣:8288
因應修正檔需要所作的紀錄。主要是針對未鑑定物品的部分。


官方維修更新後,物品名稱、說明、洞數的資訊檔有所變更。

●舊版
已鑑物品名稱 idnum2itemdisplaynametable.txt
未鑑物品名稱 num2itemdisplaynametable.txt
未鑑物品名稱 num2itemdesctable.txt
物品洞數顯示 itemslotcounttable.txt

●新版
RO資料夾\System\iteminfo.lub
(包含未鑑名稱&說明、已鑑名稱&說明、洞數,因此上述txt檔已作廢)

●反編譯
使用luadec5.1.4(lub→lua反編譯器),將原版iteminfo.lub轉成iteminfo.lua
再將iteminfo.lua修改副檔名為lub,變成新版iteminfo.lub(不改副檔名將無法使用)

●修改成未鑑顯示物品名稱
打開新版iteminfo.lub,可以看到每項物品資訊、新的顯示方式。

以舊版txt檔寫的『5124#菲力卡的頭箍#』為例,新版lub檔是這樣列的:
[5124] = {
unidentifiedDisplayName = "頭盔",
unidentifiedResourceName = "葷",
unidentifiedDescriptionName = {"尚未鑑定。 可使用[放大鏡]做鑑定。"},
identifiedDisplayName = "菲力卡的頭箍",
identifiedResourceName = "葬蘋憮贗葩",
identifiedDescriptionName = {"受到巴圖肋母親,女神菲力卡祝福的頭箍,可以看到女神一點點的智慧似的.", "MDEF + 10,INT + 2,MSP + 50", "系列 : ^777777頭具^000000    防禦 : ^7777776^000000", "位置 : ^777777上面^000000    重量 : ^77777730^000000", "要求等級 : ^77777765^000000", "裝備 : ^777777除了初學者系列之外所有職業都可以裝備^000000"},
slotCount = 0,
ClassNum = 251}

拉到新版iteminfo.lub最下方,會看到一行:
result, msg = AddItem(ItemID, DESC.unidentifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum), ItemID

若要使未鑑定物品顯示原名稱,則修改成:
result, msg = AddItem(ItemID, DESC.identifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum), ItemID

當然講究一點的話,應該要讓未鑑定物品顯示成物品名稱[洞數](未鑑定)』+『已鑑物品說明』
只是物品那麼多個,有沒有比較簡單的改法?


就結論而言,


若要出現已鑑物品說明,將下面這段:
for k,v in pairs(DESC.unidentifiedDescriptionName) do
  result, msg = AddItemUnidentifiedDesc(ItemID, v), ItemID
修改成:
for k,v in pairs(DESC.identifiedDescriptionName) do
  result, msg = AddItemUnidentifiedDesc(ItemID, v), ItemID

若要出現物品名稱[洞數](未鑑定)』,必須修改成:
result, msg = AddItem(ItemID, DESC.identifiedDisplayName.."["..DESC.slotCount.."](未鑑定)", DESC.identifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum), ItemID

只是有個小問題......0洞也會顯示
例如上面的5124#菲力卡的頭箍#』,在遊戲中會顯示成『菲力卡的頭箍[0](未鑑定)』。

若要讓有洞物品顯示物品名稱[洞數](未鑑定)』,0洞物品顯示物品名稱(未鑑定)』則改成:
if ( DESC.slotCount == 0 ) then
      result, msg = AddItem(ItemID, DESC.identifiedDisplayName.."(未鑑定)", DESC.identifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum), ItemID
    else
      result, msg = AddItem(ItemID, DESC.identifiedDisplayName.."["..DESC.slotCount.."](未鑑定)", DESC.identifiedResourceName, DESC.identifiedDisplayName.."["..DESC.slotCount.."]", DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum), ItemID
    end

目前採用此種顯示方式。
好處是不會動到物品列表的任何內容,鼠標不用指到物品就會顯示洞數。
壞處是如果鼠標指到物品,物品名稱會顯示2個洞數(1個是官方內建的)。

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3414980
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:仙境傳說 Ragnarok Online

留言共 6 篇留言

aronis
for k,v in pairs(DESC.unidentifiedDescriptionName) do
result, msg = AddItemUnidentifiedDesc(ItemID, v), ItemID

這一段,改成
for k,v in pairs(DESC.identifiedDescriptionName) do
result, msg = AddItemUnidentifiedDesc(ItemID, v), ItemID

讓未鑑定的物品資料直接讀到已鑑定的說明

12-18 14:33

真‧能貓
說明那部分我會改
現在是懶惰弄把未鑑名稱註明未鑑定(例如:unidentifiedDisplayName = "菲力卡的頭箍(未鑑定)"),這樣的步驟[e20]12-18 15:11
真‧能貓
已嘗試其它改法,補上說明&優缺點。01-10 23:27
小透
0洞不顯示我自己是這樣改
if DESC.slotCount==0 then
result, msg = AddItem(ItemID,DESC.identifiedDisplayName.."(未鑑定)", DESC.identifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum), ItemID
else
result, msg = AddItem(ItemID,DESC.identifiedDisplayName.."["..DESC.slotCount.."](未鑑定)", DESC.identifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum), ItemID
end

02-12 12:37

Duke
請問一下
所以現在如果是要讀取官方洞數
又要"不會雙重洞數顯示"的方法目前無解嗎?

04-08 18:51

真‧能貓
...你如果不修改文件,就只有1個洞數啊(官方的),只是物品不會直接顯示洞數。

若你不僅鼠標指到物品前、連指到後都只想出現1種洞數,
早期把itemslotcounttable.txt內容砍光就行(但有文字變深紫&洞數灰色的副作用)
現在該txt文件不再使用後,以我想得到的改法步驟大概是:

1.先自己在物品名稱後面手動加洞數
2.把每項物品的slotCount改成0

RO有洞數的物品成千上百個,我是不曉得要弄到什麼時候啦。
而且維護不易,一旦官方偷改物品名稱或洞數卻沒公告,你還要自己手動修改。
(這情況新X線開活動時期經常發生)

要是有除此之外的隱藏方法,我也想請教一下。04-09 00:00
Duke
看來真的麻煩呢
那還是保持雙重洞數好了
看得懂就好QQ

04-11 17:37

不正義
你好,我想要使未鑑定顯示原名稱,所以照你的文改了這部分

result, msg = AddItem(ItemID, DESC.identifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum), ItemID

但好像沒成功...(ps.我使用官方登入器)
請問是還需要改什麼檔案嗎

04-14 11:13

真‧能貓
目前修正的改法跟文章最下面那段一樣。
改對就一定能顯示,不能顯示大概就...改錯位置吧(?04-14 16:43
不正義
原來我改成data.grf下的system/iteminfo.lub了
另外,我的luadec 5.1.4 解譯出來的程式碼下面跟你的文章不太一樣

main = function()
do break end
do
local (for generator), (for state), (for control), ItemID, DESC = pairs(tbl)
result = AddItem(ItemID, DESC.unidentifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum)
if not result then
return false, msg
end
for k,v in pairs(DESC.unidentifiedDescriptionName) do
result = AddItemUnidentifiedDesc(ItemID, v)
if not result then
return false, msg
end
end
for k,v in pairs(DESC.identifiedDescriptionName) do
result = AddItemIdentifiedDesc(ItemID, v)
if not result then
return false, msg
end
end
end
end
-- DECOMPILER ERROR: Confused about usage of registers for local variables.

請問你還是用 5.1.4嗎?

04-14 23:10

真‧能貓
是...吧?
我用的版本跟修正同樣擺在MG空間裡,你可以去看一下。04-15 14:18
我要留言提醒:您尚未登入,請先登入再留言

5喜歡★yachina 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:[日常]7870退役,1... 後一篇:[Payday2]DLC...

追蹤私訊切換新版閱覽

作品資料夾

rufu90229愛繪本的巴友
快來抽我新出的繪本吧:https://reurl.cc/8vX59g看更多我要大聲說昨天08:27


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】