Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 12/14/19 in all areas

  1. 1 point
    Introduction Well this idea came up when evilpunker asked about the possibility of having a patch which loads a second file which overrides the iteminfo file. But there is a better way to do that with lua itself. How to do it? The key idea is that the item information is added using the main function by the client. so in your custom file you just need to modify the main function to accept your items. Here is how it can be done. -- Load the original file. As you might have guessed you can also load your translated file here instead -- (just make sure the "tbl" array contains your item info) dofile("System/iteminfo.lub") -- Now as a simple example . I am simply going to change name of Red Potion to Crimson Potion. -- But you can add anything in the same way. Format is same as the original one, just -- the table name is different tbl_custom = { [501] = { unidentifiedDisplayName = "Crimson Potion", unidentifiedResourceName = "»¡°£Æ÷¼Ç", unidentifiedDescriptionName = { "A potion made from", "grinded Red Herbs that", "restores ^000088about 45 HP^000000.", "^ffffff_^000000", "Weight: ^7777777^000000" }, identifiedDisplayName = "Crimson Potion", identifiedResourceName = "»¡°£Æ÷¼Ç", identifiedDescriptionName = { "^000088HP Recovery Item^000000", "A potion made from", "grinded Red Herbs that", "restores ^000088about 45 HP^000000.", "^ffffff_^000000", "Weight: ^7777777^000000" }, slotCount = 0, ClassNum = 0 }, } -- Now for a helper function because i hate repetitions -- It adds items from curTable if it is not present in refTable function itemAdder(curTable, refTable) for ItemID,DESC in pairs(curTable) do if refTable == nil or refTable[ItemID] == nil then result, msg = 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, msg = AddItemUnidentifiedDesc(ItemID, v) if not result then return false, msg end end for k,v in pairs(DESC.identifiedDescriptionName) do result, msg = AddItemIdentifiedDesc(ItemID, v) if not result then return false, msg end end end end return true, "good" end -- And the newly designed main function function main() result, msg = itemAdder(tbl_custom, nil) -- add custom items (including official overrides) if result then result, msg = itemAdder(tbl, tbl_custom) -- add non-overridden official items end return result, msg end How is it useful? Think how item_db2.txt is useful for adding custom items in a server. Its the same strategy here. You can keep your official items in a base file (or you can just use the official iteminfo.lub file if you want the korean names) and keep your custom items in a different file (make sure the first dofile function calls the base file). The above code is error free, so feel free to copy and add your items . Hope the topic was not too confusing The lua code can be further expanded for overriding only parts of an official item. But i will leave that update for the future P.S. The client should be patched to accept your custom file not the base file. Screenshot
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.