Jump to content

Neo-Mind

Community Contributors
  • Content Count

    713
  • Joined

  • Last visited

  • Days Won

    37

Posts posted by Neo-Mind


  1. 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  :lol:

    The lua code can be further expanded for overriding only parts of an official item. But i will leave that update for the future :D

     

    P.S. The client should be patched to accept your custom file not the base file.  ^_^ 

     

    Screenshot 

    post-315-0-72087800-1411419493_thumb.jpg

     


  2. Hi Guys, Please post any bugs you find and already found in GitHub. Its easier for me to track them there ^_^.

    I might end up not seeing something because of lot of posts here. :D

     

    quesoph this is already a known bug in that patch for long time. hmm so yellow tag is working? I thought the tag was not working.


  3. 2014/06/18 - Client by Themon

    - Diff using NEMO.

    - After Diffing an error occurs.

     

    GetProcAddress("send") failed

     

    - need help thanks

    Two possible reasons come to mind:

    1) Client is having some issue locating ws2_32.dll in your system (corrupted client maybe?)

    2) Client is referring a different dll to get the send and recv functions. (maybe the client was used with PEEK?)


  4. @evilpuncker: dunno about RE clients but the main clients mentioned are not packed. Latest usable Ragexe client is 2014-06-13a. I know about the Restore Login Window issue its just a small fix will push that later today.

     

    @luis : I need to check that patch. People have been saying they are facing issue with shields not appearing at all.


  5. I am sorry to post this again, but nobody answered me.

     

    "Neo, i have the same problem than other user, the problem is with 2013-12-23 rag exe, and newest exe, the problem is with the mount system using reins of mount or @mount2, the exe tries to find an strange act and spr files, i looked for them in updated data folders but i couldnt find it, also the exe reads these files for all mount classes  the file are dataspriteÀΰ£Á·¸öÅë³²¿ÁÅä¹öÆнºÆ®_³².act and spr "

     

    Hmm which all patches did you use? Send me the patchlist

     

     

    hi neooo.... please help me... why when i "uncheck" load custom dll (splash image), client can't be start... i mean when i click start... client not show... and back again to launcher >.<

     

     

    sorry bad englsih >.<

    My guess is its because load custom dll and disable Hshield patch both mess around with the import table. So even if you uncheck it some of the changes might still be there causing the client to stop loading some dlls.

     

    Why not just stop checking the patch itself? If you are using a profile just save it without the patch checked and re-load profile. It should work now.

     

     

     

    Sir, the HShield patch for 2012-04-10aragexe.exe is not yet fix.

     

    Edit: Tested in 2012-04-10aRagexeRE.exe, 2012-04-18aRagexeRE.exe and 2012-04-04aRagexeRE.exe still no luck. when i use the Hshield diff it always closes the client.

     

    Bump on this sir?

    I'll check on this today.

×
×
  • Create New...

Important Information

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