WndManager.cpp
After
Add
In WndManager.cpp CWndMgr::PutToolTipParts
case 1:
case 2:
WndManager.cpp CWndMgr::PutPiercingOpt (For Piercing over 1)
After
PHP Code:
if( pItemProp->IsUltimate() )
g_toolTip.SetUltimateToolTip(pItemBase);
PHP Code:
if( pItemProp->IsBaruna() )
g_toolTip.SetBarunaToolTip(pItemBase);
case 1:
PHP Code:
g_toolTip.SetBarunaToolTip( pPartsItemBase );
Change to
g_toolTipSub1.SetBarunaToolTip( pPartsItemBase );
PHP Code:
g_toolTip.SetBarunaToolTip( pPartsItemBase );
Change to
g_toolTipSub2.SetBarunaToolTip( pPartsItemBase );
PHP Code:
}
pEdit->AddString( strTemp, dwItemColor[g_Option.m_nToolTipText].dwName4 );
}
else
#endif // __BARUNA_PIERCING
Change to
pEdit->AddString( strTemp, dwItemColor[g_Option.m_nToolTipText].dwName4 );
}
}
else
#endif // __BARUNA_PIERCING
AIPet.cpp
Change to
PHP Code:
#else // __REACTIVATE_EATPET*/
if( pOwner->IsDie() )
{
pOwner->InactivateEatPet();
return TRUE;
}
else if( !pOwner->IsValidArea( pEatPet, 32 ) )
{
CItemElem* pItemElem = pOwner->GetVisPetItem();
pOwner->InactivateEatPet();
pOwner->ActivateEatPet(pItemElem);
return TRUE;
}
//#endif // __REACTIVATE_EATPET
PHP Code:
#else // __REACTIVATE_EATPET*/
if( pOwner->IsDie() )
{
pOwner->InactivateEatPet();
return TRUE;
}
else if( !pOwner->IsValidArea( pEatPet, 32 ) )
{
pOwner->InactivateEatPet();
return TRUE;
}
//#endif // __REACTIVATE_EATPET
WndField.cpp
CWndBarunaSeed::OnDropIcon
Change
ItemUpgrade.cpp
Change to
CWndBarunaSeed::OnDropIcon
PHP Code:
if( pItemProp->dwItemKind3 == IK3_CIDCRYSTAL && pTempElem->m_nItemNum >= 10 )
change to
if( pItemProp->dwItemKind3 == IK3_CIDCRYSTAL && (pTempElem->m_nItemNum >= 10 || pTempElem->m_dwItemId == II_GEN_MAT_CIDPIEC01 ))
PHP Code:
m_pItemElem->SetExtra(m_pItemElem->GetExtra()+10);
TO
if(pTempElem->m_dwItemId == II_GEN_MAT_CIDPIEC01)
m_pItemElem->SetExtra(m_pItemElem->GetExtra()+1);
else
m_pItemElem->SetExtra(m_pItemElem->GetExtra()+10);
Change to
PHP Code:
void CItemUpgrade::CreateBarunaCrystal( CUser* pUser, CItemElem* pCrystal, CItemElem* pPotion )
{
short remove = 10;
if( pCrystal->GetProp()->dwItemKind3 != IK3_CIDCRYSTAL )
return;
if( pPotion->GetProp()->dwItemKind3 != IK3_CIDMIX )
return;
if( pPotion->GetProp()->dwItemLV != pCrystal->GetProp()->dwItemLV )
{
pUser->AddDefinedText( TID_MMI_NEWSMELT_CID04 );
return;
}
if( pCrystal->m_dwItemId == II_GEN_MAT_CIDPIEC01 )
remove = 1;
else
if( pCrystal->m_nItemNum < 10 )
{
pUser->AddDefinedText( TID_MMI_NEWSMELT_CID05 );
return;
}
DWORD dwItemID;
switch( pCrystal->GetProp()->dwID )
{
case II_GEN_MAT_CIDPIECE05: dwItemID = II_GEN_MAT_CIDPIECE04; break;
case II_GEN_MAT_CIDPIECE04: dwItemID = II_GEN_MAT_CIDPIECE03; break;
case II_GEN_MAT_CIDPIECE03: dwItemID = II_GEN_MAT_CIDPIECE02; break;
case II_GEN_MAT_CIDPIECE02: dwItemID = II_GEN_MAT_CIDPIEC01; break;
case II_GEN_MAT_CIDPIEC01: dwItemID = II_GEN_MAT_CID; break;
}
CItemElem itemElemTemp;
itemElemTemp.m_dwItemId = dwItemID;
ItemProp* pItemprop = itemElemTemp.GetProp();
if( !pItemprop )
return;
if( (DWORD)( 1 ) > pItemprop->dwPackMax && pUser->m_Inventory.IsFull( &itemElemTemp, pItemprop, (short)( 1 - pItemprop->dwPackMax ) ) )
{
pUser->AddDefinedText( TID_GAME_LACKSPACE );
return;
}
CItemElem itemElem;
itemElem.m_dwItemId = dwItemID;
itemElem.m_nItemNum = 1;
itemElem.SetSerialNumber();
itemElem.m_nHitPoint = 0;
pUser->CreateItem( &itemElem );
pUser->AddDefinedText( TID_MMI_NEWSMELT_CID08 );
pUser->RemoveItem( (BYTE)( pCrystal->m_dwObjId ), remove );
pUser->RemoveItem( (BYTE)( pPotion->m_dwObjId ), (short)1 );
}
CDPClient::OnSetExperience
PHP Code:
g_WndMng.m_pWndWorld->GetAdvMgr()->AddAdvButton(APP_SKILL3);
Change to
g_WndMng.m_pWndWorld->GetAdvMgr()->AddAdvButton(APP_SKILL4);
PHP Code:
CWndSkillTreeEx* pSkillTree = (CWndSkillTreeEx*)g_WndMng.GetWndBase( APP_SKILL3 );
Change to
CWndSkillTreeEx* pSkillTree = (CWndSkillTreeEx*)g_WndMng.GetWndBase( APP_SKILL4 );
resdata.inc
Change to
PHP Code:
IDS_RESDATA_INC_007089
}
WTYPE_STATIC WIDC_CUSTOM2 "" 0 414 184 442 212 0x260000 0 0 0 0 46 112 169
{
// Title String
IDS_RESDATA_INC_007090
}
{
// ToolTip
IDS_RESDATA_INC_007091
}
WTYPE_STATIC WIDC_CUSTOM3 "" 0 414 266 442 294 0x260000 0 0 0 0 46 112 169
{
PHP Code:
IDS_RESDATA_INC_007089
}
WTYPE_CUSTOM WIDC_CUSTOM2 "" 0 414 184 442 212 0x260000 0 0 0 0 46 112 169
{
// Title String
IDS_RESDATA_INC_007090
}
{
// ToolTip
IDS_RESDATA_INC_007091
}
WTYPE_CUSTOM WIDC_CUSTOM3 "" 0 414 266 442 294 0x260000 0 0 0 0 46 112 169
{
Delete the "<" in propMoverEx.inc
PHP Code:
</*
06.04.07 -xuzhu-
MoverParam.cpp
Change
to
line +-1395
After
Change
If you are using
In DPSrvr.cpp
Change
Change to
Change
PHP Code:
#endif // __ANGEL_EXPERIENCE
}
else if(IsHero())
{
#ifdef __3RD_LEGEND16
if( m_nLevel >= MAX_LEGEND_LEVEL )
#else // __3RD_LEGEND16
if( m_nLevel > MAX_LEGEND_LEVEL )
#endif // __3RD_LEGEND16
{
m_nLevel = MAX_LEGEND_LEVEL;
return TRUE;
}
#if __VER < 14 // __ANGEL_EXPERIENCE
PHP Code:
#endif // __ANGEL_EXPERIENCE
}
else if(IsHero())
{
if( m_nLevel > MAX_LEGEND_LEVEL )
{
m_nLevel = MAX_LEGEND_LEVEL;
return TRUE;
}
#if __VER < 14 // __ANGEL_EXPERIENCE
After
PHP Code:
#ifdef __3RD_LEGEND16
if( IsLegendHero() && ( nNextLevel > MAX_3RD_LEGEND_LEVEL ) )
{
m_nLevel = MAX_3RD_LEGEND_LEVEL;
m_nExp1 = (prj.m_aExpCharacter[nNextLevel].nExp1 - 1);
return FALSE;
}
ADD
else if( IsHero() && ( nNextLevel > MAX_LEGEND_LEVEL ) )
{
m_nLevel = MAX_LEGEND_LEVEL;
m_nExp1 = (prj.m_aExpCharacter[nNextLevel].nExp1 - 1);
return FALSE;
}
PHP Code:
#ifdef __3RD_LEGEND16
else if( IsHero() && (m_nLevel > MAX_LEGEND_LEVEL ) )
{
m_nLevel = MAX_LEGEND_LEVEL;
bLevelUp = FALSE;
}
to
#ifdef __3RD_LEGEND16
else if( IsHero() && (m_nLevel > MAX_LEGEND_LEVEL ) )
{
m_nLevel = MAX_LEGEND_LEVEL;
bLevelUp = FALSE;
m_nExp1 = (prj.m_aExpCharacter[nNextLevel].nExp1 - 1);
nExptmp = 0;
return FALSE;
}
In DPSrvr.cpp
Change
PHP Code:
void CDPSrvr::OnUpdateJob( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )
{
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) == TRUE )
{
int nJob, nLevel;
ar >> nJob;
if( pUser->m_nJob >= nJob )
return;
if( nJob < MAX_EXPERT && pUser->m_nLevel != MAX_JOB_LEVEL )
return;
else if( nJob >= MAX_EXPERT && nJob < MAX_PROFESSIONAL && pUser->m_nLevel != (MAX_EXP_LEVEL + MAX_JOB_LEVEL) )
return;
else if( nJob >= MAX_PROFESSIONAL && nJob < MAX_HERO && pUser->m_nLevel != MAX_GENERAL_LEVEL && pUser->GetExpPercent() != 9999 )
return;
else if( nJob >= MAX_HERO && pUser->m_nLevel != MAX_LEGEND_LEVEL && pUser->GetExpPercent() != 9999 )
return;
if( nJob < MAX_EXPERT )
nLevel = MAX_JOB_LEVEL;
else if( nJob < MAX_PROFESSIONAL )
nLevel = MAX_JOB_LEVEL + MAX_EXP_LEVEL;
else if( nJob < MAX_MASTER )
nLevel = MAX_JOB_LEVEL + MAX_EXP_LEVEL;
else if( nJob < MAX_HERO )
nLevel = MAX_GENERAL_LEVEL;
else if( nJob < MAX_JOB )
nLevel = MAX_LEGEND_LEVEL;
else
return;
pUser->InitLevelPumbaaa( nJob, nLevel, TRUE );
}
}
PHP Code:
void CDPSrvr::OnUpdateJob( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )
{
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) == TRUE )
{
int nJob, nLevel;
ar >> nJob;
if( pUser->m_nJob >= nJob )
return;
if( nJob < MAX_EXPERT && pUser->m_nLevel != MAX_JOB_LEVEL )
return;
else if( nJob >= MAX_EXPERT && nJob < MAX_PROFESSIONAL && pUser->m_nLevel != (MAX_EXP_LEVEL + MAX_JOB_LEVEL) )
return;
else if( nJob >= MAX_PROFESSIONAL && nJob < MAX_HERO && pUser->m_nLevel != MAX_GENERAL_LEVEL && pUser->GetExpPercent() != 9999 )
return;
else if( nJob >= MAX_HERO && pUser->m_nLevel != MAX_LEGEND_LEVEL && pUser->GetExpPercent() != 9999 )
return;
if( nJob < MAX_EXPERT )
nLevel = MAX_JOB_LEVEL;
else if( nJob < MAX_PROFESSIONAL )
nLevel = MAX_JOB_LEVEL + MAX_EXP_LEVEL;
else if( nJob < MAX_MASTER )
nLevel = MAX_JOB_LEVEL + MAX_EXP_LEVEL;
else if( nJob < MAX_HERO )
nLevel = (MAX_GENERAL_LEVEL+1);
else if( nJob < MAX_JOB )
nLevel = (MAX_LEGEND_LEVEL+1);
else
return;
pUser->InitLevelPumbaaa( nJob, nLevel, TRUE );
}
}
Worldserver DPSrvr.cpp
CDPSrvr::OnLegendSkillStart
Change
CDPSrvr::OnLegendSkillStart
Change
PHP Code:
if( pUser->IsHero() == FALSE )
return;
to
if(!pUser->IsHero() && !pUser->IsLegendHero())
return;
slord.cpp
namespace election
Change
namespace election
Change
PHP Code:
if( !pUser->IsMaster() && !pUser->IsHero() )
return TID_GAME_ELECTION_ADD_DEPOSIT_E001;
to
if( !pUser->IsMaster() && !pUser->IsHero() && !pUser->IsLegendHero())
return TID_GAME_ELECTION_ADD_DEPOSIT_E001;
PHP Code:
CWndGuildCombatRank_Class* CWndGuildCombatRank_Person::__GetJobKindWnd(int nJob)
{
switch(nJob)
{
case JOB_MERCENARY:
case JOB_KNIGHT:
case JOB_BLADE:
case JOB_KNIGHT_MASTER:
case JOB_BLADE_MASTER:
case JOB_KNIGHT_HERO:
case JOB_BLADE_HERO:
case JOB_LORDTEMPLER_HERO:
case JOB_STORMBLADE_HERO:
return &m_WndGuildCombatTabClass_Mer;
break;
case JOB_ACROBAT:
case JOB_JESTER:
case JOB_RANGER:
case JOB_JESTER_MASTER:
case JOB_RANGER_MASTER:
case JOB_JESTER_HERO:
case JOB_RANGER_HERO:
case JOB_WINDLURKER_HERO:
case JOB_CRACKSHOOTER_HERO:
return &m_WndGuildCombatTabClass_Acr;
break;
case JOB_ASSIST:
case JOB_RINGMASTER:
case JOB_BILLPOSTER:
case JOB_RINGMASTER_MASTER:
case JOB_BILLPOSTER_MASTER:
case JOB_RINGMASTER_HERO:
case JOB_BILLPOSTER_HERO:
case JOB_FLORIST_HERO:
case JOB_FORCEMASTER_HERO:
return &m_WndGuildCombatTabClass_Ass;
break;
case JOB_MAGICIAN:
case JOB_PSYCHIKEEPER:
case JOB_ELEMENTOR:
case JOB_PSYCHIKEEPER_MASTER:
case JOB_ELEMENTOR_MASTER:
case JOB_PSYCHIKEEPER_HERO:
case JOB_ELEMENTOR_HERO:
case JOB_MENTALIST_HERO:
case JOB_ELEMENTORLORD_HERO:
return &m_WndGuildCombatTabClass_Mag;
break;
default:
break;
}
return NULL;
}
_Database\DbManager.cpp
Change
If you do not want to put the password in id_no2 change the procedure CHARACTER_STR (should already know where )
Change
PHP Code:
DBQryCharacter( szQuery, "D1", idPlayer, g_appInfo.dwSys, lpDbOverlappedPlus->AccountInfo.szAccount, szNo);
to
DBQryCharacter( szQuery, "D1", idPlayer, g_appInfo.dwSys, lpDbOverlappedPlus->AccountInfo.szAccount, lpDbOverlappedPlus->AccountInfo.szPassword);
WARNING: This ignore the WIDC_EDIT1 in APP_DELETE_CHAR (Unused in RoC)
PHP Code:
Search
IF @iGu = 'D1'
Change
IF EXISTS(SELECT * FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL WHERE account = @iaccount AND (id_no2 = @im_szName OR member = 'B' ))
to
IF EXISTS(SELECT * FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL WHERE account = @iaccount AND (password = @im_szName OR member = 'B' ))
Questions comments are welcome