Difference between revisions of "Custom Jobs"

From Hercules Wiki
Redirect page
Jump to: navigation, search
(Created page with "{{Duplication}} {{Incomplete}} [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: '...")
 
m (Redirected page to Custom jobs)
 
Line 1: Line 1:
{{Duplication}} {{Incomplete}}
+
#REDIRECT [[Custom_jobs]]
 
+
[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 {{git|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 {{git|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 {{git|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 {{git|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 {{git|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 {{git|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 {{git|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
+
 
+
[[Category:Customization]]
+
[[Category:Source Snippets]]
+

Latest revision as of 16:40, 3 October 2013