📄 exchangemanager.cpp
字号:
cDialog* pDlg = WINDOWMGR->GetWindowForID( MBI_EXCHANGEAPPLY );
if( pDlg )
WINDOWMGR->AddListDestroyWindow( pDlg );
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(326) );
}
break;
case MP_EXCHANGE_WAITING_CANCEL_ACK:
{
ExchangeEnd();
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(329) );
}
break;
case MP_EXCHANGE_WAITING_CANCEL_NACK:
{
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(316) );
}
break;
case MP_EXCHANGE_START:
{
GAMEIN->GetExchangeDialog()->SetActive( TRUE );
if( !GAMEIN->GetInventoryDialog()->IsActive() )
{
GAMEIN->GetInventoryDialog()->SetActive( TRUE );
m_bInventoryActive = FALSE;
}
else
{
m_bInventoryActive = TRUE;
}
}
break;
case MP_EXCHANGE_ADDITEM_ACK:
{
MSG_LINKITEM* msg = (MSG_LINKITEM*)pMsg;
GAMEIN->GetExchangeDialog()->SetDisable( FALSE ); //FAKE MOVE¿¡¼ TRUE
CItem* pItem = (CItem*)GAMEIN->GetInventoryDialog()->GetItemForIdx( msg->ItemInfo.Position );
ASSERT( pItem );
if( !pItem ) break;
CExchangeItem* pExItem = new CExchangeItem;
//Init¹Ù²Ù´Â°Ô ³´°Ú´Ù.
pExItem->InitItem( pItem, msg->wAbsPosition, m_IconIndexCreator.GenerateIndex() );
pExItem->SetType( WT_EXCHANGEITEM );
pExItem->SetDurability( msg->ItemInfo.Durability );
WINDOWMGR->AddWindow( pExItem );
GAMEIN->GetExchangeDialog()->AddItem( 0, msg->wAbsPosition, pExItem );
//Àκ¥Å丮 ¾ÆÀÌÅÛ ¼¼ÆÃ
pItem->SetLinkPosition( m_nLinkedItemNum );
pItem->SetLinkItem( pExItem );
//Àκ¥Å丮 üũ
int nBlankNum = GAMEIN->GetInventoryDialog()->GetBlankNum();
if( nBlankNum < (int)msg->wAbsPosition - EXCHANGEMGR->GetLinkedItemNum() )
{
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(354) );
// m_bExchangable = FALSE;
}
}
break;
case MP_EXCHANGE_ADDITEM_NACK:
{
MSG_LINKITEM* msg = (MSG_LINKITEM*)pMsg;
GAMEIN->GetExchangeDialog()->SetDisable( FALSE ); //FAKE MOVE¿¡¼ TRUE
--m_nLinkedItemNum;
CItem* pItem = GAMEIN->GetInventoryDialog()->GetItemForIdx( msg->ItemInfo.Position );
if( pItem )
pItem->SetLock( FALSE );
}
break;
case MP_EXCHANGE_ADDITEM: //»ó´ë°¡ µî·ÏÇß´Ù.
{
// MSG_LINKITEM* msg = (MSG_LINKITEM*)pMsg;
MSG_LINKITEM_ADD* msg = (MSG_LINKITEM_ADD*)pMsg;
CExchangeItem* pItem = new CExchangeItem;
cImage tmpImage;
pItem->Init( 0, 0, DEFAULT_ICONSIZE, DEFAULT_ICONSIZE,
ITEMMGR->GetIconImage( msg->ItemInfo.wIconIdx, &tmpImage ), m_IconIndexCreator.GenerateIndex() );
pItem->SetType( WT_EXCHANGEITEM );
pItem->SetDurability( msg->ItemInfo.Durability );
pItem->SetMovable( FALSE );
pItem->SetData( msg->ItemInfo.wIconIdx );
if( msg->bOptionItem ) //¿É¼ÇÀÌ ÀÖÀ¸¸é µî·Ï
{
ITEMMGR->AddItemOption( &msg->sOptionInfo );
ITEMMGR->SetToolTipIcon( pItem, &msg->sOptionInfo );
}
else
{
ITEMMGR->SetToolTipIcon( pItem );
}
WINDOWMGR->AddWindow( pItem );
GAMEIN->GetExchangeDialog()->AddItem( 1, msg->wAbsPosition, pItem );
}
break;
case MP_EXCHANGE_DELITEM_ACK:
{
MSG_WORD* msg = (MSG_WORD*)pMsg;
GAMEIN->GetExchangeDialog()->SetDisable( FALSE );
GAMEIN->GetExchangeDialog()->DelItem( 0, msg->wData );
--m_nLinkedItemNum;
}
break;
case MP_EXCHANGE_DELITEM_NACK:
{
MSG_WORD* msg = (MSG_WORD*)pMsg;
GAMEIN->GetExchangeDialog()->SetDisable( FALSE );
}
break;
case MP_EXCHANGE_DELITEM://»ó´ë°¡ Áö¿ü´Ù.
{
MSG_WORD* msg = (MSG_WORD*)pMsg;
//¿É¼ÇÀÌ ÀÖÀ¸¸é Áö¿öÁØ´Ù.
GAMEIN->GetExchangeDialog()->DelItemOptionInfo( msg->wData );
GAMEIN->GetExchangeDialog()->DelItem( 1, msg->wData );
}
break;
case MP_EXCHANGE_INPUTMONEY_ACK:
{
MSG_DWORD* msg = (MSG_DWORD*)pMsg;
DWORD dwMoney = GAMEIN->GetExchangeDialog()->InputMoney( 0, msg->dwData );
GAMEIN->GetExchangeDialog()->SetDisable( FALSE );
}
break;
case MP_EXCHANGE_INPUTMONEY_NACK:
{
//"µ·ÀԷ¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù."
GAMEIN->GetExchangeDialog()->SetDisable( FALSE );
}
break;
case MP_EXCHANGE_INPUTMONEY:
{
MSG_DWORD* msg = (MSG_DWORD*)pMsg;
GAMEIN->GetExchangeDialog()->InputMoney( 1, msg->dwData );
}
break;
case MP_EXCHANGE_LOCK_ACK:
{
m_bLockSyncing = FALSE;
GAMEIN->GetExchangeDialog()->MyLock( TRUE ); //ÀÌ¹Ì ÇßÀ¸³ª Çѹø´õ È®ÀÎ
}
break;
case MP_EXCHANGE_LOCK_NACK:
{
m_bLockSyncing = FALSE;
GAMEIN->GetExchangeDialog()->MyLock( FALSE );
}
break;
case MP_EXCHANGE_LOCK:
{
GAMEIN->GetExchangeDialog()->OpLock( TRUE );
}
break;
case MP_EXCHANGE_UNLOCK_ACK:
{
m_bLockSyncing = FALSE;
GAMEIN->GetExchangeDialog()->MyLock( FALSE );
}
break;
case MP_EXCHANGE_UNLOCK_NACK:
{
m_bLockSyncing = FALSE;
GAMEIN->GetExchangeDialog()->MyLock( TRUE );
}
break;
case MP_EXCHANGE_UNLOCK: //»ó´ë°¡ ¾ð¶ôÇßÀ»½Ã¿¡.
{
GAMEIN->GetExchangeDialog()->OpLock( FALSE );
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(332) );
if( m_bExchangeSyncing )//±³È¯ÁßÀ̾ú´Ù¸é
{
m_bExchangeSyncing = FALSE;
//Àκ£Å丮µð½º¿¡À̺í Ç®±â
GAMEIN->GetInventoryDialog()->SetDisable( FALSE );
}
}
break;
case MP_EXCHANGE_EXCHANGE_ACK:
{
//µÑ´Ù exchange¸¦ ´·¶´Ù. ±³È¯À» ½ÃÀÛÇÑ´Ù!
//¿©±â¼ ¿É¼ÇÀ» ´ÙÁö¿ì°í...
}
break;
case MP_EXCHANGE_EXCHANGE:
{
GAMEIN->GetExchangeDialog()->SetDisable( FALSE );
GAMEIN->GetExchangeDialog()->SetActive( FALSE );
ITEMMGR->SetDisableDialog( FALSE, eItemTable_Inventory );
//µ·ÀԷ¹öư Áö¿ì±â. CONFIRM
cDialog* pDlg = WINDOWMGR->GetWindowForID( DBOX_EXCHANGE_MONEY );
if( pDlg )
WINDOWMGR->AddListDestroyWindow( pDlg );
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(325) );
ExchangeEnd();
}
break;
case MP_EXCHANGE_EXCHANGE_NACK: //±³È¯¹öưÀ» ´·¶´Â´ë »ó´ë°¡ ¶ôÀ»Ç®¾î ¶ôÀÌ ÇØÁ¦µÇ¾úÀ»¶§ NACK´Ù.
{
// GAMEIN->GetExchangeDialog()->SetDisable( FALSE );
// GAMEIN->GetExchangeDialog()->SetActive( FALSE );
// GAMEIN->GetInventoryDialog()->SetDisable( FALSE );
// if( !m_bInventoryActive )
// GAMEIN->GetInventoryDialog()->SetActive( FALSE );
//µ·ÀԷ¹öư Áö¿ì±â. CONFIRM
// cDialog* pDlg = WINDOWMGR->GetWindowForID( DBOX_EXCHANGE_MONEY );
// if( pDlg )
// WINDOWMGR->AddListDestroyWindow( pDlg );
// CHATMGR->AddMsg( CTC_SYSMSG, "¶ôÀÌ °É¸®Áö ¾ÊÀº »óÅÂ¶ó ±³È¯ÀÌ Ãë¼ÒµÇ¾ú½À´Ï´Ù." );
// ExchangeEnd();
ITEMMGR->SetDisableDialog( FALSE, eItemTable_Inventory );
}
break;
case MP_EXCHANGE_CANCEL_ACK:
{
////////¾ÆÀÌÅÛ ¿É¼Ç Á¦°Å Active False Àü¿¡ ÇÒ°Í
GAMEIN->GetExchangeDialog()->DelItemOptionInfoAll();
GAMEIN->GetExchangeDialog()->SetDisable( FALSE );
GAMEIN->GetExchangeDialog()->SetActive( FALSE );
if( !m_bInventoryActive )
{
ITEMMGR->SetDisableDialog( FALSE, eItemTable_Inventory );
GAMEIN->GetInventoryDialog()->SetActive( FALSE );
}
cDialog* pDlg = WINDOWMGR->GetWindowForID( DBOX_EXCHANGE_MONEY );
if( pDlg )
WINDOWMGR->AddListDestroyWindow( pDlg );
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(329) );
ExchangeEnd();
}
break;
case MP_EXCHANGE_CANCEL_NACK:
{
GAMEIN->GetExchangeDialog()->SetDisable( FALSE );
}
break;
case MP_EXCHANGE_CANCEL:
{
MSG_BYTE* msg = (MSG_BYTE*)pMsg;
GAMEIN->GetExchangeDialog()->SetDisable( FALSE ); //üũ..ÀÓ½Ã.
GAMEIN->GetInventoryDialog()->SetDisable( FALSE );
//µ·ÀԷ¹öư Áö¿ì±â. CONFIRM
cDialog* pDlg = WINDOWMGR->GetWindowForID( DBOX_EXCHANGE_MONEY );
if( pDlg )
WINDOWMGR->AddListDestroyWindow( pDlg );
////////¾ÆÀÌÅÛ ¿É¼Ç Á¦°Å : Active False Àü¿¡ ÇÒ°Í.
GAMEIN->GetExchangeDialog()->DelItemOptionInfoAll();
//±³È¯ÀÌ Ãë¼ÒµÇ¾ú¶§¿Í ±³È¯Çã¶ôÀ» ÇÏÁö ¾Ê¾ÒÀ»½Ã...
GAMEIN->GetExchangeDialog()->SetActive( FALSE );
if( !m_bInventoryActive )
GAMEIN->GetInventoryDialog()->SetActive( FALSE );
//½Åû¸Þ¼¼Áöµé Áö¿ì±â....
pDlg = WINDOWMGR->GetWindowForID( MBI_EXCHANGEAPPLY);
if( pDlg )
WINDOWMGR->AddListDestroyWindow( pDlg );
pDlg = WINDOWMGR->GetWindowForID( MBI_EXCHANGEWAITING );
if( pDlg )
WINDOWMGR->AddListDestroyWindow( pDlg );
//error msg Ãâ·Â
switch( msg->bData )
{
case eEE_USERCANCEL:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(326) );
break;
case eEE_USERLOGOUT:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(314) );
break;
case eEE_USERDIE:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(313) );
break;
case eEE_DIE:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(312) );
break;
case eEE_NOTENOUGHMONEY:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(311) );
break;
case eEE_NOTENOUGHSPACE:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(310) );
break;
case eEE_MAXMONEY:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(309) );
break;
default:
break;
}
ExchangeEnd();
}
break;
case MP_EXCHANGE_SETMONEY:
{
MSG_DWORD* msg = (MSG_DWORD*)pMsg;
HERO->SetMoney( msg->dwData ); //+Àκ¥Å丮
}
break;
case MP_EXCHANGE_INSERT:
{
MSG_ITEM* msg = (MSG_ITEM*)pMsg;
BOOL rt = GAMEIN->GetInventoryDialog()->AddItem(&msg->ItemInfo);
ASSERT(rt);
//¾ÆÀÌÅÛÀ» ³ÖÀ»¶§ ´Ù½Ã ¿É¼ÇÀ» ³Ö´Â´Ù.?
QUICKMGR->RefreshQickItem();
}
break;
case MP_EXCHANGE_REMOVE:
{
MSG_EXCHANGE_REMOVEITEM* msg = (MSG_EXCHANGE_REMOVEITEM*)pMsg;
CItem* pOutItem = NULL;
ITEMMGR->DeleteItem( msg->wAbsPosition, &pOutItem );
//¿É¼ÇÀ» °¡Áø ¾ÆÀÌÅÛÀ̾ú´Ù¸é ¿É¼ÇÀÌ Áö¿öÁø´Ù. ÀÚµ¿À¸·Î.
}
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -