📄 quickdialog.cpp
字号:
NETWORK->Send(&msg,sizeof(msg));
}
void CQuickDialog::FakeMoveQuickItem(LONG x, LONG y, CQuickItem * pItem)
{
WORD ToAbsPos=0;
if(!GetAbsPositionForXYRef(x,y,ToAbsPos)) return;
// 后傍埃捞 酒聪搁 困摹背券!!!
// if(!m_pIconGridSheet[m_selectedPage]->IsAddable(ToAbsPos-QUICK_STARTPOSITION))
// return;
CQuickItem * pToQItem = GetQuickItem(ToAbsPos);
//------------------------------------
MSG_QUICK_MOVE_SYN msg;
msg.Category = MP_QUICK;
msg.Protocol = MP_QUICK_MOVE_SYN;
msg.dwObjectID = HEROID;
//------------------------------------
msg.FromSrcPos = pItem->GetSrcPosition();
msg.wFromSrcItemIdx = pItem->GetSrcIdx();
msg.FromQuickPos = pItem->GetPosition();
msg.ToSrcPos = (pToQItem?pToQItem->GetSrcPosition():0);
msg.wToSrcItemIdx = (pToQItem?pToQItem->GetSrcIdx():0);
msg.ToQuickPos = ToAbsPos;
if(msg.FromQuickPos == msg.ToQuickPos)
return ;
NETWORK->Send(&msg,sizeof(msg));
}
void CQuickDialog::FakeAddItem(LONG x, LONG y, CItem * pItem)
{
WORD abs_pos;
if(!GetAbsPositionForXYRef(x, y, abs_pos))
return ;
if(!ITEMMGR->IsOptionItem(pItem->GetItemIdx(), pItem->GetDurability()) && ITEMMGR->IsDupItem(pItem->GetItemIdx()))
{
for(POSTYPE i = TP_QUICK_START ; i < TP_QUICK_END ; ++i)
{
CQuickItem * pQuickItem = GetQuickItem(i);
if(pQuickItem)
if(pQuickItem->GetSrcIdx() == pItem->GetItemIdx())
{
FakeMoveIcon(x, y, pQuickItem); //KES 040513
return;
}
}
}
CQuickItem *pOldQuick = GetQuickItem(abs_pos);
FakeAddItem(abs_pos, pItem, pOldQuick);
}
void CQuickDialog::FakeAddItem(POSTYPE abs_pos, CItem * pItem, CQuickItem * pOldQuick)
{
if(pOldQuick)
if(pOldQuick->GetSrcPosition() == pItem->GetPosition())
return;
if( pItem->IsLocked() ) return;
if( pItem->GetItemKind() == eYOUNGYAK_ITEM )
{
if( !GAMEIN->GetInventoryDialog()->CheckItemLockForItemIdx(pItem->GetItemIdx()) )
return;
}
if(TP_MUNPAWAREHOUSE_START <= pItem->GetItemBaseInfo()->Position && pItem->GetItemBaseInfo()->Position < TP_MUNPAWAREHOUSE_END )
return;
else if(TP_PYOGUK_START <= pItem->GetItemBaseInfo()->Position && pItem->GetItemBaseInfo()->Position < TP_PYOGUK_END)
return;
MSG_QUICK_ADD_SYN msg;
msg.Category = MP_QUICK;
msg.Protocol = MP_QUICK_ADD_SYN;
msg.dwObjectID = HEROID;
msg.QuickPos = abs_pos;
msg.SrcPos = pItem->GetPosition();
msg.SrcItemIdx = pItem->GetItemIdx();
msg.OldSrcPos = (pOldQuick?pOldQuick->GetSrcPosition():0);
msg.OldSrcItemIdx = (pOldQuick?pOldQuick->GetSrcIdx():0);
NETWORK->Send(&msg, sizeof(MSG_QUICK_ADD_SYN));
//ITEM_LOCK
}
void CQuickDialog::FakeAddMugong(LONG x, LONG y, CMugongBase * pMugong)
{
// 厘馒 公傍 力茄 绝促. 葛电 公傍?
WORD abs_pos;
if(!GetAbsPositionForXYRef(x, y, abs_pos))
return;
WORD rel_pos;
if(!m_pIconGridSheet[m_selectedPage]->GetPositionForXYRef(x,y,rel_pos))
return;
// if(!m_pIconGridSheet[m_selectedPage]->IsAddable(rel_pos))
// return;
if(pMugong->GetSung() == 0)
return;
CQuickItem* pOldQuick = GetQuickItem(abs_pos);
if(pOldQuick)
if(pOldQuick->GetSrcPosition() == pMugong->GetPosition())
return;
MSG_QUICK_ADD_SYN msg;
msg.Category = MP_QUICK;
msg.Protocol = MP_QUICK_ADD_SYN;
msg.dwObjectID = HEROID;
msg.QuickPos = abs_pos;
msg.SrcPos = pMugong->GetPosition();
msg.SrcItemIdx = pMugong->GetItemIdx();
msg.OldSrcPos = (pOldQuick?pOldQuick->GetSrcPosition():0);
msg.OldSrcItemIdx = (pOldQuick?pOldQuick->GetSrcIdx():0);
NETWORK->Send(&msg, sizeof(MSG_QUICK_ADD_SYN));
}
void CQuickDialog::FakeAddAbility(LONG x, LONG y, CAbilityIcon * pAbility)
{
WORD abs_pos;
if(!GetAbsPositionForXYRef(x, y, abs_pos))
return;
WORD rel_pos;
if(!m_pIconGridSheet[m_selectedPage]->GetPositionForXYRef(x,y,rel_pos))
return;
CQuickItem* pOldQuick = GetQuickItem(abs_pos);
if(pOldQuick)
if(pOldQuick->GetSrcPosition() == pAbility->GetAbilityInfo()->GetPosition() )
return;
MSG_QUICK_ADD_SYN msg;
msg.Category = MP_QUICK;
msg.Protocol = MP_QUICK_ADD_SYN;
msg.dwObjectID = HEROID;
msg.QuickPos = abs_pos;
// msg.SrcPos = pAbility->GetAbilityInfo()->GetPosition();
msg.SrcPos = pAbility->GetAbilityInfo()->GetAbsPosition();
msg.SrcItemIdx = pAbility->GetAbilityInfo()->GetIdx() + MIN_ABILITY_INDEX;
msg.OldSrcPos = (pOldQuick?pOldQuick->GetSrcPosition():0);
msg.OldSrcItemIdx = (pOldQuick?pOldQuick->GetSrcIdx():0);
NETWORK->Send(&msg, sizeof(MSG_QUICK_ADD_SYN));
}
void CQuickDialog::RefreshIcon()
{
// for( int i = 0 ; i < MAX_QUICKSHEET_NUM ; ++i )
for( int i = 0 ; i < TAB_QUICK_NUM ; ++i )
{
// for( int j = 0 ; j < MAX_QUICKITEMPERSHEET_NUM ; ++j )
for( int j = 0 ; j < TABCELL_QUICK_NUM ; ++j )
{
SetToolTipIcon( (CQuickItem*)m_pIconGridSheet[i]->GetIconForIdx(j) );
}
}
}
void CQuickDialog::RefreshIcon( POSTYPE pos )
{
SetToolTipIcon( GetQuickItem( pos ) );
}
void CQuickDialog::SetToolTipIcon( CQuickItem * item )
{
if( item == NULL ) return;
char ToolTipText[256] = { 0, };
cImage imgToolTip;
SCRIPTMGR->GetImage( 63, &imgToolTip, PFT_HARDPATH );
item->SetToolTip( "", RGB_HALF( 255, 255, 255), &imgToolTip, TTCLR_ITEM_CANEQUIP );
ITEM_INFO* pInfo = ITEMMGR->GetItemInfo( item->GetSrcIdx() );
if( pInfo )
{
wsprintf(ToolTipText, "[%s]", pInfo->ItemName );
item->AddToolTipLine( ToolTipText, TTTC_DEFAULT );
//康距狼 版快 雀汗仿
if( pInfo->ItemKind == eYOUNGYAK_ITEM )
{
if( pInfo->GenGol != 0)
{
wsprintf(ToolTipText, "%s +%d", CHATMGR->GetChatMsg(261), pInfo->GenGol);
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( pInfo->MinChub != 0)
{
wsprintf(ToolTipText, "%s +%d", CHATMGR->GetChatMsg(262), pInfo->MinChub);
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( pInfo->CheRyuk != 0)
{
wsprintf(ToolTipText, "%s +%d", CHATMGR->GetChatMsg(263), pInfo->CheRyuk);
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( pInfo->SimMek != 0)
{
wsprintf(ToolTipText, "%s +%d", CHATMGR->GetChatMsg(264), pInfo->SimMek);
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( (int)(pInfo->AttrRegist.GetElement_Val(ATTR_FIRE)) !=0 )
{
wsprintf(ToolTipText, "%s +%d%%", CHATMGR->GetChatMsg(265), (int)(pInfo->AttrRegist.GetElement_Val(ATTR_FIRE)));
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( (int)(pInfo->AttrRegist.GetElement_Val(ATTR_WATER)) !=0 )
{
wsprintf(ToolTipText, "%s +%d%%", CHATMGR->GetChatMsg(266), (int)(pInfo->AttrRegist.GetElement_Val(ATTR_WATER)));
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( (int)(pInfo->AttrRegist.GetElement_Val(ATTR_TREE)) !=0 )
{
wsprintf(ToolTipText, "%s +%d%%", CHATMGR->GetChatMsg(267), (int)(pInfo->AttrRegist.GetElement_Val(ATTR_TREE)));
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( (int)(pInfo->AttrRegist.GetElement_Val(ATTR_IRON)) !=0 )
{
wsprintf(ToolTipText, "%s +%d%%", CHATMGR->GetChatMsg(268), (int)(pInfo->AttrRegist.GetElement_Val(ATTR_IRON)));
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( (int)(pInfo->AttrRegist.GetElement_Val(ATTR_EARTH)) !=0 )
{
wsprintf(ToolTipText, "%s +%d%%", CHATMGR->GetChatMsg(269), (int)(pInfo->AttrRegist.GetElement_Val(ATTR_EARTH)));
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( pInfo->LifeRecover !=0 )
{
wsprintf(ToolTipText, "%s %d", CHATMGR->GetChatMsg(270), pInfo->LifeRecover);
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( (int)(pInfo->LifeRecoverRate*100) !=0 )
{
wsprintf(ToolTipText, "%s %d%%", CHATMGR->GetChatMsg(270), (int)(pInfo->LifeRecoverRate*100));
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( pInfo->NaeRyukRecover !=0 )
{
wsprintf(ToolTipText, "%s %d", CHATMGR->GetChatMsg(271), pInfo->NaeRyukRecover);
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
if( (int)(pInfo->NaeRyukRecoverRate*100) !=0 )
{
wsprintf(ToolTipText, "%s %d%%", CHATMGR->GetChatMsg(271), (int)(pInfo->NaeRyukRecoverRate*100));
item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
}
}
else if( pInfo->ItemKind & eEQUIP_ITEM )
{
if( ITEMMGR->CanEquip( pInfo->ItemIdx ) )
{
item->SetImageRGB( ICONCLR_USABLE );
}
else
{
item->SetImageRGB( ICONCLR_DISABLE );
}
}
///////
return;
}
CSkillInfo* pCommSkill = SKILLMGR->GetSkillInfo( item->GetSrcIdx() );
if( pCommSkill )
{
wsprintf(ToolTipText, "[%s]", pCommSkill->GetSkillName() );
item->AddToolTipLine( ToolTipText, TTTC_DEFAULT );
CMugongBase* pMugongBase = GAMEIN->GetMugongDialog()->GetMugongAbs( item->GetSrcPosition() );
if( pMugongBase )
{
//公傍狼 版快 己 / 鞘夸郴仿
if( pCommSkill->GetNeedExp( pMugongBase->GetSung() ) )
{
if( pMugongBase->GetSung() < 12 )
{
sprintf( ToolTipText, CHATMGR->GetChatMsg(471), pMugongBase->GetSung(),
pMugongBase->GetExpPoint() * 100 / (float)pCommSkill->GetNeedExp(pMugongBase->GetSung()) );
}
else
{
sprintf( ToolTipText, CHATMGR->GetChatMsg(405), pMugongBase->GetSung() );
}
}
item->AddToolTipLine( ToolTipText, TTTC_MUGONGEXP );
if( pMugongBase->GetSung() > 0 )
{
wsprintf( ToolTipText, CHATMGR->GetChatMsg(472), pCommSkill->GetNeedNaeRyuk( pMugongBase->GetSung() ) );
item->AddToolTipLine( ToolTipText, TTTC_MUGONGNEEDMANA );
}
}
if( pCommSkill->GetSkillKind() == SKILLKIND_OUTERMUGONG &&
pCommSkill->GetWeaponType() != HERO->GetWeaponEquipType() )
{
item->SetImageRGB( ICONCLR_DISABLE );
switch(pCommSkill->GetWeaponType())
{
case WP_GUM:
item->AddToolTipLine( CHATMGR->GetChatMsg(465), TTTC_LIMIT );
break;
case WP_GWUN:
item->AddToolTipLine( CHATMGR->GetChatMsg(466), TTTC_LIMIT );
break;
case WP_DO:
item->AddToolTipLine( CHATMGR->GetChatMsg(467), TTTC_LIMIT );
break;
case WP_CHANG:
item->AddToolTipLine( CHATMGR->GetChatMsg(468), TTTC_LIMIT );
break;
case WP_GUNG:
item->AddToolTipLine( CHATMGR->GetChatMsg(469), TTTC_LIMIT );
break;
case WP_AMGI:
item->AddToolTipLine( CHATMGR->GetChatMsg(470), TTTC_LIMIT );
break;
}
}
else
{
item->SetImageRGB( ICONCLR_USABLE );
}
return;
}
CAbility* pAbility = HERO->GetAbilityGroup()->GetAbility( item->GetSrcIdx() - MIN_ABILITY_INDEX );
if( pAbility )
{
CAbilityInfo* pAbilityInfo = pAbility->GetAbilityInfo();
if( pAbilityInfo )
{
wsprintf( ToolTipText, "[%s]", pAbilityInfo->GetInfo()->Ability_name );
item->AddToolTipLine( ToolTipText, TTTC_DEFAULT );
}
}
}
/*
BOOL CQuickDialog::IsAddable(POSTYPE absPos)
{
int tabNum = absPos/TABCELL_QUICK_NUM;
return m_pIconGridSheet[tabNum]->IsAddable(absPos);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -