little problem with linking weapons n skills to new classes
Im adding new 3rd classes so instead of there being 1 now theres 2 , i can turn to the new class just fine but my issues is they either get skills from some other class and i cant use there old classes weapons so if any 1 got a clue help would be great
this is what i have in Mover.cpp
Code:
void CMover::InitLevel( int nJob, LONG nLevel, BOOL bGamma )
{
#ifdef __WORLDSERVER
// ¿î¿µÀÚ ¸í·ÉÀ¸·Î ·¹º§¾÷ Çϴ°÷ÀÓ
MoverProp* pProp = GetProp();
if( pProp )
{
// ¹æ¶ûÀÚ ½ºÅ³ °ª °¡Áö°í ÀÖ±â.
int nJobSkillBuf[MAX_JOB_SKILL];
int nJobSkillLevelBuf[MAX_JOB_SKILL];
for( int i = 0 ; i < MAX_JOB_SKILL ; ++i )
{
nJobSkillBuf[ i ] = m_aJobSkill[ i ].dwSkill;
nJobSkillLevelBuf[ i ] = m_aJobSkill[ i ].dwLevel;
}
ZeroMemory( m_aJobSkill, sizeof( m_aJobSkill ) );
LPSKILL lpSkill;
// À⽺ų ÃʱâÈ
for( i = 0; i < MAX_SKILL_JOB; i++ )
{
m_aJobSkill[ i ].dwSkill = NULL_ID;
m_aJobSkill[ i ].dwLevel = 0;
}
// 1. ¹æ¶ûÀÚ ½ºÅ³Àº ±×³É Áö±Þ
m_nJob = JOB_VAGRANT;
ItemProp** apSkillProp = prj.m_aJobSkill[ m_nJob ];
int nJobNum = prj.m_aJobSkillNum[ m_nJob ];
for( i = 0; i < nJobNum; i++ )
{
ItemProp* pSkillProp = apSkillProp[ i ];
lpSkill = &m_aJobSkill[ i ];
lpSkill->dwSkill = pSkillProp->dwID;
}
// 2. ±âº» ´É·ÂÄ¡ ÃʱâÈ
m_nLevel = 1;
m_nStr = m_nSta = m_nDex = m_nInt = 15;
m_nRemainGP = 0;
m_nSkillLevel = 0;
m_nSkillPoint = 0;
// 3. LP, GP, Á÷¾÷
for( i = 1 ; i < nLevel ; i++ )
{
m_nLevel = i + 1;
m_nRemainGP += prj.m_aExpCharacter[ m_nLevel ].dwLPPoint;
#if __VER >= 10 // __LEGEND // 10Â÷ Àü½Â½Ã½ºÅÛ Neuz, World, Trans
if( nJob >= MAX_PROFESSIONAL && i > 59 )
m_nRemainGP++;
if( nJob < MAX_PROFESSIONAL )
{
if( ( i + 1 ) == MAX_JOB_LEVEL )
{
if( nJob < MAX_EXPERT )
{
AddChangeJob( nJob );
}
else
{
if( nJob % 2 != 0 )
{
AddChangeJob( ( nJob - 5 ) / 2 );
}
else
{
AddChangeJob( ( nJob - 4 ) / 2 );
}
}
}
else
if( ( i + 1 ) == MAX_JOB_LEVEL + MAX_EXP_LEVEL )
{
AddChangeJob( nJob );
}
}
else
{
if( ( i + 1 ) == MAX_JOB_LEVEL )
{
if( nJob < MAX_MASTER )
{
if( nJob % 2 != 0 )
{
AddChangeJob( ( nJob - 15 ) / 2 );
}
else
{
AddChangeJob( ( nJob - 14 ) / 2 );
}
}
#ifdef __3RD_LEGEND16
else if( nJob < MAX_JOB )
{
if( nJob % 2 != 0 )
{
AddChangeJob( ( nJob - 31 ) / 2 );
}
else
{
AddChangeJob( ( nJob - 30 ) / 2 );
}
}
#endif
#ifdef __AZURE_CLASS
else if( nJob < MAX_JOB )
{
if( nJob % 2 != 0 )
{
AddChangeJob( ( nJob - 39 ) / 2 );
}
else
{
AddChangeJob( ( nJob - 38 ) / 2 );
}
}
#endif
else
{
if( nJob % 2 != 0 )
{
AddChangeJob( ( nJob - 23 ) / 2 );
}
else
{
AddChangeJob( ( nJob - 22 ) / 2 );
}
}
}
else
if( ( i + 1 ) == MAX_JOB_LEVEL + MAX_EXP_LEVEL )
{
if( nJob < MAX_MASTER )
{
AddChangeJob( nJob - 10 );
AddChangeJob( nJob );
}
#ifdef __3RD_LEGEND16
else if ( nJob < MAX_JOB)
{
AddChangeJob( nJob - 26 );
AddChangeJob( nJob - 16);
AddChangeJob( nJob - 8);
AddChangeJob( nJob );
}
#endif
#ifdef __AZURE_CLASS
else if ( nJob < MAX_JOB)
{
AddChangeJob( nJob - 38 );
AddChangeJob( nJob - 26 );
AddChangeJob( nJob - 16);
AddChangeJob( nJob - 8);
AddChangeJob( nJob );
}
#endif
else
{
AddChangeJob( nJob - 18 );
AddChangeJob( nJob - 8);
AddChangeJob( nJob );
}
}
}
#else //__LEGEND // 10Â÷ Àü½Â½Ã½ºÅÛ Neuz, World, Trans
if( ( i + 1 ) == MAX_JOB_LEVEL )
{
if( nJob < MAX_EXPERT )
{
AddChangeJob( nJob );
}
else
{
if( nJob % 2 != 0 )
{
AddChangeJob( ( nJob - 5 ) / 2 );
}
else
{
AddChangeJob( ( nJob - 4 ) / 2 );
}
}
}
else
if( ( i + 1 ) == MAX_JOB_LEVEL + MAX_EXP_LEVEL )
{
AddChangeJob( nJob );
}
and this is what i have in MoverParam.cpp
Code:
#if __VER >= 10 // __LEGEND // 10Â÷ Àü½Â½Ã½ºÅÛ Neuz, World, Trans
if( IsMaster() ) // ·¹º§ÀÌ ¾ÈµÇ¸é ¸øÂü.
{
if( nJob < MAX_EXPERT )
{
if( nJob * 2 + 14 == m_nJob || nJob * 2 + 15 == m_nJob )
return TRUE;
}
else if( nJob < MAX_PROFESSIONAL )
{
if( nJob + 10 == m_nJob )
return TRUE;
}
}
if( IsHero()) // ·¹º§ÀÌ ¾ÈµÇ¸é ¸øÂü.
{
if( nJob < MAX_EXPERT )
{
if( nJob * 2 + 22 == m_nJob || nJob * 2 + 23 == m_nJob )
return TRUE;
}
else if( nJob < MAX_PROFESSIONAL )
{
if( nJob + 18 == m_nJob )
return TRUE;
}
#if __VER >= 14 // __NEW_ITEM_LIMIT_LEVEL
else if( nJob < MAX_MASTER ) // Hero´Â ¸¶½ºÅÍ ¹«±â¸¦ ÀåÂøÇÒ ¼ö ÀÖ´Ù.
{
if( nJob + 8 == m_nJob )
return TRUE;
}
#endif // __NEW_ITEM_LIMIT_LEVEL
}
#ifdef __3RD_LEGEND16
if( IsLegendHero()) // ·¹º§ÀÌ ¾ÈµÇ¸é ¸øÂü.
{
if( nJob < MAX_EXPERT )
{
if( nJob * 2 + 30 == m_nJob || nJob * 2 + 31 == m_nJob )
return TRUE;
}
else if( nJob < MAX_PROFESSIONAL )
{
if( nJob + 26 == m_nJob )
return TRUE;
}
else if( nJob < MAX_MASTER ) // Hero´Â ¸¶½ºÅÍ ¹«±â¸¦ ÀåÂøÇÒ ¼ö ÀÖ´Ù.
{
if( nJob + 16 == m_nJob )
return TRUE;
}
else if( nJob < MAX_HERO ) // Hero´Â ¸¶½ºÅÍ ¹«±â¸¦ ÀåÂøÇÒ ¼ö ÀÖ´Ù.
{
if( nJob + 8 == m_nJob )
return TRUE;
}
}
#endif
#ifdef __AZURE_CLASS
if( IsAzureLegendHero()) // ·¹º§ÀÌ ¾ÈµÇ¸é ¸øÂü.
{
if( nJob < MAX_EXPERT )
{
if( nJob * 2 + 38 == m_nJob || nJob * 2 + 39 == m_nJob )
return TRUE;
}
else if( nJob < MAX_PROFESSIONAL )
{
if( nJob + 38 == m_nJob )
return TRUE;
}
else if( nJob < MAX_MASTER ) // Hero´Â ¸¶½ºÅÍ ¹«±â¸¦ ÀåÂøÇÒ ¼ö ÀÖ´Ù.
{
if( nJob + 26 == m_nJob )
return TRUE;
}
else if( nJob < MAX_HERO ) // Hero´Â ¸¶½ºÅÍ ¹«±â¸¦ ÀåÂøÇÒ ¼ö ÀÖ´Ù.
{
if( nJob + 16 == m_nJob )
return TRUE;
}
else if( nJob < MAX_AZURE_JOB ) // Hero´Â ¸¶½ºÅÍ ¹«±â¸¦ ÀåÂøÇÒ ¼ö ÀÖ´Ù.
{
if( nJob + 8 == m_nJob )
return TRUE;
}
}
#endif
#endif //__LEGEND // 10Â÷ Àü½Â½Ã½ºÅÛ Neuz, World, Trans
return FALSE;
}
and this is my definejob.h
Code:
#ifndef __DEFINE_JOB
#define __DEFINE_JOB
#define JTYPE_BASE 0
#define JTYPE_EXPERT 1
#define JTYPE_PRO 2
#define JTYPE_TROUPE 3
#define JTYPE_COMMON 4
#define JTYPE_MASTER 5
#define JTYPE_HERO 6
#ifdef __3RD_LEGEND16
#define JTYPE_LEGEND_HERO 7
#endif // __3RD_LEGEND16
#ifdef __AZURE_CLASS
#define JTYPE_AZURE_JOB 8
#endif //__AZURE_CLASS
#define MAX_JOB_SKILL 3
#define MAX_EXPERT_SKILL 20
#define MAX_PRO_SKILL 20
#define MAX_TROUPE_SKILL 9
#define MAX_MASTER_SKILL 1
#define MAX_HERO_SKILL 1
#ifdef __3RD_LEGEND16
#define MAX_LEGEND_HERO_SKILL 6
#endif // __3RD_LEGEND16
#ifdef __AZURE_CLASS
#define MAX_AZURE_JOB_SKILL 6
#endif//__AZURE_CLASS
#define MAX_JOB_LEVEL 15
#define MAX_EXP_LEVEL 45
#define MAX_PRO_LEVEL 30
#define MAX_TROUPE_LEVEL 1
#ifdef __AZURE_CLASS
#define MAX_AZURE_JOB_LEVEL 140
#endif
#if __VER >= 15 // __HERO129_VER15 // 15Â÷ È÷¾î·Î ·¹º§È®Àå
#ifdef __3RD_LEGEND16
#define MAX_3RD_LEGEND_LEVEL 139
#define MAX_LEGEND_LEVEL 130
#else // __3RD_LEGEND16
#define MAX_LEGEND_LEVEL 129
#endif // __3RD_LEGEND16
#define MAX_MONSTER_LEVEL 160
#else // 15Â÷ È÷¾î·Î ·¹º§È®Àå
#define MAX_LEGEND_LEVEL 121
#endif // 15Â÷ È÷¾î·Î ·¹º§È®Àå
#if __VER >= 7 //__Y_MAX_LEVEL_8
#define MAX_LEVEL 120
#else //__Y_MAX_LEVEL_8
#define MAX_LEVEL 150
#endif //__Y_MAX_LEVEL_8
//-------------------------------------------------------
// Á÷¾÷ ¹øÈ£¸¦ ¸¶À½´ë·Î ¹Ù²Ù¸é ¾ÈµË´Ï´Ù.
// ¹Ù²Ù°í ½ÍÀ¸½Ã¸é seghope »ó´ãÀ».. ¤»¤»
//-------------------------------------------------------
// Job
#define JOB_VAGRANT 0
#define MAX_JOBBASE 1
// Expert
#define JOB_MERCENARY 1 // ±âº» Á÷¾÷µé
#define JOB_ACROBAT 2
#define JOB_ASSIST 3
#define JOB_MAGICIAN 4
#define JOB_PUPPETEER 5
#define MAX_EXPERT 6
// Professional
#define JOB_KNIGHT 6
#define JOB_BLADE 7
#define JOB_JESTER 8
#define JOB_RANGER 9
#define JOB_RINGMASTER 10
#define JOB_BILLPOSTER 11
#define JOB_PSYCHIKEEPER 12
#define JOB_ELEMENTOR 13
#define JOB_GATEKEEPER 14
#define JOB_DOPPLER 15
#define MAX_PROFESSIONAL 16
// Master
#define JOB_KNIGHT_MASTER 16
#define JOB_BLADE_MASTER 17
#define JOB_JESTER_MASTER 18
#define JOB_RANGER_MASTER 19
#define JOB_RINGMASTER_MASTER 20
#define JOB_BILLPOSTER_MASTER 21
#define JOB_PSYCHIKEEPER_MASTER 22
#define JOB_ELEMENTOR_MASTER 23
#define MAX_MASTER 24
// Hero
#define JOB_KNIGHT_HERO 24
#define JOB_BLADE_HERO 25
#define JOB_JESTER_HERO 26
#define JOB_RANGER_HERO 27
#define JOB_RINGMASTER_HERO 28
#define JOB_BILLPOSTER_HERO 29
#define JOB_PSYCHIKEEPER_HERO 30
#define JOB_ELEMENTOR_HERO 31
#define MAX_HERO 32
#ifdef __3RD_LEGEND16
// 3Â÷ Á÷¾÷
#define JOB_LORDTEMPLER_HERO 32
#define JOB_STORMBLADE_HERO 33
#define JOB_WINDLURKER_HERO 34
#define JOB_CRACKSHOOTER_HERO 35
#define JOB_FLORIST_HERO 36
#define JOB_FORCEMASTER_HERO 37
#define JOB_MENTALIST_HERO 38
#define JOB_ELEMENTORLORD_HERO 39
#define MAX_LEGEND_HERO 40
#endif // __3RD_LEGEND16
#ifdef __AZURE_CLASS
#define JOB_PALIDIN_HERO 40
#define JOB_SAMURAI_HERO 41
#define JOB_NINJA_HERO 42
#define JOB_TAMER_HERO 43
#define JOB_DANCER_HERO 44
#define JOB_MONK_HERO 45
#define JOB_DEATHKNIGHT_HERO 46
#define JOB_MAGICKNIGHT_HERO 47
#define MAX_AZURE_JOB 48
#endif //__AZURE_CLASS
//
#if __VER >= 16
#ifdef __AZURE_CLASS
#define MAX_JOB 48
#endif
#elif __VER >= 10 //#ifdef __LEGEND // 9Â÷ Àü½Â½Ã½ºÅÛ Neuz, World, Trans
#ifdef __3RD_LEGEND16
#define MAX_JOB 40
#else // __3RD_LEGEND16
#define MAX_JOB 32
#endif // __3RD_LEGEND16
#else //__LEGEND // 9Â÷ Àü½Â½Ã½ºÅÛ Neuz, World, Trans
#define MAX_JOB 16
#endif //__LEGEND // 9Â÷ Àü½Â½Ã½ºÅÛ Neuz, World, Trans
#define JOB_ALL MAX_JOB
[/code]
what i am trying to do is add new third 2nd classes so there more option instead of just the 1 class but im have a problem right there everything else works just fine but im haveing a problem with getting them to link to there old classes n use there old skills n weapons
Re: little problem with linking weapons n skills to new classes
Try to 'look' in some other sources released here. Like the virtuos 1, the dits, perhaps others.
I use a very useful tool. It compares 2 files and shows you the differences.
I hope that might help you out.
Silent
Re: little problem with linking weapons n skills to new classes
Well i have already tryed that n its not really helpfull i understand most of it but still not enough to get it working right
Re: little problem with linking weapons n skills to new classes
search for classes as 2nd job knight, blade, billposter etc
to see what you have missed, it is simply as just adding the 3rd job names in, but when ur creating the skills for 3rd jobs, then thats another story :)
Re: little problem with linking weapons n skills to new classes
Yeah i already tryed that waze , i have everything covered on that part what i noticed was when i was messing with that code i posted i got the 1st class skills to work but then i changed 1 number n they where gone so im trying to remember what i did to get them working again n to get all the other skills n weapons to work
Re: little problem with linking weapons n skills to new classes
Re: little problem with linking weapons n skills to new classes
About the weapons, you need to add the new item level definition for master and hero weapons. And you missed the old jobs on islegendhero function.
The skills might be your skill window. Try posting a picture to see whats the error.
Posted via Mobile Device
Re: little problem with linking weapons n skills to new classes
well for the skills i get the error pSkill 7 Returned NULL stuff like that but thats for only the new classes i am making the normal 3rd classes are just fine i have no kind of problem with them , and for the new classes i would turn in to let say samurai and it would say welcome to the world of master Elementor and hero blade , and as for weapons i dont really understand what you mean i missed definition for master and hero when i see they are in the moverparam also thank you for trying to help out caja