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 ?