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!

Auto max skill on level up

Status
Not open for further replies.
Elite Diviner
Joined
Dec 23, 2008
Messages
425
Reaction score
15
Hi, I have tried this guide on max skill upon leveling up, but it didn't work- skills don't get maxed.

This is the part of my code of Mover.cpp:

PHP:
#if __VER >= 11 // __SYS_PLAYER_DATA
		g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
#else	// __SYS_PLAYER_DATA
		g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
		g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
		if( m_idGuild != 0 )
			g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
#endif	// __SYS_PLAYER_DATA
		SetHitPoint( GetMaxHitPoint() );
		SetManaPoint( GetMaxManaPoint() );
		SetFatiguePoint( GetMaxFatiguePoint() );
	
		g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
		( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
		( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
		( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
		( (CUser*)this )->AddTaskBar();
		((CUser*)this)->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
#if __VER >= 13 // __HONORABLE_TITLE			// ´ÞÀÎ
		((CUser*)this)->CheckHonorStat();
		((CUser*)this)->AddHonorListAck();
		g_UserMng.AddHonorTitleChange( this, m_nHonor);
#endif	// __HONORABLE_TITLE			// ´ÞÀÎ
	}
#endif // __WORLDSERVER

#ifdef __WORLDSERVER
	//  CUser* pUser;

	LPSKILL pSkill = NULL;
	ItemProp* pSkillProp = NULL;

	for (int i = 0; i < MAX_SKILL_JOB; i++)
	{
		pSkill = &(((CUser*)this)->m_aJobSkill[i]);

		if (pSkill == NULL || pSkill->dwSkill == 0xffffffff)
			continue;

		pSkillProp = prj.GetSkillProp(pSkill->dwSkill);

		if (pSkillProp == NULL)
			continue;

		pSkill->dwLevel = pSkillProp->dwExpertMax;
		((CUser*)this)->AddSetSkill(pSkill->dwSkill, pSkill->dwLevel);
	}
#endif // __WORLDSERVER 
}

Not sure if I missed something.

The files are V19 official.

Thanks!
 
Inactive
Joined
Jan 20, 2009
Messages
1,014
Reaction score
1,830
There is no such thing as V19 official files.

The proper and fixed auto max skill is usually defined as -> __AUTO_MAX_SKILL

You can get that from this source:
 
Upvote 0
Elite Diviner
Joined
Dec 23, 2008
Messages
425
Reaction score
15
There is no such thing as V19 official files.

The proper and fixed auto max skill is usually defined as -> __AUTO_MAX_SKILL

You can get that from this source:
Thanks!
I was sure it's official V19, not sure where I downloaded it but the folder says K18-VS19 (probably Visual studio 19)

Per your message:

1. I added all blocks with #define __AUTO_SKILL_MAX (also quick job change),
2. rebuild the project
3. Copied the output (account, world server etc)
4. executed merger2.exe and copied the datasub's to the client

I still don't see anything works - the max level skills and the quick jobchange.
Any idea if i'm missing something?
 
Upvote 0
Inactive
Joined
Jan 20, 2009
Messages
1,014
Reaction score
1,830
Thanks!
I was sure it's official V19, not sure where I downloaded it but the folder says K18-VS19 (probably Visual studio 19)

Per your message:

1. I added all blocks with #define __AUTO_SKILL_MAX (also quick job change),
2. rebuild the project
3. Copied the output (account, world server etc)
4. executed merger2.exe and copied the datasub's to the client

I still don't see anything works - the max level skills and the quick jobchange.
Any idea if i'm missing something?

Make sure you have defined __AUTO_SKILL_MAX

Also those are my files not retail and yes VS19 is Visual Studio 2019 :p
 
Upvote 0
Elite Diviner
Joined
Dec 23, 2008
Messages
425
Reaction score
15
Make sure you have defined __AUTO_SKILL_MAX

Also, those are my files not retail and yes VS19 is Visual Studio 2019 :p

So K means "Ketchup"! Mystery solved :lol:
I double-checked the __AUTO_SKILL_MAX definition, indeed I forgot to add it in VersionCommon of Neuz, I added it only in VersionCOmmon of World.

I have compilation issue now on the quick job change:

1>MoverParam.obj : error LNK2019: unresolved external symbol "public: __thiscall CWndJobChangeEx::CWndJobChangeEx(void)" (??0CWndJobChangeEx@@QAE@XZ) referenced in function "public: int __thiscall CMover::SetExperience(__int64,int)" (?SetExperience@CMover@@QAEH_JH@Z)

Not sure what this error means, Microsoft docs didn't help :D
 
Upvote 0
Inactive
Joined
Jan 20, 2009
Messages
1,014
Reaction score
1,830
So K means "Ketchup"! Mystery solved :lol:
I double-checked the __AUTO_SKILL_MAX definition, indeed I forgot to add it in VersionCommon of Neuz, I added it only in VersionCOmmon of World.

I have compilation issue now on the quick job change:

1>MoverParam.obj : error LNK2019: unresolved external symbol "public: __thiscall CWndJobChangeEx::CWndJobChangeEx(void)" (??0CWndJobChangeEx@@QAE@XZ) referenced in function "public: int __thiscall CMover::SetExperience(__int64,int)" (?SetExperience@CMover@@QAEH_JH@Z)

Not sure what this error means, Microsoft docs didn't help :D

Make sure your WndChangeJob files are added to your neuz.
 
Upvote 0
Elite Diviner
Joined
Dec 23, 2008
Messages
425
Reaction score
15
Make sure your WndChangeJob files are added to your neuz.

Thanks, I added it through the VS instead of copy paste and it did recognize it,
but now my client crash when I reach Lv.15 (auto max skill works! )

Is there a way to check why the client has crashed to debug if something is missing?
 
Upvote 0
Inactive
Joined
Jan 20, 2009
Messages
1,014
Reaction score
1,830
Thanks, I added it through the VS instead of copy paste and it did recognize it,
but now my client crash when I reach Lv.15 (auto max skill works! )

Is there a way to check why the client has crashed to debug if something is missing?

Make sure the app is in ResData & your using the current ResData's.
 
Upvote 0
Status
Not open for further replies.
Back
Top