Custom Jobs

From Hercules Wiki
Revision as of 05:00, 14 January 2013 by Nameless2you (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This article duplicates, in whole or part, the scope of other article(s) or section(s). Please discuss this issue on the talk page and conform with style guide by replacing the section with a link and a summary of the repeated material, or by spinning off the repeated text into an article in its own right.
This article is incomplete. If you'd like to help expand it, see the help on editing and the style guide, or comment on the talk page.

[Guide] Add Custom Job

Do for: Ratalaika

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.

Next, open src/map/atcommand.c

Search for the lines:

           { "ninja",    25 },
           { "high novice",    4001 },


Then replace it with:

           { "ninja",    25 },
           { "burglar",    35 },
           { "high novice",    4001 },


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

Search for the lines:

   MAPID_NINJA,
   MAPID_XMAS,
   MAPID_SUMMER,


Then replace it with:

   MAPID_NINJA,
   MAPID_XMAS,
   MAPID_SUMMER,
   MAPID_BURGLAR = 0x0E,


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

Search for the lines:

   if (jobmask & 1<<JOB_NINJA)
       bclass[0] |= 1<<MAPID_NINJA;
}


Then replace it with:

   if (jobmask & 1<<JOB_NINJA)
       bclass[0] |= 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_SUMMER:
           class_ = MAPID_SUMMER;
           break;
       default:
           return -1;
   }
   return class_;
}


Then replace it with:

       case JOB_SUMMER:
           class_ = MAPID_SUMMER;
           break;
       case JOB_BURGLAR:
           class_ |= MAPID_BURGLAR;
           break;
       default:
           return -1;
   }
   return class_;
}


Search for the lines:

       case MAPID_SUMMER:          return JOB_SUMMER;


Replace it with:

       case MAPID_BURGLAR:            return JOB_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

Then replace it with:


Job_Gunslinger    24
Job_Ninja    25
Job_Xmas    26
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


Then replace it with:


EAJ_TAEKWON    0x7
EAJ_GUNSLINGER    0x9
EAJ_NINJA    0x0A
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.

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/msg_athena.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: (XRAY Required unless you plan to replace 3rd class id's.)

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