📄 inventoryexdialog.cpp
字号:
else
{
if(MUGONGMGR->CheckMugongTree(pItem->GetItemInfo()->MugongNum) == FALSE)
{
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(699));
return;
}
// 公傍 殿废
if(!ITEMMGR->CanConvertToMugong(pItem->GetItemIdx(),MUGONGTYPE_NORMAL))
{
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(181) );
return;
}
}
MSG_ITEM_USE_SYN msg;
msg.Category = MP_ITEM;
msg.Protocol = MP_ITEM_USE_SYN;
msg.dwObjectID = HEROID;
msg.wItemIdx = pItem->GetItemIdx();
msg.TargetPos = pItem->GetPosition();
NETWORK->Send(&msg,sizeof(msg));
}
else if(bits & eEXTRA_ITEM)
{
/*
//泅犁 : 酒捞袍 殿鞭诀俊 蝶弗 厚鞭辑 荤侩
if(m_iInventoryState == eITEMUPGRADE_STATE)
{
// GAMEIN->GetChatDialog()->AddChatMsg(WHOLE,RGBA_MAKE(255,0,0,255), "泅犁 厚鞭辑甫 荤侩吝涝聪促.");
CHATMGR->AddMsg( CTC_TOWHOLE, CHATMGR->GetChatMsg(171) );
return;
}
if(bits == eEXTRA_ITEM_UPGRADE || bits == eEXTRA_ITEM_UPGRADE+1)
{
MSG_ITEM_USE_SYN msg;
msg.Category = MP_ITEM;
msg.Protocol = MP_ITEM_USE_SYN;
msg.dwObjectID = HEROID;
msg.wItemIdx = pItem->GetItemIdx();
msg.TargetPos = pItem->GetPosition();
NETWORK->Send(&msg,sizeof(msg));
}*/
}
else if(bits & eEXTRA_ITEM_UPGRADE)
{
}
else if(bits & eQUEST_ITEM)
{
if( bits == eQUEST_ITEM_START ) // 矫累 涅胶飘 酒捞袍.
{
ITEM_INFO* pInfo = ITEMMGR->GetItemInfo( pItem->GetItemIdx() );
if( !pInfo )
return;
if( !QUESTMGR->IsQuestStarted( pInfo->ItemType ) )
m_pQuestMsgBox = WINDOWMGR->MsgBox(MBI_QUEST_NONE, MBT_OK, CHATMGR->GetChatMsg(651));
else
m_pQuestMsgBox = WINDOWMGR->MsgBox(MBI_QUESTSTART, MBT_YESNO, CHATMGR->GetChatMsg(650));
m_pTempQuestItem = pItem;
}
else if( bits == eQUEST_ITEM_EQUIP ) // 厘馒啊瓷茄 涅胶飘 酒捞袍.
{
if( OBJECTSTATEMGR->CheckAvailableState(HERO,eCAS_EQUIPITEM) == FALSE )
{
CAction act;
act.InitAction(eActionKind_EquipItem,(void*)pItem->GetDBIdx(),0,NULL);
HERO->SetNextAction(&act);
return;
}
switch( GetTableIdxPosition( pItem->GetPosition() ) )
{
case eItemTable_Inventory:
{
if( ITEMMGR->CanEquip( pItem->GetItemIdx() ) )
{
ITEM_INFO* pInfo = ITEMMGR->GetItemInfo(pItem->GetItemIdx());
if( !pInfo ) return;
WORD EquipToPos = pInfo->EquipKind;
CItem* pToItem = GetItemForIdx( EquipToPos + TP_WEAR_START );
FakeGeneralItemMove(EquipToPos + TP_WEAR_START, pItem, pToItem);
}
}
break;
case eItemTable_Weared:
{
POSTYPE emptyPos;
if( GetBlankPositionRestrictRef( emptyPos ) )
{
CItem * pToItem = GetItemForIdx( emptyPos );
FakeGeneralItemMove(emptyPos, pItem, pToItem);
}
}
break;
}
}
}
else
{
ASSERT(0);
}
}
void CInventoryExDialog::SetActive(BOOL val)
{
if( !m_bDisable )
{
if(val == FALSE)
{
CDealDialog * dDlg = GAMEIN->GetDealDialog();
if(dDlg)
if(dDlg->IsShow())
dDlg->SetActive(FALSE);
CPyogukDialog* pPyogukDlg = GAMEIN->GetPyogukDialog();
if(pPyogukDlg->IsActive())
pPyogukDlg->SetActive(FALSE);
if(GAMEIN->GetGuildWarehouseDlg()->IsActive())
GAMEIN->GetGuildWarehouseDlg()->SetActive(FALSE);
// SetAbsX( GetAbsX() - 1 ); //烙矫.. 肪力肺 河篮惑怕俊辑 盔惑怕肺 焊捞霸 窍扁 困秦
}
else
{
// SetAbsX( GetAbsX() + 1 );
}
cTabDialog::SetActive(val);
}
//--- main bar icon
// CMainBarDialog* pDlg = GAMEIN->GetMainInterfaceDialog();
// if( pDlg )
// pDlg->SetPushBarIcon( OPT_INVENTORYDLGICON, m_bActive );
}
void CInventoryExDialog::OnActionEvnet(LONG lId, void * p, DWORD we)
{
if(/*we == WE_RBTNCLICK ||*/ we == WE_LBTNDBLCLICK)
{
// 厘馒芒牢瘤? or 牢亥配府牢瘤
CItem * pItem = NULL;
if(lId == IN_WEAREDDLG)
{
pItem = (CItem*)m_pWearedDlg->GetIconForIdx(m_pWearedDlg->GetCurSelCellPos());
if( !pItem ) return;
}
else
{
cIconGridDialog * gridDlg = (cIconGridDialog *)GetTabSheet(GetCurTabNum());
if( !gridDlg ) return;
pItem = (CItem*)gridDlg->GetIconForIdx(gridDlg->GetCurSelCellPos());
if( !pItem ) return;
}
UseItem(pItem);
}
else if(we == WE_LBTNCLICK)
{
if(m_iInventoryState == eITEMUPGRADE_STATE)
{
/*
CItem * pItemTT = GetCurSelectedItem((lId == IN_WEAREDDLG?WEAR:INV));
if(!pItemTT) return;
// 殿鞭诀阑 且 荐 乐绰 炼扒
if(!ITEMMGR->CanGradeUp(pItemTT))
{
// GAMEIN->GetChatDialog()->AddChatMsg(WHOLE,RGBA_MAKE(255,0,0,255), "殿鞭诀阑 且 荐 绝绰 酒捞袍涝聪促");
CHATMGR->AddMsg( CTC_TOWHOLE, CHATMGR->GetChatMsg(172) );
return ;
}
BYTE TableIdx = ITEMMGR->GetTableIdxForAbsPos(pItemTT->GetPosition());
if(TableIdx >= eItemTable_Max)
{
ASSERT(0);
return;
}
MSG_ITEM_UPGRADE_SYN msg;
msg.Category = MP_ITEM;
msg.Protocol = MP_ITEM_UPGRADE_SYN;
msg.dwObjectID = HEROID;
msg.TargetPos = pItemTT->GetPosition();
msg.wItemIdx = pItemTT->GetItemIdx();
NETWORK->Send(&msg,sizeof(msg));
*/
}
else if(m_iInventoryState == eITEMDEAL_STATE)
{
if(!GAMEIN->GetDealDialog()->IsShow()) return;
CItem * pItemTT = GetCurSelectedItem(INV);
if(!pItemTT)
{
GAMEIN->GetDealDialog()->SetMoney(0, 2);
return;
}
int itemIDX = pItemTT->GetItemIdx();
ITEM_INFO * pItem = ITEMMGR->GetItemInfo(itemIDX);
ASSERT(pItem);
GAMEIN->GetDealDialog()->SetMoney(pItem->SellPrice, 0);
}
}
}
CItem * CInventoryExDialog::GetCurSelectedItem(BYTE type)
{
switch(type)
{
case INV:
{
// INVENTORY
cIconGridDialog * gridDlg = (cIconGridDialog *)GetTabSheet(GetCurTabNum());
if(gridDlg->GetCurSelCellPos() == -1)
return NULL;
return (CItem *)gridDlg->GetIconForIdx(gridDlg->GetCurSelCellPos());
}
break;
case WEAR:
{
// WEARED
if(m_pWearedDlg->GetCurSelCellPos() == -1)
return NULL;
return (CItem *)m_pWearedDlg->GetIconForIdx(m_pWearedDlg->GetCurSelCellPos());
}
break;
default:
{
ASSERT(0);
}
}
return NULL;
}
BOOL CInventoryExDialog::GetBlankPositionRestrictRef(WORD & absPos)
{
for(int i = 0 ; i < GetTabNum() ; ++i)
{
cIconGridDialog * gridDlg = (cIconGridDialog *)GetTabSheet(i);
for(int j = 0 ; j < gridDlg->GetCellNum() ; ++j)
{
if(gridDlg->IsAddable(j))
{
// absPos = INVENTORY_STARTPOSITION+i*CELLNUMPERPAGE+j;
absPos = TP_INVENTORY_START+i*TABCELL_INVENTORY_NUM+j;
return TRUE;
}
}
}
return FALSE;
}
int CInventoryExDialog::GetBlankNum()
{
int nBlankNum = 0;
BYTE TabNum = GetTabNum();
for( BYTE i = 0 ; i < TabNum ; ++i )
{
cIconGridDialog* gridDlg = (cIconGridDialog*)GetTabSheet(i);
for( WORD j = 0 ; j < gridDlg->GetCellNum() ; ++j )
{
if( gridDlg->IsAddable(j) )
++nBlankNum;
}
}
return nBlankNum;
}
BOOL CInventoryExDialog::FakeMoveIcon(LONG x, LONG y, cIcon * icon)
{
ASSERT(icon);
if( m_bDisable ) return FALSE;
if( PKMGR->IsPKLooted() ) return FALSE; //磷菌阑锭 促阜阑鳖.. //KES 040801
if( icon->GetType() == WT_STALLITEM || icon->GetType() == WT_EXCHANGEITEM ) return FALSE;
if(icon->GetType() == WT_ITEM)
{
return FakeMoveItem(x, y, (CItem *)icon);
}
else if(icon->GetType() == WT_DEALITEM)
{
FakeBuyItem(x, y, (CDealItem *)icon);
AUDIOMGR->Play(58, HERO);
}
//else /*漂荐 公傍父 函券啊瓷*/
//FakeAddMugong(x, y, (CMugongBase *)icon);
return FALSE;
}
void CInventoryExDialog::FakeBuyItem( LONG mouseX, LONG mouseY, CDealItem * pFromItem )
{
// if( pFromItem )
// GAMEIN->GetDealDialog()->FakeBuyItem( pFromItem->GetAbsX(), pFromItem->GetAbsY(), pFromItem->GetItemIdx() );
if( pFromItem )
GAMEIN->GetDealDialog()->FakeBuyItem( pFromItem->GetAbsX(), pFromItem->GetAbsY(), pFromItem );
}
// 窜绵芒 沥焊 捞悼
void CInventoryExDialog::MoveItem(POSTYPE FromPos, POSTYPE ToPos )
{
CItem * FromItem = NULL;
CItem * ToItem = NULL;
DeleteItem(FromPos, &FromItem);
DeleteItem(ToPos, &ToItem);
if(FromItem)
{
FromItem->SetPosition(ToPos);
if(!AddItem(FromItem))
assert(0);
}
if(ToItem)
{
ToItem->SetPosition(FromPos);
if(!AddItem(ToItem))
assert(0);
}
}
BOOL CInventoryExDialog::FakeMoveItem( LONG mouseX, LONG mouseY, CItem * pFromItem )
{
WORD ToPos=0;
if( !GetPositionForXYRef( 0, mouseX, mouseY, ToPos ) ) // 例措困摹 逞绢 咳
return FALSE;
CItem * pToItem = GetItemForIdx( ToPos );
//sound
if(ITEMMGR->GetTableIdxForAbsPos(ToPos)==eItemTable_Weared)
AUDIOMGR->Play(59, HERO);
else
AUDIOMGR->Play(58, HERO);
//KES EXCHANGE 031002
if( pToItem )
if( pToItem->IsLocked() ) return FALSE;
if( pFromItem->IsLocked() ) return FALSE;
if(TP_MUNPAWAREHOUSE_START <= pFromItem->GetPosition() && pFromItem->GetPosition() < TP_MUNPAWAREHOUSE_END)
return FakeGeneralItemMove( ToPos, pFromItem, pToItem );
else if(TP_PYOGUK_START <= pFromItem->GetPosition() && pFromItem->GetPosition() < TP_PYOGUK_END)
return FakeGeneralItemMove( ToPos, pFromItem, pToItem );
if( ITEMMGR->IsDupItem( pFromItem->GetItemIdx() ) )
{
if( IsDivideFunctionKey() && !( pToItem ) )
{
return FakeItemDivide( ToPos, pFromItem, pToItem );
}
else if( ( pToItem && pFromItem->GetItemIdx() == pToItem->GetItemIdx() ) )
{
return FakeItemCombine( ToPos, pFromItem, pToItem );
}
}
return FakeGeneralItemMove( ToPos, pFromItem, pToItem );
}
BOOL CInventoryExDialog::IsDivideFunctionKey()
{
return KEYBOARD->GetKeyPressed(KEY_MENU);
}
BOOL CInventoryExDialog::FakeGeneralItemMove( POSTYPE ToPos, CItem * pFromItem, CItem * pToItem )
{
if( CanBeMoved( pFromItem, ToPos ) == FALSE )
return FALSE;
BYTE FromIdx = ITEMMGR->GetTableIdxForAbsPos( pFromItem->GetPosition() );
if(FromIdx >= eItemTable_Max) return FALSE;
if( pToItem && CanBeMoved( pToItem, pFromItem->GetPosition() ) == FALSE )
{
return FALSE;
}
if(pToItem && (FromIdx == eItemTable_MunpaWarehouse))
{
if(FromIdx == eItemTable_MunpaWarehouse)
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(53) );
return FALSE;
}
BYTE ToIdx = ITEMMGR->GetTableIdxForAbsPos( ToPos );
if(ToIdx >= eItemTable_Max) return FALSE;
MSG_ITEM_MOVE_SYN msg;
msg.Category = MP_ITEM;
msg.Protocol = MP_ITEM_MOVE_SYN;
msg.dwObjectID = HEROID;
msg.FromPos = pFromItem->GetPosition();
msg.wFromItemIdx = pFromItem->GetItemIdx();
msg.ToPos = ToPos;
msg.wToItemIdx = (pToItem?pToItem->GetItemIdx():0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -