Jump to content

Custom Job & Custom Shield Patches


Neo-Mind

Recommended Posts


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  806
  • Reputation:   220
  • Joined:  03/13/12
  • Last Seen:  

Well a few people know i have been working on these. So here goes.

 

Did I hear right?

 

1. Yes it is what you are thinking. The Custom Job patch allow you to modify the existing jobs and add new jobs 
    in a fashion similar to HeliumRO's Xray Clients (and some extra stuff you will see below) but using lua files.
 
2. Similarly Custom Shield Patch allows you to throw the existing 4 shield limit out the door and modify existing as well as 
   add more shield equipment types to your liking using lua files.
 
3. For now I have tested them out on a set of clients (for others the logic followed were the same 
   so I didn't bother with the rest). Ofcourse if any bug comes up I will work on fixing them.
   
4. Patches were made with existing patches in mind and therefore will not affect any and existing diffs present
   in a client you use. Infact you are supposed to use these last only.
 
5. Custom Job Patch has also an override for Class names based on gender. For it to work Langtype Korean Jobname Fix
   is expected to be enabled (for xDiff patches it is a part of Translate to English patch)

 

 
6. So is there a limit ? yes for now i have limited them as max shields to 10 and max job id to 4300.
 
So how does it work ?
 
1. Get the xdiff file for your client version (from the link below)
 
2. Get the lua files (also from the link below)
 
3. Modify/Add entries to the lua files (Format is specified below)
 
4. Load your client and xdiff file in xDiffPatcher
 
5. Let it Rip!... i mean Patch!!
 
6. And last but not least place the lua files in their proper locations.
 
Lua File Formats - Custom Job Patch
Custom Job Patch makes use of 7 lua files (similar to the various txt files Xray client had).They need to be present in the luafiles514/lua files/admin path.
 
1) PCIdentity.lua:
  This file is already present in the official GRF but we are going to use a modified version of that one.
  All Job Sprites have a corresponding Job ID (including costumes and Job Mounts). This file defines all of them
  and their relationships to each other.
  
  This is done with the help of 3 tables =>
  
  i) pcJobTbl (mandatory):
     This is where the job id value is defined and mapped to a string for identification.
JT_KAGEROU = 4211, -- 4211 is the job id for kagerou class 
  ii) Halter_Map :
     This is where you specify which job id is the job mount of which class. Ofcourse if you dont plan to add a job mount for a class you can ignore this one.
[pcJobTbl.JT_KAGEROU] = pcJobTbl.JH_KAGEROU, -- maps kagerou job to it's frog mount (JH_KAGEROU)

  iii) Shrink_Tbl :

     This is list of job IDs that need to be ... shrunk i.e. specify all Baby Jobs here.
pcJobTbl.JT_SWORDSMAN_B, -- will include Baby Swordsman in the list 
 
2) PCPaths.lua:
   Lua equivalent of class_tab.txt . Defines the prefix string used for each class to get its sprite & act file path.
   i.e. prefix in => /data/sprite/Àΰ£Á·/¸öÅë/<gender>/<prefix>_<gender>.spr (& act as well).
   This is done with the help of two tables (only one of which needs to be filled for a class).
   
   i)  PCStitchTbl :
     If your job uses a completely new sprite with a new filename then you can assign it in this table.
[pcJobTbl.JT_SWORDMAN] = "°Ë»ç" -- Prefix for Swordsman 
   ii) PCStitchInheritTbl :
     If your job is sharing an existing sprite path already used by a job specified in PCStitchTBl then you can
     simply connect them in this table (target job id inherits from source job id).
[pcJobTbl.JT_SWORDMAN_H] = pcJobTbl.JT_SWORDMAN, --JT_SWORDMAN_H is High Swordsman which uses
                                                 --same sprite as Swordsman

  

  All of the remaining lua files follow a similar pattern with one table for direct assignment and the other one for inheriting value from another job id
    
3) PCImfs.lua:
    Lua equivalent of imf_tab.txt . Defines the prefix string for imf files of each class.
    
    i)  PCImfTbl :
[pcJobTbl.JT_KNIGHT] = "±â»ç",    -- Prefix for Knight 

 

    ii) PCImfInheritTbl :
[pcJobTbl.JT_KNIGHT_H] = pcJobTbl.JT_KNIGHT, -- JT_KNIGHT_H is Lord Knight and has the same
                                             -- imf as Knight class. 

    

4) PCHands.lua:
    Lua equivalent of reality_dir_tab.txt. Defines the prefix strings used for Weapons and Shields of each class
    
    i) PCHandsTbl :
[pcJobTbl.JT_ASSASSIN] = "¾î¼¼½Å\\¾î¼¼½Å", -- Prefix for Assassin        
    ii) PCHandsInheritTbl :
[pcJobTbl.JT_GUILLOTINE_CROSS] = pcJobTbl.JT_ASSASSIN, -- Guillotine Cross picks up
                                      --weapons/shields from the same path as Assassin class 

        

5) PCPals.lua
    Lua equivalent of reality_tab.txt. Defines the prefix strings for the body palettes.
   
    i) PCPalTbl:
[pcJobTbl.JT_MAGICIAN] = "¸¶¹ý»ç", -- prefix for Mage                               
    ii) PCPalInheritTbl:
[pcJobTbl.JT_MAGICIAN_H] = pcJobTbl.JT_MAGICIAN, -- High Mage uses same prefix as Mage class

 

6) PCNames.lua
    Lua equivalent of monstrosity_tab.txt (in part since mobs are defined by jobname.lua) . As the file name says this is where you define all your class names. Reason i saved this for last is because this file is slightly different from the previous 4. Here you can define the class name seperately for both genders.
    
    For male classes =>
    i) PCJobNameTbl :
[pcJobTbl.JT_WARLOCK] = "Warlock", -- Kind of obvious right? 
    ii) PCJobNameInheritTbl :
[pcJobTbl.JT_WARLOCK_H] = pcJobTbl.JT_WARLOCK, -- JT_WARLOCK_H is Transcendent version of
                                         -- warlock class and ofcourse it will have same name

 

    For female classes =>
    iii) PCJobNameTbl_F :
[pcJobTbl.JT_WARLOCK] = "Witch", -- Now the female Warlock will be called Witch 
    iv) PCJobNameInheritTbl_F :
[pcJobTbl.JT_WARLOCK_H] = pcJobTbl.JT_WARLOCK, -- Same for Transcendent Warlock

 

    By default if your gender is female and there is no names defined using either iii) or iv) above then it checks in the tables for male gender.
    
7) PCFuncs.lua
    Contains Necessary functions used by the client - DO NOT TOUCH THIS FILE unless you know what you are doing!!!
 
Lua File Formats - Custom Shield Patch
Custom Shield Patch makes use of 2 lua files as specified below. They need to be present in luafiles514/lua files/datainfo folder.
 
1) ShieldTable.lua :
    This lua file is the only one you need to configure. It contains 3 tables and is similar in format to WeaponTable.lua
    
    i) Shield_IDs :
        Defines a list of IDs which includes both Shield Types & Item IDs used by shield items in item_db.txt. Shield Items can only start from item id 2101 onwards so anything lesser than that will be considered as a shield type id. To distinguish between them we use the ST (Shield Type) and SI (Shield Item) prefixes.
ST_MSHIELD = 4,    -- Mirror Shield Type
SI_Platinum_Shield = 2122, -- Platinum Shield's Item ID 
    ii) ShieldNameTable :
        Here we assign suffix strings for Shield Types i.e. shield suffix in => /data/sprite/¹æÆÐ/<hand prefix>_<gender>_<shield suffix>.spr
[Shield_IDs.ST_MSHIELD] = "_¹Ì·¯½¯µå", --Suffix for Mirror shield 
    iii) ShieldMapTable :
        Here we specify which Shield Type is used by each of the Shield Items.
[Shield_IDs.SI_Platinum_Shield]    = Shield_IDs.ST_MSHIELD, -- Platinum Shield uses
                                                            -- Mirror Shield sprite

        

2) ShieldTable_F.lua :
    Contains Necessary functions used by the client - DO NOT TOUCH THIS FILE unless you know what you are doing!!!
 
 
Ok.. So Where do i get the files?
 
 
Final Note
If you have any issues or doubts about the xDiff files or Lua files (I expect some in this department) let me know.
So Enjoy  /ok
Edited by NeoMind
  • Upvote 6
  • Love 1
Link to comment
Share on other sites

  • 2 weeks later...

  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  22
  • Reputation:   4
  • Joined:  09/08/12
  • Last Seen:  

hi... again xD
did you have a solution for the error with de custom shield diff?
(i said it to you in the other forum, or you are still busy?, no problem, i can wait a bit more jaja)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  806
  • Reputation:   220
  • Joined:  03/13/12
  • Last Seen:  

hey sorry i was doing something related to the login screen itself. anyways its now complete. I will make the guide like i said . btw what kind of error are u facing? is the client crashing or ur getting pop ups about attempt to read nil value?

Link to comment
Share on other sites

  • 6 months later...

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  8
  • Reputation:   1
  • Joined:  08/20/13
  • Last Seen:  

This is very great.

I was going to do it by myself and then I found this.

 

But I have an issue using 2013-07-24eRagexe.xdiff

Custom Shield Patch is crashing xDiff

Link to comment
Share on other sites

  • 2 weeks later...

  • Group:  Members
  • Topic Count:  27
  • Topics Per Day:  0.01
  • Content Count:  76
  • Reputation:   2
  • Joined:  06/07/12
  • Last Seen:  

this is not working

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  806
  • Reputation:   220
  • Joined:  03/13/12
  • Last Seen:  

Guys please use the patch from NEMO. The lua files also have some changes you can find them in the NEMO/Support folder.

 

I am not checking this topic anymore since you can report stuff at NEMO's topic.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  27
  • Topics Per Day:  0.01
  • Content Count:  76
  • Reputation:   2
  • Joined:  06/07/12
  • Last Seen:  

Hi Sir Neo i follow your tutorial n how to add custom job but no error in recomplie but when i try to @jobchange its says failed

 

is there i need to add?

i also use the http://rathena.org/wiki/Custom_Jobs but still failed

 

can you please help me my client 2012-06-17 i already apply the patch

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  28
  • Reputation:   2
  • Joined:  01/06/14
  • Last Seen:  

does someone tested this already??
does it work?
im having trouble with the download.. its says doesnt exist.

Link to comment
Share on other sites

  • 7 months later...

  • Group:  Developer
  • Topic Count:  48
  • Topics Per Day:  0.01
  • Content Count:  1443
  • Reputation:   341
  • Joined:  10/17/12
  • Last Seen:  

 

If you have any issues or doubts about the xDiff files or Lua files (I expect some in this department) let me know.
So Enjoy  /ok

 

 

i get client errors on installing this patch

Client: 2013-08-07a

using Nemo Patcher

and have all the lua files added

3 Chat Flood Remove Limit
8 Custom Window Title
9 Disable 1rag1 type parameters (Recommended)
13 Disable Ragexe Filename Check (Recommended)
14 Disable Hallucination Wavy Screen (Recommended)
15 Disable HShield (Recommended)
16 Disable Swear Filter
20 Extend Chat Box
21 Extend Chat Room Box
22 Extend PM Box
24 Fix Camera Angles (Recommended)
28 Increase Headgear ViewID
30 Increase Zoom Out 50%
33 Always Call SelectKoreaClientInfo() (Recommended)
34 Enable /showname (Recommended)
35 Read Data Folder First
36 Read msgstringtable.txt (Recommended)
37 Read questid2display.txt (Recommended)
38 Remove Gravity Ads (Recommended)
39 Remove Gravity Logo (Recommended)
40 Restore Login Window (Recommended)
41 Disable Nagle Algorithm (Recommended)
42 Skip Resurrection Buttons
44 Translate Client (Recommended)
46 Use Normal Guild Brackets
47 Use Ragnarok Icon
48 Use Plain Text Descriptions (Recommended)
49 Enable Multiple GRFs (Recommended)
50 Skip License Screen
53 Use Ascii on All Langtypes (Recommended)
61 Disable Packet Encryption (Recommended)
64 @ Bug Fix (Recommended)
67 Remove Quake skill effect
68 Enable 64k Hairstyle
202 Enable Custom Jobs
73 Remove Hourly Announce (Recommended)
204 Increase Attack Display
74 Increase Screenshot Quality
84 Remove Serial Display (Recommended)
90 Enable DNS Support (Recommended)
96 Remove GM Sprites
97 Cancel to Login Window (Recommended)
98 Disable dc_scream.txt
99 Disable ba_frostjoke.txt
102 Fix Tetra Vortex

client works without 202 Enable Custom Jobs, however once i add that i get the following errors

Lua Files\Admin\PCPaths
[string "buf"];2: attempt to index global 'pcJobTbl' (a nil value)

Lua Files\Admin\PCImfs
[string "buf"];2: attempt to index global 'pcJobTbl' (a nil value)

Lua Files\Admin\PCHands
[string "buf"];2: attempt to index global 'pcJobTbl' (a nil value)

Lua Files\Admin\PCPals
[string "buf"];2: attempt to index global 'pcJobTbl' (a nil value)

Lua Files\Admin\PCNames
[string "buf"];2: attempt to index global 'pcJobTbl' (a nil value)

ReqPCPath
[string "buf"];61: attempt to index global 'PCStitchTbl' (a nil value)

even without editing any files

  • Upvote 1
Link to comment
Share on other sites

  • 1 month later...

  • Group:  Members
  • Topic Count:  28
  • Topics Per Day:  0.01
  • Content Count:  50
  • Reputation:   0
  • Joined:  03/02/12
  • Last Seen:  

not work at all,

I just easy try , change sprite name in this .lua file

after diff , I try to HeX to see Is it changed , but it still no change.

still need hex myself,

and another function also no work at all

What about this topic. ? 

Link to comment
Share on other sites

  • 1 month later...

  • Group:  Members
  • Topic Count:  140
  • Topics Per Day:  0.03
  • Content Count:  562
  • Reputation:   108
  • Joined:  10/05/12
  • Last Seen:  

Hi neo, any update to show custom shields with the diff?
I am following this topic

https://github.com/MStr3am/NEMO/issues/6

thanks in advance

Link to comment
Share on other sites

  • 11 months later...

  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  6
  • Reputation:   0
  • Joined:  08/16/12
  • Last Seen:  

Please help me , I'm having problems when I open my Hexed 2013-08-07a with luafiles admin that Neomind posted . I diff with patch custom jobs . I'm having the following problem of the photo below .

 

Client 2013-08-07a

Diffed with Custom Job

 

this problem:

a9qn85.jpg

Link to comment
Share on other sites

  • 2 months later...

  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  806
  • Reputation:   220
  • Joined:  03/13/12
  • Last Seen:  

Use NEMO to patch - Custom Job and Shield patches are available in it. The xDiff file here is outdated.

Also you should be using the files from the Support folder from NEMO not the ones here.

 

EDIT: Can someone please close this topic. Thanks.

Edited by NeoMind
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...