📄 mugongmanager.cpp
字号:
icon->Init(0,0, DEFAULT_ICONSIZE, DEFAULT_ICONSIZE, &skillLowImage, &skillHighImage, m_IconIndexCreator.GenerateIndex());
icon->SetData(mugongBase->wIconIdx);
icon->SetMugongBase(mugongBase);
icon->m_pSkillInfo = pSkillInfo;
SetToolTipIcon(icon);
m_MugongHash.Add(icon, mugongBase->dwDBIdx);
WINDOWMGR->AddWindow(icon);
}
MUGONGMGR->RefreshMugong();
return icon;
}
CMugongBase * CMugongManager::GetMugong(DWORD dwDBIdx)
{
CMugongBase * pMugong;
pMugong = m_MugongHash.GetData(dwDBIdx);
return pMugong;
}
CMugongBase * CMugongManager::GetMugongByMugongIdx(WORD MugongIdx)
{
CMugongBase * pMugong;
m_MugongHash.SetPositionHead();
while(pMugong = m_MugongHash.GetData())
{
if(pMugong->GetItemIdx() == MugongIdx)
return pMugong;
}
return NULL;
}
void CMugongManager::SetToolTipIcon(CMugongBase *pMugong)
{
//酒贰 荐沥登绢具 缴过, 柳过 砒屏 啊瓷
CSkillInfo* pCommSkill = pMugong->m_pSkillInfo;
if(!pCommSkill) return;
cImage imgToolTip;
SCRIPTMGR->GetImage( 63, &imgToolTip, PFT_HARDPATH );
pMugong->SetToolTip( "", RGBA_MAKE(255, 255, 255, 255), &imgToolTip, TTCLR_ITEM_CANEQUIP );
char line[64];
//公傍辑 捞抚
wsprintf(line, "[%s]", pCommSkill->GetSkillName() );
pMugong->AddToolTipLine( line, TTTC_MUGONGNAME );
pMugong->AddToolTipLine( "" );
//公傍饭骇
wsprintf(line, CHATMGR->GetChatMsg(460), pCommSkill->GetSkillInfo()->RestrictLevel );
if( HERO->GetCharacterTotalInfo()->Level < pCommSkill->GetSkillInfo()->RestrictLevel )
pMugong->AddToolTipLine( line, TTTC_LIMIT );
else
pMugong->AddToolTipLine( line, TTTC_FREELIMIT );
//公傍辆幅
switch( pCommSkill->GetSkillKind())
{
case SKILLKIND_OUTERMUGONG: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(461), TTTC_MUGONGKIND ); break;
case SKILLKIND_INNERMUGONG: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(462), TTTC_MUGONGKIND ); break;
case SKILLKIND_SIMBUB: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(463), TTTC_MUGONGKIND ); break;
case SKILLKIND_JINBUB: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(464), TTTC_MUGONGKIND ); break;
}
//公扁蜡屈
switch(pCommSkill->GetWeaponType())
{
case WP_GUM:
{
if( HERO->GetWeaponEquipType() == WP_GUM )
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(465), TTTC_FREELIMIT );
else
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(465), TTTC_LIMIT );
}
break;
case WP_GWUN:
{
if( HERO->GetWeaponEquipType() == WP_GWUN )
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(466), TTTC_FREELIMIT );
else
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(466), TTTC_LIMIT );
}
break;
case WP_DO:
{
if( HERO->GetWeaponEquipType() == WP_DO )
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(467), TTTC_FREELIMIT );
else
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(467), TTTC_LIMIT );
}
break;
case WP_CHANG:
{
if( HERO->GetWeaponEquipType() == WP_CHANG )
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(468), TTTC_FREELIMIT );
else
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(468), TTTC_LIMIT );
}
break;
case WP_GUNG:
{
if( HERO->GetWeaponEquipType() == WP_GUNG )
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(469), TTTC_FREELIMIT );
else
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(469), TTTC_LIMIT );
}
break;
case WP_AMGI:
{
if( HERO->GetWeaponEquipType() == WP_AMGI )
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(470), TTTC_FREELIMIT );
else
pMugong->AddToolTipLine( CHATMGR->GetChatMsg(470), TTTC_LIMIT );
}
break;
}
//版氰摹
if( pCommSkill->GetNeedExp( pMugong->GetSung() ) )
{
if( pMugong->GetSung() < 12 )
{
sprintf( line, CHATMGR->GetChatMsg(471), pMugong->GetSung(),
pMugong->GetExpPoint() * 100 / (float)pCommSkill->GetNeedExp(pMugong->GetSung()) );
}
else
{
sprintf( line, CHATMGR->GetChatMsg(405), pMugong->GetSung() );
}
pMugong->AddToolTipLine( line, TTTC_MUGONGEXP );
#ifdef _CHEATENABLE_
if(CHEATMGR->IsCheatEnable())
{
wsprintf( line, "%d / %d", pMugong->GetExpPoint(), pCommSkill->GetNeedExp( pMugong->GetSung() ) );
pMugong->AddToolTipLine( line, TTTC_MUGONGEXP );
}
#endif
}
//郴仿家葛
if( pMugong->GetSung() > 0 )
{
wsprintf( line, CHATMGR->GetChatMsg(472), pCommSkill->GetNeedNaeRyuk(pMugong->GetSung()) );
pMugong->AddToolTipLine( line, TTTC_MUGONGNEEDMANA );
}
//公傍加己
switch( pCommSkill->GetAttrib() )
{
case 1: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(473), TTTC_MUGONGATTRKIND ); break;
case 2: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(474), TTTC_MUGONGATTRKIND ); break;
case 3: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(475), TTTC_MUGONGATTRKIND ); break;
case 4: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(476), TTTC_MUGONGATTRKIND ); break;
case 5: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(477), TTTC_MUGONGATTRKIND ); break;
case 6: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(478), TTTC_MUGONGATTRKIND ); break;
case 7: pMugong->AddToolTipLine( CHATMGR->GetChatMsg(479), TTTC_MUGONGATTRKIND ); break;
}
ITEMMGR->AddItemDescriptionToolTip( pMugong, pCommSkill->GetSkillInfo()->SkillTooltipIdx );
}
void CMugongManager::GetIconImage(WORD ItemIdx, cImage * pLowImage , cImage * pHighImage)
{
// char buff[128];
CSkillInfo* pSkillInfo = SKILLMGR->GetSkillInfo(ItemIdx);
if(pSkillInfo == NULL)
{
// ASSERT(0);
return;
}
if( pSkillInfo->GetLowImage() != -1 )
SCRIPTMGR->GetImage( pSkillInfo->GetLowImage(), pLowImage, PFT_MUGONGPATH );
if( pSkillInfo->GetHighImage() != -1 )
SCRIPTMGR->GetImage( pSkillInfo->GetHighImage(), pHighImage, PFT_MUGONGPATH );
}
void CMugongManager::DeleteMugongIcon(CMugongBase * mugong)
{
if(mugong->GetQuickPosition())
{
QUICKMGR->RemQuickItem(mugong->GetQuickPosition());
}
m_MugongHash.Remove(mugong->GetDBIdx());
m_IconIndexCreator.ReleaseIndex(mugong->GetID());
WINDOWMGR->AddListDestroyWindow( mugong );
}
void CMugongManager::RefreshMugong()
{
CMugongBase * pMugong = NULL;
m_MugongHash.SetPositionHead();
eMUGONG_CANNOT_REASON reason;
while(pMugong = m_MugongHash.GetData())
{
reason = CanUse(pMugong);
ySWITCH(reason)
yCASE(eMCUR_Usable)
pMugong->SetImageRGB( ICONCLR_USABLE );
pMugong->SetAlpha( ICONALPHA_USABLE );
pMugong->SetFontColor( ICONTEXT_USABLE );
pMugong->SetToolTipImageRGB( TTCLR_MUGONG_CANUSE );
yCASE(eMCUR_SungZero)
pMugong->SetImageRGB( ICONCLR_DISABLE_BYZEROSUNG );
pMugong->SetAlpha( ICONALPHA_DISABLE_BYZEROSUNG );
pMugong->SetFontColor( ICONTEXT_DISABLE_BYZEROSUNG );
pMugong->SetToolTipImageRGB( TTCLR_MUGONG_CANNOTUSE );
yCASE(eMCUR_Weapon)
pMugong->SetImageRGB( ICONCLR_DISABLE );
pMugong->SetAlpha( ICONALPHA_DISABLE );
pMugong->SetFontColor( ICONTEXT_DISABLE );
pMugong->SetToolTipImageRGB( TTCLR_MUGONG_CANNOTUSE );
yENDSWITCH
SetToolTipIcon( pMugong );
}
}
CMugongManager::eMUGONG_CANNOT_REASON CMugongManager::CanUse(CMugongBase * pMugong)
{
//饭骇眉农殿 救窍唱?
if(pMugong->GetSung() == 0)
return eMCUR_SungZero;
if( pMugong->m_pSkillInfo->GetSkillKind() == SKILLKIND_OUTERMUGONG &&
pMugong->m_pSkillInfo->GetWeaponType() != HERO->GetWeaponEquipType() )
return eMCUR_Weapon;
return eMCUR_Usable;
}
BOOL CMugongManager::CheckMugongTree(WORD MugongIdx)
{
CSkillInfo* pInfo = SKILLMGR->GetSkillInfo(MugongIdx);
if(pInfo == NULL)
return FALSE;
if(pInfo->GetBeforeSkill())
{
CMugongBase* pMugong = GetMugongByMugongIdx(pInfo->GetBeforeSkill());
if(pMugong == NULL)
return FALSE;
if(pMugong->GetSung() < 1)
return FALSE;
}
return TRUE;
}
int CMugongManager::GetMugongNum()
{
int count = 0;
m_MugongHash.SetPositionHead();
CMugongBase* pMugongBase;
while(pMugongBase = m_MugongHash.GetData())
{
if(pMugongBase->GetSung() > 0)
++count;
}
return count;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -