Hallo Epvpers ich hab mal ne frage zur Source, ich hab das hier gefunden
ja und nu zu meiner Frage warum is des alles auskommentiert? Hier wird ja (oben im Code) abgefragt ob der Spieler Level 15 erreicht hat und wenn ja soll ja die Nachricht ausgegeben werden das man den Jobwechseln kann. Wenn man den Job dann wechselt wird ja alles geupdatet ...ich hoffe stimmt alles soweit ^^...naja also wird das nicht gebraucht im Source ?
Code:
// ˬ: hacked
/*
int nJob;
BOOL bGamma = TRUE;
ar >> nJob;
ar >> bGamma;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( TRUE == IsValidObj( ( CObj* )pUser ) )
{
if( bGamma )
{
if( pUser->IsBaseJob() ) // 1Â÷ ÀüÁ÷
{
if( pUser->GetLevel() != MAX_JOB_LEVEL )
{
pUser->AddDefinedText( TID_GAME_CHGJOBLEVEL15 ); // "·¹º§ 15°¡ µÇ¾ß ÀüÁ÷ÇÒ¼ö ÀÖ½À´Ï´Ù"
return;
}
if( pUser->AddChangeJob( nJob ) )
{
( (CUser*)pUser )->AddSetChangeJob( nJob );
g_UserMng.AddNearSetChangeJob( (CMover*)pUser, nJob, &pUser->m_aJobSkill[MAX_JOB_SKILL] );
g_dpDBClient.SendLogLevelUp( (CUser*)pUser, 4 );
#if __VER >= 11 // __SYS_PLAYER_DATA
g_dpDBClient.SendUpdatePlayerData( pUser );
#else // __SYS_PLAYER_DATA
g_DPCoreClient.SendPartyMemberJob( (CUser*)pUser );
g_DPCoreClient.SendFriendChangeJob( (CUser*)pUser );
if( pUser->m_idGuild != 0 )
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)pUser );
#endif // __SYS_PLAYER_DATA
return;
}
}
else
if( pUser->IsExpert() )
{
if( pUser->GetLevel() < MAX_JOB_LEVEL + MAX_EXP_LEVEL )
{
pUser->AddDefinedText( TID_LIMIT_CHANGEJOBLEVEL, "" ); // 60·¹º§ÀÌ µÇ¾ß ÀüÁ÷À» ÇÒ¼ö ÀÖ½À´Ï´Ù
return;
}
if( pUser->AddChangeJob( nJob ) )
{
( (CUser*)pUser )->AddSetChangeJob( nJob );
g_UserMng.AddNearSetChangeJob( (CMover*)pUser, nJob, &pUser->m_aJobSkill[MAX_JOB_SKILL] );
g_dpDBClient.SendLogLevelUp( (CUser*)pUser, 4 );
#if __VER >= 11 // __SYS_PLAYER_DATA
g_dpDBClient.SendUpdatePlayerData( pUser );
#else // __SYS_PLAYER_DATA
g_DPCoreClient.SendPartyMemberJob( (CUser*)pUser );
g_DPCoreClient.SendFriendChangeJob( (CUser*)pUser );
if( pUser->m_idGuild != 0 )
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)pUser );
#endif // __SYS_PLAYER_DATA
return;
}
}
}
else
{
CItemElem* pItemElem = pUser->m_Inventory.GetAtItemId( II_SYS_SYS_SCR_CHACLA );
if( IsUsableItem( pItemElem ) == FALSE || pUser->IsBaseJob() || pUser->GetJob() == nJob )
{ // Àκ¥Å丮¿¡ ¾ÆÀÌÅÛÀÌ ¾ø°Å³ª ¹æ¶ûÀڰųª °°Àº Á÷¾÷À» ¹Ù±¸·Á¸é ¸®ÅÏ
return;
}
if( pUser->IsExpert() )
{
if( JOB_VAGRANT == nJob || MAX_EXPERT <= nJob) // Expert °è¿*ÀÌ ¾Æ´Ï¸é ¸®ÅÏ
return;
}
else
{
if( nJob < MAX_EXPERT || MAX_PROFESSIONAL <= nJob ) // Pro °è¿*ÀÌ ¾Æ´Ï¸é ¸®ÅÏ
return;
}
for( DWORD dwParts = 0; dwParts < MAX_HUMAN_PARTS; dwParts++ )
{
if( dwParts == PARTS_HEAD || dwParts == PARTS_HAIR || dwParts == PARTS_RIDE )
continue;
CItemElem* pArmor = pUser->m_Inventory.GetEquip( dwParts );
if( pArmor )
return;
}
pUser->InitLevel( nJob, pUser->GetLevel(), FALSE );
ItemProp* pItemProp = pItemElem->GetProp();
if( pItemProp && pItemProp->dwSfxObj3 != -1 )
g_UserMng.AddCreateSfxObj((CMover *)pUser, pItemElem->GetProp()->dwSfxObj3, pUser->GetPos().x, pUser->GetPos().y, pUser->GetPos().z);
pUser->AddDefinedText( TID_GAME_CHANGECLASS, "%s", prj.m_aJob[pUser->GetJob()].szName );
// »ó¿ëÈ* ¾ÆÀÌÅÛ »ç¿ë ·Î±× »ðÀÔ
g_dpDBClient.SendLogSMItemUse( "1", pUser, pItemElem, pItemProp );
pUser->RemoveItem( (BYTE)pItemElem->m_dwObjId, 1 );
}
}
*/
}
ja und nu zu meiner Frage warum is des alles auskommentiert? Hier wird ja (oben im Code) abgefragt ob der Spieler Level 15 erreicht hat und wenn ja soll ja die Nachricht ausgegeben werden das man den Jobwechseln kann. Wenn man den Job dann wechselt wird ja alles geupdatet ...ich hoffe stimmt alles soweit ^^...naja also wird das nicht gebraucht im Source ?