Difference between revisions of "Custom jobs"

From Hercules Wiki
Jump to: navigation, search
Line 3: Line 3:
 
On this page, you will be able to learn the steps on how to add your Custom Job. First off:
 
On this page, you will be able to learn the steps on how to add your Custom Job. First off:
  
'''1.''' Open the file {{svn|trunk/src/common/mmo.h}}
+
'''1.''' Open the file {{git|src/common/mmo.h}}
  
 
Search for the lines:
 
Search for the lines:
Line 17: Line 17:
 
     JOB_MAX_BASIC,
 
     JOB_MAX_BASIC,
  
Save the file and open {{svn|trunk/src/map/map.h}}
+
Save the file and open {{git|src/map/map.h}}
  
 
Search for the lines:
 
Search for the lines:
Line 36: Line 36:
  
  
Save the file and open {{svn|trunk/src/map/itemdb.c}}
+
Save the file and open {{git|src/map/itemdb.c}}
  
 
Search for the lines:
 
Search for the lines:
Line 53: Line 53:
  
  
Save the file and open {{svn|trunk/src/map/pc.c}}
+
Save the file and open {{git|src/map/pc.c}}
  
 
Search for the lines:
 
Search for the lines:

Revision as of 04:29, 20 September 2013

[Guide] Add Custom Job

On this page, you will be able to learn the steps on how to add your Custom Job. First off:

1. Open the file src/common/mmo.h

Search for the lines:

   JOB_SUMMER,
   JOB_MAX_BASIC,


Then replace it with:

   JOB_SUMMER,
   JOB_BURGLAR= 35,
   JOB_MAX_BASIC,

Save the file and open src/map/map.h

Search for the lines:

   MAPID_NINJA,
   MAPID_XMAS,
   MAPID_SUMMER,
   MAPID_GANGSI,


Then replace it with:

   MAPID_NINJA,
   MAPID_XMAS,
   MAPID_SUMMER,
   MAPID_GANGSI,
   MAPID_BURGLAR = 0x0E,


Save the file and open src/map/itemdb.c

Search for the lines:

   if (jobmask & 1<<29) //Kagerou / Oboro
       bclass[1] |= 1<<MAPID_NINJA;


Then replace it with:

   if (jobmask & 1<<29) //Kagerou / Oboro
       bclass[1] |= 1<<MAPID_NINJA;
   //items job
   if (jobmask & 1<<35)
       bclass[0] |= 1<<MAPID_BURGLAR;


Save the file and open src/map/pc.c

Search for the lines:

       case JOB_GANGSI:                return MAPID_GANGSI;

Then replace it with:

       case JOB_GANGSI:                return MAPID_GANGSI;
       case JOB_BURGLAR:               return MAPID_BURGLAR;

Finally search for the lines:

   case JOB_SUMMER:
       return msg_txt(621);


And replace it with:

   case JOB_BURGLAR:
       return msg_txt(700);


Now you have finally modified the src files, once that is done recompile it.


2. Now we need to edit the db files, in order to do that, find the db folder. Once the folder is opened, look for db/const.txt and open it.

Once done, look for the lines:

Job_Gunslinger    24
Job_Ninja    25
Job_Xmas    26
Job_Summer	27

Then replace it with:


Job_Gunslinger    24
Job_Ninja    25
Job_Xmas    26
Job_Summer	27
Job_Burglar    35


Now after that, find the lines that are shown below (The lines are still under const.txt):

EAJ_TAEKWON    0x7
EAJ_GUNSLINGER    0x9
EAJ_NINJA    0x0A
EAJ_GANGSI	0x0D


Then replace it with:


EAJ_TAEKWON    0x7
EAJ_GUNSLINGER    0x9
EAJ_NINJA    0x0A
EAJ_GANGSI	0x0D
EAJ_BURGLAR    0x0E


Once you have finished editing those lines, save it then close.

Now, you will have to look for the txt file named exp.txt in pre-re/ or re/ folder according to the settings in src/config/renewal.h.

Maximum Level Syntax line: 0:1:2:3:4:5:6:7:8:9:10:11:12...


Then replace it with:


Maximum Level Syntax line: 0:1:2:3:4:5:6:7:8:9:10:11:12:35...


In the same file we look for:


your max level,1:2:3:4:5:6:26:4046,1


We need to change to code like this:


your max level,1:2:3:4:5:6:26:4046:35,1

We need to edit job_db1.txt And at the end of everything we need to paste this:

//Burglar
35,    28000,70   ,500  ,200  ,400  ,500  ,550  ,600  ,650  ,700  ,700  ,750  ,650  ,700  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000

This line is the one of the swordman but you can copy any other just changing the first number which is the jobid or if you prefer you can make your own.

Edit the file job_db2.txt At the end:

//Burglar
35,0,1,0,0,0,3,0,0,0,5,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,2,0,0,1,0,0,5,0,3,0

1,0,3,0,6,0,2,1,0,1,1

This line is the Swordsman you can copy any classes job id (first number) or you can make your own

Now it's time to add this skill to skill_tree.txt At the end of everything we put this

//Burglar
//REQUIRED
35,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
35,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
//What ever skills you want you can add
35,2,10,0,0,0,0,0,0,0,0,0,0 //SM_SWORD#Sword Mastery#
35,4,10,0,0,0,0,0,0,0,0,0,0 //SM_RECOVERY#Increase HP Recovery#
35,5,10,0,0,0,0,0,0,0,0,0,0 //SM_BASH#Bash#
35,6,10,0,0,0,0,0,0,0,0,0,0 //SM_PROVOKE#Provoke#
35,7,10,5,5,0,0,0,0,0,0,0,0 //SM_MAGNUM#Magnum Break#
35,8,10,6,5,0,0,0,0,0,0,0,0 //SM_ENDURE#Endure#
35,26,2,24,1,0,0,0,0,0,0,0,0 //AL_TELEPORT#Teleport#
35,27,4,26,2,0,0,0,0,0,0,0,0 //AL_WARP#Warp Portal#
35,28,10,0,0,0,0,0,0,0,0,0,0 //AL_HEAL#Heal#
35,33,10,22,3,0,0,0,0,0,0,0,0 //AL_ANGELUS#Angelus#
35,34,10,22,5,0,0,0,0,0,0,0,0 //AL_BLESSING#Blessing#
35,35,1,28,2,0,0,0,0,0,0,0,0 //AL_CURE#Cure#
//REQUIRED
35,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
35,681,1,0,0,0,0,0,0,0,0,0,0 //ALL_INCCARRY#Enlarge Weight Limit R#


And that's the skill that will take the Job you want to put your job of copying the line you want such as:

//Double Attack Skill
12,48,10,0,0,0,0,0,0,0,0,0,0 //TF_DOUBLE#Double Attack#


And so it is our job so we would have to modify

35,48,10,0,0,0,0,0,0,0,0,0,0 //TF_DOUBLE#Double Attack#


We changed the first number to get the id of our job if you design your own set of skills you can't forget to put these:

35,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
35,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
35,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
35,681,1,0,0,0,0,0,0,0,0,0,0 //ALL_INCCARRY#Enlarge Weight Limit R#

Please refer to adding new skills to add new custom skills.

If you do not put them there will be errors


Next, open the file conf/messages.conf

Look for this:

620: Ninja
621: Summer


And add your custom class before "Summer"

620: Ninja
621: Summer
700: Burglar

And with that ends the server-side modifications.


Client Side:

X-Ray:

first start by editing

Class_tab.txt

Find this

!52
°Ë»ç
¸¶¹ý»ç


Add your custom class

!35
Burglar
!52
°Ë»ç
¸¶¹ý»ç


Second edit

imf_tab.txt

Find this

!52
°Ë»ç
¸¶¹ý»ç


Add your custom class

!35
¼ºÁ÷ÀÚ
!52
°Ë»ç
¸¶¹ý»ç

Third edit

reality_dir_tab.txt

Find this

!52
°Ë»ç\\°Ë»ç
¸¶¹ý»ç\\¸¶¹ý»ç


Add your custom class (!35)

!35
¼ºÁ÷ÀÚ\\¼ºÁ÷ÀÚ
!52
°Ë»ç\\°Ë»ç
¸¶¹ý»ç\\¸¶¹ý»ç


Fourth edit

reality_tab.txt

Find this

!52
°Ë»ç
¸¶¹ý»ç


Add your custom class (!35)

!35
¼ºÁ÷ÀÚ
!52
°Ë»ç
¸¶¹ý»ç


Fourth edit

monstrosity_tab.txt

Find this

!47
1_M_01
1_M_02
1_M_03


Add your custom class ()

!35
Burglar
!47
1_M_01
1_M_02
1_M_03
1_M_04

Now copy the sprite files that will go on

Male:

sprite\Àΰ£Á·\¸öÅë\³²

Female:

sprite\Àΰ£Á·\¸öÅë\¿©

Male:

Burglar_³².spr
Burglar_³².act

Female:

Burglar_¿©.spr
Burglar_¿©.act

Ragexe/RagexeRE Clients: Please Refer to Custom Job Patch by Neo