📄 streetstallmanager.cpp
字号:
pExItem->SetPosition( pos );
pDlg->RegistMoney( i, pStallInfo->Item[i].money );
m_nLinkedItemNum++;
}
}
pDlg->EditTitle( pStallInfo->Title );
pDlg->SetStallOwnerId( pStallInfo->StallOwnerID );
}
void CStreetStallManager::NetworkMsgParse( BYTE Protocol, void* pMsg )
{
if(HERO == NULL)
return;
switch( Protocol )
{
case MP_STREETSTALL_OPEN_ACK:
{
MSG_STREETSTALL_TITLE* msg = (MSG_STREETSTALL_TITLE*)pMsg;
ToggleHero_StreetStallMode();
GAMEIN->GetStreetStallDialog()->RegistTitle( msg->Title, TRUE );
// HERO->SetState( eObjectState_StreetStall_Owner );
GAMEIN->GetInventoryDialog()->SetActive(TRUE);
GAMEIN->GetStreetStallDialog()->ShowSellStall();
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(343) );
}
break;
case MP_STREETSTALL_OPEN_NACK:
{
GAMEIN->GetStreetStallDialog()->RegistTitle( NULL, FALSE );
// HERO->SetState( eObjectState_None );
m_bOpenMsgBox = TRUE;
}
break;
case MP_STREETSTALL_CLOSE_ACK:
{
GAMEIN->GetStreetStallDialog()->OnCloseStall();
HERO->ShowStreetStallTitle( FALSE, NULL );
STREETSTALLMGR->ToggleHero_StreetStallMode();
m_nLinkedItemNum = 0;
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(344) );
m_bOpenMsgBox = TRUE;
}
break;
case MP_STREETSTALL_CLOSE_NACK:
{
}
break;
case MP_STREETSTALL_FAKEREGISTITEM_ACK:
{
MSG_LINKITEMEX* msg = (MSG_LINKITEMEX*)pMsg;
CItem* pItem = (CItem*)GAMEIN->GetInventoryDialog()->GetItemForIdx( msg->ItemInfo.Position );
if( !pItem )
{
ASSERT(0);
return;
}
GAMEIN->GetStreetStallDialog()->SetDisable( FALSE );
if( LinkItem( pItem, &msg->ItemInfo ) )
GAMEIN->GetStreetStallDialog()->ChangeItemStatus( &msg->ItemInfo, msg->dwMoney, FALSE, 1 ); //TRUE
}
break;
case MP_STREETSTALL_FAKEREGISTITEM_NACK:
{
MSG_DWORD2* msg = (MSG_DWORD2*)pMsg;
--m_nLinkedItemNum;
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(349) );
CItem* pItem = (CItem*)GAMEIN->GetInventoryDialog()->GetItemForIdx( msg->dwData1 );
if(!pItem)
{
ASSERT(0);
return;
}
if( msg->dwData2 != 1 ) // 捞固 殿废登绢 乐促绰 俊矾 皋技瘤啊 酒聪搁..
pItem->SetLock( FALSE );
GAMEIN->GetStreetStallDialog()->SetDisable( FALSE );
}
break;
case MP_STREETSTALL_FAKEREGISTITEM:
{
if( OBJECTSTATEMGR->GetObjectState(HERO) != eObjectState_StreetStall_Guest) return;
SEND_LINKITEM_TOTALINFO* msg = (SEND_LINKITEM_TOTALINFO*)pMsg;
if( msg->ItemInfo.wIconIdx == 0 )
{
ASSERT(msg->ItemInfo.wIconIdx);
return;
}
if( msg->count != 0 ) // 可记捞 乐促搁
{
ITEMMGR->AddItemOption(&msg->sOptionInfo);
}
CExchangeItem* pExItem = new CExchangeItem;
cImage tmpImage;
pExItem->Init( 0, 0, DEFAULT_ICONSIZE, DEFAULT_ICONSIZE,
ITEMMGR->GetIconImage( msg->ItemInfo.wIconIdx, &tmpImage ), m_IconIndexCreator.GenerateIndex() );
pExItem->SetData( msg->ItemInfo.wIconIdx );
pExItem->SetDBId( msg->ItemInfo.dwDBIdx);
pExItem->SetDurability( msg->ItemInfo.Durability );
pExItem->SetLock( TRUE );
pExItem->SetMovable( FALSE );
if( msg->count != 0 ) // 可记捞 乐促搁
ITEMMGR->SetToolTipIcon( pExItem , ITEMMGR->GetItemOption(msg->ItemInfo.Durability));
else
ITEMMGR->SetToolTipIcon( pExItem );
/*
char buf[32];
if( ITEMMGR->IsDupItem(msg->ItemInfo.wIconIdx) )
wsprintf( buf, CHATMGR->GetChatMsg(199), AddComma( msg->dwMoney ) );
else
wsprintf( buf, CHATMGR->GetChatMsg(214), AddComma( msg->dwMoney ) );
pExItem->AddToolTipLine( buf, TTTC_BUYPRICE );
*/
char buf[32];
wsprintf( buf, CHATMGR->GetChatMsg(114) );
pExItem->AddToolTipLine( buf, TTTC_BUYPRICE );
int pos = GAMEIN->GetStreetStallDialog()->AddItem( pExItem );
if( pos == -1 )
{
SAFE_DELETE(pExItem);
return;
}
WINDOWMGR->AddWindow( pExItem );
pExItem->SetPosition( pos );
GAMEIN->GetStreetStallDialog()->ChangeItemStatus( &msg->ItemInfo, msg->dwMoney, FALSE );
}
break;
case MP_STREETSTALL_LOCKITEM_ACK:
{
MSG_STREETSTALL_ITEMSTATUS* msg = (MSG_STREETSTALL_ITEMSTATUS*)pMsg;
GAMEIN->GetStreetStallDialog()->ChangeItemStatus( &msg->ItemInfo, msg->dwMoney, TRUE );
GAMEIN->GetStreetStallDialog()->SetDisable( FALSE );
}
break;
case MP_STREETSTALL_LOCKITEM_NACK:
{
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(350) );
GAMEIN->GetStreetStallDialog()->SetDisable( FALSE );
}
break;
case MP_STREETSTALL_LOCKITEM:
{
if( OBJECTSTATEMGR->GetObjectState(HERO) != eObjectState_StreetStall_Guest) return;
MSG_STREETSTALL_ITEMSTATUS* msg = (MSG_STREETSTALL_ITEMSTATUS*)pMsg;
GAMEIN->GetStreetStallDialog()->ChangeItemStatus( &msg->ItemInfo, msg->dwMoney, TRUE );
}
break;
case MP_STREETSTALL_UNLOCKITEM_ACK:
{
MSG_STREETSTALL_ITEMSTATUS* msg = (MSG_STREETSTALL_ITEMSTATUS*)pMsg;
GAMEIN->GetStreetStallDialog()->ChangeItemStatus( &msg->ItemInfo, msg->dwMoney, FALSE, 2 );
//GAMEIN->GetStreetStallDialog()->SetDisable( FALSE );
}
break;
case MP_STREETSTALL_UNLOCKITEM_NACK:
{
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(351) );
//GAMEIN->GetStreetStallDialog()->SetDisable( FALSE );
}
break;
case MP_STREETSTALL_UNLOCKITEM:
{
if( OBJECTSTATEMGR->GetObjectState(HERO) != eObjectState_StreetStall_Guest) return;
MSG_STREETSTALL_ITEMSTATUS* msg = (MSG_STREETSTALL_ITEMSTATUS*)pMsg;
GAMEIN->GetStreetStallDialog()->ChangeItemStatus( &msg->ItemInfo, msg->dwMoney, FALSE );
}
break;
case MP_STREETSTALL_EDITTITLE_ACK:
{
MSG_STREETSTALL_TITLE* msg = (MSG_STREETSTALL_TITLE*)pMsg;
GAMEIN->GetStreetStallDialog()->RegistTitle( msg->Title, TRUE );
}
break;
case MP_STREETSTALL_EDITTITLE_NACK:
{
GAMEIN->GetStreetStallDialog()->RegistTitle( NULL, FALSE );
}
break;
case MP_STREETSTALL_EDITTITLE:
{
// if( OBJECTSTATEMGR->GetObjectState(HERO) != eObjectState_StreetStall_Guest) return;
MSG_STREETSTALL_TITLE* msg = (MSG_STREETSTALL_TITLE*)pMsg;
CPlayer* pPlayer = (CPlayer*)OBJECTMGR->GetObject( msg->dwObjectID );
pPlayer->SetStreetStallTitle( msg->Title );
if( HERO->GetState() == eObjectState_StreetStall_Guest )
{
if( GAMEIN->GetStreetStallDialog()->GetStallOwnerId() == msg->dwObjectID )
{
GAMEIN->GetStreetStallDialog()->EditTitle( msg->Title );
}
}
}
break;
case MP_STREETSTALL_BUYITEM_ACK:
{
MSG_ITEMEX* msg = (MSG_ITEMEX*)pMsg;
if( msg->count != 0 )
ITEMMGR->AddItemOption(&msg->sOptionInfo);
CItem* pItem = ITEMMGR->MakeNewItem(&msg->ItemInfo,"MP_STREETSTALL_BUYITEM_ACK");
BOOL rt = GAMEIN->GetInventoryDialog()->AddItem(pItem);
QUICKMGR->RefreshQickItem();
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(341), pItem->GetItemInfo()->ItemName );
ITEMMGR->SetDisableDialog( FALSE, eItemTable_Inventory );
GAMEIN->GetStreetStallDialog()->SetDisable( FALSE );
GAMEIN->GetStreetStallDialog()->SetData(NULL);
}
break;
case MP_STREETSTALL_DELETEITEM_ACK:
{
MSG_LINKITEM* msg = (MSG_LINKITEM*)pMsg;
GAMEIN->GetStreetStallDialog()->DeleteItem( &msg->ItemInfo );
--m_nLinkedItemNum;
}
break;
case MP_STREETSTALL_DELETEITEM_NACK:
break;
case MP_STREETSTALL_DELETEITEM:
{
if( OBJECTSTATEMGR->GetObjectState(HERO) != eObjectState_StreetStall_Guest) return;
MSG_LINKITEM* msg = (MSG_LINKITEM*)pMsg;
--m_nLinkedItemNum;
if( !ITEMMGR->IsDupItem( msg->ItemInfo.wIconIdx ) && msg->ItemInfo.Durability != 0 )
ITEMMGR->RemoveItemOption(msg->ItemInfo.Durability);
GAMEIN->GetStreetStallDialog()->DeleteItem( &msg->ItemInfo );
GAMEIN->GetStreetStallDialog()->SetCurSelectedItemNum(-1);
GAMEIN->GetStreetStallDialog()->ResetDlgData();
}
break;
case MP_STREETSTALL_BUYITEM_NACK:
{
MSG_WORD* msg = (MSG_WORD*)pMsg;
switch(msg->wData)
{
case NOT_EXIST:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(358) );
break;
case NOT_MONEY:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(117) );
break;
case NOT_SPACE:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(354) );
break;
case NOT_OWNERMONEY:
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(364) );
break;
}
ITEMMGR->SetDisableDialog( FALSE, eItemTable_Inventory );
GAMEIN->GetStreetStallDialog()->SetDisable( FALSE );
GAMEIN->GetStreetStallDialog()->SetData(NULL);
}
break;
case MP_STREETSTALL_SELLITEM:
{
MSG_SELLITEM* msg = (MSG_SELLITEM*)pMsg;
CItem* pItem = (CItem*)GAMEIN->GetInventoryDialog()->GetItemForIdx( msg->ItemInfo.Position );
if( !pItem )
{
ASSERT(0);
return;
}
CPlayer* pPlayer = (CPlayer*) OBJECTMGR->GetObject( msg->dwData );
if( pPlayer )
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(342), pPlayer->GetObjectName(), pItem->GetItemInfo()->ItemName );
if( msg->count == 0 )
{
CItem* pOutItem = NULL;
ITEMMGR->DeleteItem( msg->ItemInfo.Position, &pOutItem );
GAMEIN->GetStreetStallDialog()->DeleteItem( &msg->ItemInfo );
--m_nLinkedItemNum;
}
else //梅啊窍绰 版快
{
pItem->SetDurability( msg->count );
// GAMEIN->GetStreetStallDialog()->ResetItemInfo( msg->ItemInfo.dwDBIdx, msg->count );
}
}
break;
case MP_STREETSTALL_SELLITEM_ERROR:
{
MSG_WORD* msg = (MSG_WORD*)pMsg;
ItemStatus(msg->wData, FALSE);
CHATMGR->AddMsg(CTC_SYSMSG, CHATMGR->GetChatMsg(365) );
}
break;
case MP_STREETSTALL_UPDATEITEM:
{
ITEMMGR->SetDisableDialog( FALSE, eItemTable_Inventory );
if( OBJECTSTATEMGR->GetObjectState(HERO) != eObjectState_StreetStall_Guest
&& OBJECTSTATEMGR->GetObjectState(HERO) != eObjectState_StreetStall_Owner )
return;
MSG_SELLITEM* msg = (MSG_SELLITEM*)pMsg;
CExchangeItem* pExItem = (CExchangeItem*)GAMEIN->GetStreetStallDialog()->GetItem(msg->ItemInfo.dwDBIdx);
ASSERT( pExItem );
if( pExItem == NULL ) return;
pExItem->SetDurability( msg->count );
}
break;
case MP_STREETSTALL_GUESTIN_ACK:
{
STREETSTALL_INFO* msg = (STREETSTALL_INFO*)pMsg;
LinkBuyItem( msg );
GAMEIN->GetStreetStallDialog()->ShowBuyStall();
if( HERO->GetState() != eObjectState_StreetStall_Guest )
OBJECTSTATEMGR->StartObjectState(HERO, eObjectState_StreetStall_Guest);
//??? 恐? 肚? KES
CPlayer* pPlayer = (CPlayer*)OBJECTMGR->GetObject( msg->StallOwnerID );
if( pPlayer )
pPlayer->SetStreetStallTitle( msg->Title );
}
break;
case MP_STREETSTALL_GUESTIN_NACK:
{
//KES 040924
OBJECTSTATEMGR->EndObjectState( HERO, eObjectState_StreetStall_Guest );
}
break;
case MP_STREETSTALL_GUESTOUT_ACK:
{
GAMEIN->GetStreetStallDialog()->OnCloseStall(TRUE);
OBJECTSTATEMGR->EndObjectState(HERO, eObjectState_StreetStall_Guest);
m_nLinkedItemNum = 0;
}
break;
case MP_STREETSTALL_GUESTOUT_NACK:
{
//KES 040924
OBJECTSTATEMGR->EndObjectState( HERO, eObjectState_StreetStall_Guest );
}
break;
case MP_STREETSTALL_START: // 鸥 某腐磐狼 畴痢葛靛 矫累
{
CObject* pObject;
MSG_STREETSTALL_TITLE* pmsg = (MSG_STREETSTALL_TITLE*)pMsg;
pObject = OBJECTMGR->GetObject(pmsg->dwObjectID);
ASSERT(pObject);
Toggle_StreetStallMode(pObject, TRUE);
((CPlayer*)pObject)->ShowStreetStallTitle( TRUE, pmsg->Title );
}
break;
case MP_STREETSTALL_END:
{
CObject* pObject;
MSG_STREETSTALL_TITLE* pmsg = (MSG_STREETSTALL_TITLE*)pMsg;
pObject = OBJECTMGR->GetObject(pmsg->dwObjectID);
ASSERT(pObject);
if( pObject->GetID() != HERO->GetID() )
Toggle_StreetStallMode(pObject, FALSE);
else
{
GAMEIN->GetStreetStallDialog()->OnCloseStall();
m_nLinkedItemNum = 0;
m_bOpenMsgBox = TRUE;
}
((CPlayer*)pObject)->ShowStreetStallTitle( FALSE, NULL );
}
break;
case MP_STREETSTALL_CLOSE: // 颊丛栏肺 曼咯茄 版快
{
if( OBJECTSTATEMGR->GetObjectState(HERO) != eObjectState_StreetStall_Guest) return;
MSGBASE* msg = (MSGBASE*)pMsg;
CStreetStall* pDlg = GAMEIN->GetStreetStallDialog();
pDlg->OnCloseStall(TRUE);
m_nLinkedItemNum = 0;
OBJECTSTATEMGR->EndObjectState(HERO, eObjectState_StreetStall_Guest);
}
break;
}
}
void CStreetStallManager::SendBuyItemMsg()
{
CStreetStall* pDlg = GAMEIN->GetStreetStallDialog();
if( pDlg == NULL ) return;
if( pDlg->IsActive() == FALSE ) return;
DWORD dwCheckDBIdx = pDlg->GetCheckDBIdx();
DWORD dwNum = m_dwWantBuyNum;
CExchangeItem* pItem = pDlg->FindItem( dwCheckDBIdx );
// CExchangeItem* pItem = (CExchangeItem*)pDlg->GetItem( (POSTYPE)pos );
if( pItem == NULL )
{
pDlg->SetData( NULL );
pDlg->SetDisable( FALSE );
return;
}
POSTYPE pos = pItem->GetPosition();
if( pDlg->GetItemMoney( pos )*dwNum > HERO->GetMoney() )
{
// MsgBox 贸府 (家瘤陛捞 何练窍促.) 355
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(117) );
pDlg->SetData( NULL );
pDlg->SetDisable( FALSE );
return;
}
if( GAMEIN->GetInventoryDialog()->GetBlankNum() == 0 )
{
// MsgBox 贸府 (牢亥捞 菜瞒乐促.)354
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(354) );
pDlg->SetData( NULL );
pDlg->SetDisable( FALSE );
return;
}
if( pItem->GetDBId() != dwCheckDBIdx )
{
// 国结 迫赴 酒捞袍捞促. 358
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(358) );
pDlg->SetData( NULL );
pDlg->SetDisable( FALSE );
return;
}
ITEMBASE base;
base.dwDBIdx = pItem->GetDBId();
base.wIconIdx = pItem->GetData();
base.Durability = dwNum; // 混 肮荐..
STREETSTALL_BUYINFO BuyMsg;
BuyMsg.Category = MP_STREETSTALL;
BuyMsg.Protocol = MP_STREETSTALL_BUYITEM_SYN;
BuyMsg.dwObjectID = HEROID;
BuyMsg.StallOwnerID = pDlg->GetStallOwnerId();
BuyMsg.StallPos = pos;
BuyMsg.ItemInfo = base;
BuyMsg.dwBuyPrice = pDlg->GetItemMoney( pos );
// if( m_BuyMsg.Protocol == 0 )
// {
// CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(358) );
// return;
// }
NETWORK->Send( &BuyMsg, sizeof(STREETSTALL_BUYINFO) );
// m_BuyMsg.Protocol = 0;
//KES 040801 牢亥配府 遏吧扁
ITEMMGR->SetDisableDialog( TRUE, eItemTable_Inventory );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -