Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Help] Adding Custom Skill

Newbie Spellweaver
Joined
Feb 28, 2022
Messages
39
Reaction score
10
Hello All...

I'm attempting to add new skills to make a fresh experience for FlyFF. I am using the Ketchup v19 files. All of my servers compile properly, but when I open my skills menu, there is no 4th vagrant skill shown. Here is what I have done so far:

All snippets inside of the __CUSTOMSKILLS tags are what I have added.

kCommon.h

Code:
#define __CUSTOMSKILLS

WndField.cpp
My understanding is this is where the location of the skill is defined for the skill menu?
Code:
            case SI_VAG_ONE_OVERCUTTER:                nRectX = 150, nRectY = 35; break;
#ifdef __CUSTOMSKILLS
            case SI_VAG_ONE_DECIMATE:                nRectX = 50, nRectY = 70; break;
#endif
    // Mercenary Skill Position
            case SI_MER_ONE_SPLMASH:                nRectX =  25, nRectY = 16; break;

....

			case SI_VAG_ONE_OVERCUTTER:
				{
					lpWndCtrl = GetWndCtrl(WIDC_CUSTOM4);
					rect = lpWndCtrl->rect;
					rect.top += 1;
				}
			break;
#ifdef __CUSTOMSKILLS
			case SI_VAG_ONE_DECIMATE:				nRectX = 50, nRectY = 110, nJobKind = MAX_JOBBASE; break;
#endif
			case SI_MER_ONE_SPLMASH:				nRectX =  34, nRectY = 109, nJobKind = MAX_EXPERT; break;

\Source\Resource\defineJob.h + \Server\Resource\defineJob.h
This increases the actual limit, right?
Code:
#define __CUSTOMSKILLS    true

#ifdef __CUSTOMSKILLS
#define MAX_JOB_SKILL            4
#else
#define MAX_JOB_SKILL            3
#endif

\Source\Resource\defineSkill.h + \Server\Resource\defineSkill.h
Are my number definitions okay?
Code:
#define __CUSTOMSKILLS    true

#ifdef __CUSTOMSKILLS
#define SI_VAG_ONE_DECIMATE                5000
#endif

//
//
//

// __CUSTOMSKILLS
#define SA_DECIMATE_L01                   5001
...
#define SA_DECIMATE_L10                   5010
// END __CUSTOMSKILLS

I've also created a custom icon and added it to my client. These are the changes to my res files:

propSkill.txt
Code:
[TABLE="width: 8499"]
[TR]
[TD="width: 64, align: right"]6[/TD]
[TD="width: 279"]SI_VAG_ONE_DECIMATE[/TD]
[TD="width: 64"]IDS_PROPSKILL_TXT_000500[/TD]
[TD="width: 64, align: right"]1[/TD]
[TD="width: 64, align: right"]1[/TD]
[TD="width: 64"]JTYPE_BASE[/TD]
[TD="width: 64"]JOB_VAGRANT[/TD]
[TD="width: 64"]DIS_VAGRANT[/TD]
[TD="width: 64"]JOB_VAGRANT[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]HD_ONE[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64"]_NONE[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]AS_VERTICAL[/TD]
[TD="width: 64"]WT_EQUIP[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]AR_SHORT[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64, align: right"]5[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]XI_SKILL_JST_YOYO_VATALSTAB02[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]MTI_JST_YOYO_VATALSTAB01[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]EXT_MELEEATK[/TD]
[TD="width: 64"]WUI_TARGETINGOBJ[/TD]
[TD="width: 64"]SRO_DIRECT[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]DST_STR[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]RT_ATTACK[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64, align: right"]50[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]KT_SKILL[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64, align: right"]1[/TD]
[TD="width: 64, align: right"]10[/TD]
[TD="width: 156, align: right"]5001[/TD]
[TD="width: 64, align: right"]1[/TD]
[TD="width: 64"]CT_FINISH[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]SND_PC_DMGSWD[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]"skill_VagObliterate.dds"[/TD]
[TD="width: 64, align: right"]0[/TD]
[TD="width: 64"]""[/TD]
[TD="width: 64"]IDS_PROPSKILL_TXT_000501[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64"]RANK_MAX[/TD]
[TD="width: 64"]=[/TD]
[TD="width: 64, align: right"]1[/TD]
[/TR]
[/TABLE]

propSkillAdd.txt
Code:
[TABLE="width: 2731"]
[TR]
[TD]SA_DECIMATE_L01[/TD]
[TD]SI_VAG_ONE_DECIMATE[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]80[/TD]
[TD="align: right"]85[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]400[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]40[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]0[/TD]
[TD="align: right"]600[/TD]
[/TR]
[TR]
[TD]SA_DECIMATE_L02[/TD]
[TD]SI_VAG_ONE_DECIMATE[/TD]
[TD="align: right"]2[/TD]
[TD="align: right"]80[/TD]
[TD="align: right"]85[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]400[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]40[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]600[/TD]
[/TR]
[TR]
[TD]SA_DECIMATE_L03[/TD]
[TD]SI_VAG_ONE_DECIMATE[/TD]
[TD="align: right"]3[/TD]
[TD="align: right"]80[/TD]
[TD="align: right"]85[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]400[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]40[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]600[/TD]
[/TR]
[TR]
[TD]SA_DECIMATE_L04[/TD]
[TD]SI_VAG_ONE_DECIMATE[/TD]
[TD="align: right"]4[/TD]
[TD="align: right"]85[/TD]
[TD="align: right"]90[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]400[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]44[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]2[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]600[/TD]
[/TR]
[TR]
[TD]SA_DECIMATE_L05[/TD]
[TD]SI_VAG_ONE_DECIMATE[/TD]
[TD="align: right"]5[/TD]
[TD="align: right"]85[/TD]
[TD="align: right"]90[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]400[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]44[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]2[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]600[/TD]
[/TR]
[TR]
[TD]SA_DECIMATE_L06[/TD]
[TD]SI_VAG_ONE_DECIMATE[/TD]
[TD="align: right"]6[/TD]
[TD="align: right"]85[/TD]
[TD="align: right"]90[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]400[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]44[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]2[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]600[/TD]
[/TR]
[TR]
[TD]SA_DECIMATE_L07[/TD]
[TD]SI_VAG_ONE_DECIMATE[/TD]
[TD="align: right"]7[/TD]
[TD="align: right"]90[/TD]
[TD="align: right"]95[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]400[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]50[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]3[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]600[/TD]
[/TR]
[TR]
[TD]SA_DECIMATE_L08[/TD]
[TD]SI_VAG_ONE_DECIMATE[/TD]
[TD="align: right"]8[/TD]
[TD="align: right"]90[/TD]
[TD="align: right"]95[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]400[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]50[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]3[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]600[/TD]
[/TR]
[TR]
[TD]SA_DECIMATE_L09[/TD]
[TD]SI_VAG_ONE_DECIMATE[/TD]
[TD="align: right"]9[/TD]
[TD="align: right"]90[/TD]
[TD="align: right"]95[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]400[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]60[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]3[/TD]
[TD="align: right"]1[/TD]
[TD="align: right"]600[/TD]
[/TR]
[TR]
[TD]SA_DECIMATE_L10[/TD]
[TD]SI_VAG_ONE_DECIMATE[/TD]
[TD="align: right"]10[/TD]
[TD="align: right"]100[/TD]
[TD="align: right"]110[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]400[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]65[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD]=[/TD]
[TD="align: right"]4[/TD]
[TD="align: right"]2[/TD]
[TD="align: right"]400[/TD]
[/TR]
[/TABLE]

propSkill.txt.txt

Code:
IDS_PROPSKILL_TXT_000500    ObliterateIDS_PROPSKILL_TXT_000501    Plunge your weapon deep into the enemy, dealing massive damage.
 
Last edited:
Back
Top