Files
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

710 lines
22 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// #include "StdAfx.h"
// #include "StallSystem.h"
// #include "../base/Container.hpp"
// CStallSystem::CStallSystem(void)
// {
// }
// CStallSystem::~CStallSystem(void)
// {
// }
// void CStallSystem::ProcessNetData( INT_PTR nCmd, CDataPacketReader &packet )
// {
// if (GetLogicServer()->IsCommonServer())
// {
// return;
// }
// switch(nCmd)
// {
// case cStartStall:
// StartStall(packet);
// break;
// case cEndStall:
// EndStall();
// break;
// case cLeaveMsg:
// LeaveMsg(packet);
// break;
// case cBuyStallItem:
// BuyStallItem(packet);
// break;
// case cViewStall:
// ViewStall(packet);
// break;
// case cSendAd:
// //SendStallAd(packet);
// break;
// case cStallItemOpt:
// OptStallItem(packet);
// break;
// case cCanStall:
// if (CheckStallLevel())
// CheckStallArea(packet);
// break;
// default:
// break;
// }
// }
// bool CStallSystem::CheckStallLevel()
// {
// if (!m_pEntity || m_pEntity->GetType() != enActor)
// {
// return false;
// }
// bool ret = true;
// int nMinLv = GetLogicServer()->GetDataProvider()->GetGlobalConfig().nStallLevel;
// int nMinCircle = GetLogicServer()->GetDataProvider()->GetGlobalConfig().nStallCircle;
// if (!m_pEntity->CheckLevel(nMinLv, nMinCircle))
// {
// ret = false;
// m_pEntity->SendOldTipmsgWithId(tpStallLevelLimited, ttFlyTip);
// }
// return ret;
// }
// void CStallSystem::CheckStallArea(CDataPacketReader & pakcet)
// {
// int x,y;
// BYTE nResult = CStallData::srStallFail;
// m_pEntity->GetPosition(x, y);
// //CScene * pScene = m_pEntity->GetScene();
// // if (pScene && pScene->HasMapAttribute(x, y, asStallArea))
// // {
// // nResult = CStallData::srStallSucc;
// // }
// CActorPacket AP;
// CDataPacket& DataPacket = m_pEntity->AllocPacket(AP);
// DataPacket << (byte)GetSystemID() << (byte)sStallAreaResult;
// DataPacket << (BYTE)nResult;
// AP.flush();
// }
// void CStallSystem::SendStallResult(BYTE nStallResult)
// {
// CActorPacket AP;
// CDataPacket& DataPacket = m_pEntity->AllocPacket(AP);
// DataPacket << (byte)GetSystemID() << (byte)sStallResult;
// DataPacket << (BYTE)CStallData::soStartStall;
// DataPacket << (BYTE)nStallResult;
// AP.flush();
// }
// bool CStallSystem::GetStallInfo(CDataPacketReader& packet)
// {
// /*
// byte nItemSize;
// packet.readString(m_stallInfo.sName);
// //packet.readString(m_stallInfo.sAd, ArrayCount(m_stallInfo.sAd));
// packet >> nItemSize;
// UINT nMyGrid = m_pEntity->GetProperty<UINT>(PROP_ACTOR_STALL_GRID_COUNT);
// if (nItemSize > (byte)nMyGrid)
// {
// m_pEntity->SendOldTipmsgWithId(tpIsMaxGrid, ttFlyTip);
// SendStallResult(CStallData::srStallFail);
// return false;
// }
// for (byte i = 0; i < nItemSize; i++)
// {
// CStallData::STALLITEM item;
// packet >> item.series.llId >> item.nCoin >> item.nPrice;
// CUserItem* pUserItem = ((CActor*)m_pEntity)->GetBagSystem().FindItemByGuid(item.series);
// if (pUserItem)
// {
// if(pUserItem->binded())
// {
// const CStdItem *pStdItem =GetLogicServer()->GetDataProvider()->GetStdItemProvider().GetStdItem(pUserItem->wItemId);
// if (pStdItem)
// {
// m_pEntity->SendOldTipmsgFormatWithId(tpStallBindItem, ttFlyTip, pStdItem->m_sName);
// }
// m_stallInfo.vItems.clear();
// SendStallResult(CStallData::srStallFail);
// return false; //绑定的不能卖
// }
// item.nItemId = pUserItem->wItemId;
// item.wNum = pUserItem->wCount;
// item.nFlag = 1;
// if (item.nPrice <= 0 || item.wNum <= 0 )
// {
// OutputMsg(rmError, _T("%s:玩家[%s]摆摊价格[%d]或物品数量[%d]非法"), __FUNCTION__,m_pEntity->GetEntityName(),(int)item.nPrice,(int)item.wNum);
// SendStallResult(CStallData::srStallFail);
// return false;
// }
// if (item.nCoin != mtCoin && item.nCoin != mtYuanbao)
// {
// SendStallResult(CStallData::srStallFail);
// return false;
// }
// if (item.nPrice > 99999999)
// {
// SendStallResult(CStallData::srStallFail);
// m_pEntity->SendOldTipmsgWithId(tpDealNumTooLarge, ttFlyTip);
// return false;
// }
// m_stallInfo.vItems.add(item);
// }
// }*/
// return true;
// }
// /*玩家摆摊
// */
// void CStallSystem::StartStall( CDataPacketReader& packet)
// {
// if(m_pEntity->HasState(esStateStall))
// {
// m_pEntity->SendOldTipmsgWithId(tpHaveStall,ttFlyTip);
// SendStallResult(CStallData::srStallFail);
// return;
// }
// if (m_pEntity->GetDealSystem().IsDealing())
// {
// m_pEntity->SendOldTipmsgWithId(tpDealNoStall, ttScreenCenter);
// return;
// }
// CScene * pScene = m_pEntity->GetScene();
// if (pScene == NULL)
// {
// SendStallResult(CStallData::srStallFail);
// return;
// }
// if (!CheckStallLevel())
// return;
// int x,y;
// m_pEntity->GetPosition(x, y);
// // if(!pScene->HasMapAttribute(x, y, asStallArea))
// // { //不是摆摊区域
// // //m_pEntity->SendOldTipmsgWithId(tpNotStallArea,ttDialog);
// // //主要是为了让客户端弹出非模态窗口
// // BYTE nResult = CStallData::srStallFail;
// // CActorPacket AP;
// // CDataPacket& DataPacket = m_pEntity->AllocPacket(AP);
// // DataPacket << (byte)GetSystemID() << (byte)sStallAreaResult;
// // DataPacket << (BYTE)nResult;
// // AP.flush();
// // SendStallResult(CStallData::srStallFail);
// // return;
// // }
// int nRadio = 2, nDir = 4;
// EntityVector& vec = *(CFuBenManager::m_pVisibleList);
// vec.clear();
// pScene->GetVisibleList(((CEntity*)m_pEntity),vec,-nRadio,nRadio,-nRadio,nRadio);
// if (vec.count() > 0)
// {
// CEntityManager* pMgr = GetGlobalLogicEngine()->GetEntityMgr();
// for (int i = 0; i < vec.count(); i++)
// {
// CEntity* pe = pMgr->GetEntity(vec[i]);
// if (pe && pe->GetType() == enActor && ((CActor*)pe)->HasState(esStateStall))
// {
// m_pEntity->SendOldTipmsgWithId(tpNeaerHaveStall, ttFlyTip);
// return;
// }
// }
// }
// m_stallInfo.vItems.clear();
// m_stallInfo.vMsgs.clear();
// if(!GetStallInfo(packet))
// {
// return;
// }
// m_pEntity->AddState(esStateStall);
// m_pEntity->SetDir(nDir); //设置摊主朝向
// SendStallResult(CStallData::srStallSucc);
// m_pEntity->CollectOperate(CEntityOPCollector::coRefFeature);
// char buff[128];
// CDataPacket data(buff,sizeof(buff));
// data << (BYTE) enDefaultEntitySystemID << (BYTE) sTurnAround
// << (Uint64)m_pEntity->GetHandle() << (BYTE) nDir;
// CObserverSystem * pSystem = m_pEntity->GetObserverSystem();
// if(pSystem != NULL)
// {
// pSystem->BroadCast(data.getMemoryPtr(),data.getPosition(),true);
// }
// m_pEntity->ResetShowName();
// ACTORNAME sName;
// sprintf(sName, "%s", m_pEntity->GetEntityName());
// SendLeaveMsg((CActor*)m_pEntity,sName);
// }
// void CStallSystem::EndStall()
// {
// if(m_pEntity->HasState(esStateStall))
// {
// m_pEntity->RemoveState(esStateStall);
// CActorPacket AP;
// CDataPacket& DataPacket = m_pEntity->AllocPacket(AP);
// DataPacket << (byte)GetSystemID() << (byte)sStallResult;
// DataPacket << (BYTE)CStallData::soEndStall;
// DataPacket << (BYTE)CStallData::srStallSucc;
// AP.flush();
// NoticeNearBuyers(0);
// m_pEntity->ResetShowName();
// m_pEntity->CollectOperate(CEntityOPCollector::coRefFeature);
// }
// }
// void CStallSystem::LeaveMsg( CDataPacketReader & packet )
// {
// ACTORNAME sName;
// packet.readString(sName, ArrayCount(sName));
// CActor * pActor = GetGlobalLogicEngine()->GetEntityMgr()->GetActorPtrByName(sName);
// if(!pActor)
// {
// m_pEntity->SendOldTipmsgWithId(tpStallerOnffline, ttFlyTip);
// return;
// }
// CStallData::STALLMSG msg;
// msg.nMsgType = 1;
// msg.nId = m_pEntity->GetId();
// sprintf(msg.sPlayerName, "%s", m_pEntity->GetEntityName());
// packet.readString(msg.sMsg, ArrayCount(msg.sMsg));
// GetGlobalLogicEngine()->GetChatMgr().Filter(msg.sMsg);
// //pActor->GetStallSystem().OnLeaveMsg(msg);
// //存起来留言
// if (20 <pActor->GetStallSystem().m_stallInfo.vMsgs.count())
// {
// pActor->GetStallSystem().m_stallInfo.vMsgs.clear();
// }
// pActor->GetStallSystem().m_stallInfo.vMsgs.add(msg);
// SendLeaveMsg(m_pEntity, sName); //留言者的
// if(m_pEntity != pActor)
// {
// SendLeaveMsg(pActor, sName); //店主的
// ((CActor *)m_pEntity)->SendOldTipmsgWithId(tpLeaveWord, ttFlyTip);
// }
// }
// bool CStallSystem::OnLeaveMsg( CStallData::STALLMSG& msg, BYTE nCoin, int nPrice )
// {
// if(msg.nMsgType)
// {
// }
// else
// {
// CActorPacket AP;
// CDataPacket& netPack = m_pEntity->AllocPacket(AP);
// netPack <<(BYTE)GetSystemID();
// netPack << (BYTE)sAddBuyLog;
// netPack.writeString(msg.sPlayerName);
// netPack << (BYTE)nCoin << (int)nPrice;
// netPack.writeString(msg.sMsg);
// AP.flush();
// }
// return true;
// }
// void CStallSystem::SendLeaveMsg(CActor * pActor,ACTORNAME sName)
// {
// if(pActor == NULL)
// return;
// CActor * pHostActor = GetGlobalLogicEngine()->GetEntityMgr()->GetActorPtrByName(sName);
// if(!pHostActor)
// {
// m_pEntity->SendOldTipmsgWithId(tpStallerOnffline, ttFlyTip);
// return;
// }
// CActorPacket AP;
// CDataPacket& netPack = pActor->AllocPacket(AP);
// netPack <<(BYTE)GetSystemID();
// netPack << (BYTE)sAddLeaveMsg;
// INT_PTR nSize = pHostActor->GetStallSystem().m_stallInfo.vMsgs.count();
// netPack << (BYTE)nSize;
// for (INT_PTR i = 0; i < nSize; i++)
// {
// const CStallData::STALLMSG & msg = pHostActor->GetStallSystem().m_stallInfo.vMsgs.get(i);
// netPack.writeString(msg.sPlayerName);
// netPack.writeString(msg.sMsg);
// }
// netPack.writeString(sName);
// AP.flush();
// }
// void CStallSystem::ViewStall( CDataPacketReader& packet )
// {
// unsigned int nActorId = 0;
// packet >> nActorId;
// ACTORNAME sName;
// packet.readString(sName, ArrayCount(sName));
// CActor * pActor = NULL;
// if( nActorId > 0)
// {
// pActor = GetGlobalLogicEngine()->GetEntityMgr()->GetEntityPtrByActorID(nActorId);
// }
// else
// {
// pActor = GetGlobalLogicEngine()->GetEntityMgr()->GetActorPtrByName(sName);
// }
// if(NULL == pActor)
// {
// m_pEntity->SendOldTipmsgWithId(tpStallerOnffline, ttFlyTip);
// return;
// }
// CActorPacket AP;
// CDataPacket& netPack = m_pEntity->AllocPacket(AP);
// netPack <<(BYTE)GetSystemID() << (BYTE)sStallInfo;
// pActor->GetStallSystem().FillStallData(netPack);
// AP.flush();
// SendLeaveMsg(m_pEntity, sName);
// }
// bool CStallSystem::FillStallData( CDataPacket & netPack )
// {
// CUserBag & userBag = ((CActor*)m_pEntity)->GetBagSystem();
// const char * sName = m_pEntity->GetEntityName();
// netPack.writeString(sName);
// netPack.writeString(m_stallInfo.sName);
// //netPack.writeString(m_stallInfo.sAd);
// size_t pos = netPack.getPosition();
// BYTE nItemCount = 0;
// INT_PTR nSize = m_stallInfo.vItems.count();
// netPack << (BYTE)nSize;
// CVector<INT_PTR> DelItemList;
// for (INT_PTR i = 0; i < nSize; i++)
// {
// const CStallData::STALLITEM & item = m_stallInfo.vItems.get(i);
// if(item.nFlag != -1)
// {
// CUserItem * pUserItem = userBag.FindItemByGuid(item.series);
// if (pUserItem)
// {
// if(pUserItem->wCount == item.wNum)
// {
// netPack << *pUserItem << item.nCoin << item.nPrice;
// nItemCount++;
// }
// else
// {
// DelItemList.add(i);
// }
// }
// }
// }
// for(INT_PTR i=DelItemList.count(); i>=0; i--)
// {
// m_stallInfo.vItems.remove(DelItemList[i]);
// }
// BYTE* pCount = (BYTE*)netPack.getPositionPtr(pos);
// *pCount = (BYTE)nItemCount;
// return true;
// }
// void CStallSystem::BuyStallItem( CDataPacketReader & packet )
// {
// // if (m_pEntity->HasState(esStateStall))
// // {
// // //return;
// // }
// // ACTORNAME sName;
// // packet.readString(sName, ArrayCount(sName));
// // CActor * pActor = GetGlobalLogicEngine()->GetEntityMgr()->GetActorPtrByName(sName);
// // if(!pActor)
// // {
// // m_pEntity->SendOldTipmsgWithId(tpStallerOnffline, ttFlyTip);
// // return;
// // }
// // if (pActor == (CActor *)m_pEntity)
// // {
// // return;
// // }
// // //检查摊主是否在摆摊
// // if (!pActor->HasState(esStateStall))
// // {
// // m_pEntity->SendOldTipmsgFormatWithId(tpNotStallState, ttFlyTip, pActor->GetEntityName());
// // return;
// // }
// // CUserItem::ItemSeries series;
// // packet >> series.llId;
// // const CStallData::STALLITEM* sItem = pActor->GetStallSystem().GetStallItemByGuid(series);
// // if( sItem && sItem->nFlag != -1)
// // {
// // CUserItem * pUserItem = pActor->GetBagSystem().FindItemByGuid(series);
// // if (pUserItem != NULL)
// // {
// // //判断钱的物品和位置
// // byte bItCoin = sItem->nCoin;
// // int nPrice = sItem->nPrice;
// // int nTipId = tpMoneyTypeCoin;
// // if (bItCoin == mtYuanbao)
// // {
// // nTipId = tpMoneyTypeYuanbao;
// // }
// // TIPMSGCONFIG& tipConfig = GetLogicServer()->GetDataProvider()->GetOldTipmsgConfig();
// // char * sMoneyDesc = tipConfig.GetTipmsg(nTipId);
// // int nMyMoney = (int)m_pEntity->GetMoneyCount(eMoneyType(bItCoin));
// // if (nPrice <= 0 || nMyMoney < nPrice)
// // {
// // m_pEntity->SendOldTipmsgFormatWithId(tpBuyStallNeedMoney, ttFlyTip, sItem->nPrice,sMoneyDesc,nMyMoney,sMoneyDesc);
// // return;
// // }
// // unsigned int nMasterMoney = (unsigned int)pActor->GetMoneyCount(eMoneyType(bItCoin));
// // if (0xFFFFFFFF - nMasterMoney < (UINT32)nPrice)
// // {
// // m_pEntity->SendOldTipmsgWithId(tpTargetMoneyIsFull, ttFlyTip);
// // return;
// // }
// // //位置
// // CUserItemContainer::ItemOPParam itemOp;
// // itemOp.wItemId = pUserItem->wItemId;
// // itemOp.wCount = pUserItem->wCount;
// // itemOp.btQuality = pUserItem->btQuality;
// // itemOp.btStrong = pUserItem->btStrong;
// // itemOp.btBindFlag = pUserItem->btFlag;
// // INT_PTR nNeedGrids = m_pEntity->GetBagSystem().GetAddItemNeedGridCount(itemOp);
// // if( nNeedGrids > 0 && nNeedGrids > m_pEntity->GetBagSystem().availableCount(pUserItem->wPackageType))
// // {
// // m_pEntity->SendOldTipmsgFormatWithId(tpNeedBagGrid, ttFlyTip, nNeedGrids);
// // return;
// // }
// // LPCTSTR sBuyFormat = GetLogicServer()->GetDataProvider()->GetOldTipmsgConfig().GetTipmsg(tpLogBuyStallItem);
// // if(!m_pEntity->ChangeMoney(bItCoin, -nPrice, GameLog::clStallBuyItemMoney, 0, sBuyFormat, true))
// // {
// // OutputMsg(rmNormal, _T("摆摊系统买家[%u]扣钱[类型:%d][数量:%d]出错,卖家[%u]"), m_pEntity->GetId(), sItem->nCoin,sItem->nPrice, pActor->GetId());
// // return;
// // }
// // LPCTSTR sSellFormat = GetLogicServer()->GetDataProvider()->GetOldTipmsgConfig().GetTipmsg(tpLogSellStallItem);
// // if(!pActor->ChangeMoney(bItCoin, nPrice, GameLog::clStallSellItemMoney, 0, sSellFormat, true))
// // {
// // OutputMsg(rmNormal, _T("摆摊系统卖家[%u]添加钱[类型:%d][数量:%d]出错,买家是[%u]"),pActor->GetId(),sItem->nCoin,sItem->nPrice,m_pEntity->GetId());
// // return;
// // }
// // int nOldCount = pUserItem->wCount;
// // pActor->GetStallSystem().OnBuyItem(series); //先通知客户端,sItem指针就从列表中移除后面不能用了。
// // pActor->GetBagSystem().RemoveItem(series, m_pEntity->GetEntityName(), GameLog::clStallSellItem, false);
// // const CStdItem *pStdItem = GetLogicServer()->GetDataProvider()->GetStdItemProvider().GetStdItem(pUserItem->wItemId);
// // //如果物品需要记录流通日志,则需要向日志服务器发送记录日志的数据
// // if ( pStdItem && pStdItem->m_Flags.recordLog)
// // {
// // CUserBag::LogChangeItemCount(pUserItem, pStdItem, nOldCount, m_pEntity->GetEntityName(), pActor->GetId(), pActor->GetEntityName(), GameLog::clStallSellItem, pActor->GetAccount());
// // }
// // if(((CActor*)m_pEntity)->GetBagSystem().AddItem(pUserItem, pActor->GetEntityName(), GameLog::clStallBuyItem, true, false) > 0 )
// // {
// // CStallData::STALLMSG msg;
// // msg.nMsgType = 0;
// // msg.nId = m_pEntity->GetId();
// // sprintf(msg.sPlayerName, "%s", m_pEntity->GetEntityName());
// // LPCTSTR sFormat = GetLogicServer()->GetDataProvider()->GetOldTipmsgConfig().GetTipmsg(tpStallBuyLog);
// // sprintf(msg.sMsg, sFormat, nPrice, sMoneyDesc, itemOp.wCount, pStdItem->m_sName );
// // pActor->GetStallSystem().OnLeaveMsg(msg, bItCoin, nPrice);
// // if (pActor->HasState(esStateStall))
// // {
// // pActor->GetStallSystem().NoticeNearBuyers(1);
// // }
// // char sItemInfo[32];
// // sprintf_s(sItemInfo, ArrayCount(sItemInfo), "%s,%d", m_pEntity->GetEntityName(), pUserItem->wItemId);
// // }
// // }
// // }
// }
// bool CStallSystem::OnEnlargeStallGrid( byte nGrid )
// {/*
// if (m_stallInfo.nGridCount + nGrid > GetLogicServer()->GetDataProvider()->GetGlobalConfig().nStallMaxGrids)
// {
// return false;
// }
// m_stallInfo.nGridCount += nGrid;
// m_pEntity->SetProperty<unsigned int>(PROP_ACTOR_STALL_GRID_COUNT, m_stallInfo.nGridCount);
// */
// return true;
// }
// bool CStallSystem::OnBuyItem( CUserItem::ItemSeries& series )
// {
// bool boResult = false;
// INT_PTR nSize = m_stallInfo.vItems.count();
// for (INT_PTR i = 0; i < nSize; i++)
// {
// const CStallData::STALLITEM & item = m_stallInfo.vItems.get(i);
// if (item.nFlag != -1 && item.series == series)
// {
// m_stallInfo.vItems.remove(i);
// CActorPacket AP;
// CDataPacket& DataPacket = m_pEntity->AllocPacket(AP);
// DataPacket << (byte)GetSystemID() << (byte)sNoticeSaleItem;
// DataPacket <<(INT64)series.llId;
// AP.flush();
// boResult = true;
// break;
// }
// }
// if(m_stallInfo.vItems.count() == 0)
// {
// EndStall();
// }
// return boResult;
// }
// const CStallData::STALLITEM* CStallSystem::GetStallItemByGuid( CUserItem::ItemSeries series )
// {
// INT_PTR nSize = m_stallInfo.vItems.count();
// for (INT_PTR i = 0; i < nSize; i++)
// {
// const CStallData::STALLITEM & item = m_stallInfo.vItems.get(i);
// if (item.nFlag != -1 && item.series == series)
// {
// return &item;
// }
// }
// return NULL;
// }
// void CStallSystem::OptStallItem( CDataPacketReader & pakcet )
// {/*
// byte nOptType;
// CStallData::STALLITEM item;
// CUserItem::ItemSeries itSeries;
// pakcet >> nOptType >> itSeries.llId;
// if (m_pEntity->HasState(esStateStall))
// {
// BYTE nResult = 1;
// if (nOptType)
// {
// CUserItem* pUserItem = ((CActor*)m_pEntity)->GetBagSystem().FindItemByGuid(itSeries);
// if (pUserItem)
// {
// UINT nMyGrid = m_pEntity->GetProperty<UINT>(PROP_ACTOR_STALL_GRID_COUNT);
// if(pUserItem->binded())
// {
// const CStdItem *pStdItem =GetLogicServer()->GetDataProvider()->GetStdItemProvider().GetStdItem(pUserItem->wItemId);
// if (pStdItem)
// {
// m_pEntity->SendOldTipmsgFormatWithId(tpStallBindItem, ttFlyTip, pStdItem->m_sName);
// }
// return; //绑定的不能卖
// }
// if (m_stallInfo.vItems.count() + 1 > (byte)nMyGrid)
// {
// m_pEntity->SendOldTipmsgWithId(tpIsMaxGrid,ttFlyTip);
// return;
// }
// item.series = itSeries;
// pakcet >> item.nCoin >> item.nPrice;
// item.nItemId = pUserItem->wItemId;
// item.wNum = pUserItem->wCount;
// item.nFlag = 1;
// m_stallInfo.vItems.add(item);
// NoticeNearBuyers(1);
// nResult = 0;
// }
// }
// else
// {
// INT_PTR nIndex = GetStallItemIdxByGuid(itSeries);
// if (nIndex != -1)
// {
// m_stallInfo.vItems.remove(nIndex);
// NoticeNearBuyers(1);
// nResult = 0;
// }
// if (m_stallInfo.vItems.count() == 0)
// {
// EndStall();
// }
// }
// CActorPacket AP;
// CDataPacket& DataPacket = m_pEntity->AllocPacket(AP);
// DataPacket << (byte)GetSystemID() << (byte)sStallItemOpt;
// DataPacket << (BYTE)nOptType << (BYTE)nResult <<(INT64)itSeries.llId;
// if (nOptType)
// {
// DataPacket << (BYTE)item.nCoin << (int)item.nPrice;
// }
// AP.flush();
// }*/
// }
// INT_PTR CStallSystem::GetStallItemIdxByGuid( CUserItem::ItemSeries series )
// {
// INT_PTR nSize = m_stallInfo.vItems.count();
// for (INT_PTR i = 0; i < nSize; i++)
// {
// const CStallData::STALLITEM & item = m_stallInfo.vItems.get(i);
// if (item.nFlag != -1 && item.series == series)
// {
// return i;
// }
// }
// return -1;
// }
// void CStallSystem::NoticeNearBuyers(byte nMsgType)
// {
// char buff[1024];
// CDataPacket netPack(buff,sizeof(buff));
// const char * sName = m_pEntity->GetEntityName();
// netPack << (BYTE)GetSystemID() << (BYTE) sStallBroadCast;
// netPack.writeString(sName);
// netPack << nMsgType;
// bool boMyself = (nMsgType > 0);
// m_pEntity->GetObserverSystem()->BroadCast(netPack.getMemoryPtr(), netPack.getPosition(), boMyself);
// }
// void CStallSystem::OnActorLogout()
// {
// if(m_pEntity ==NULL) return;
// if (m_pEntity->HasState(esStateStall))
// {
// m_stallInfo.vItems.clear();
// m_stallInfo.vMsgs.clear();
// EndStall();
// }
// }
// //
// //void CStallSystem::SendStallAd(CDataPacketReader & packet)
// //{
// // //扣钱
// // //发出售频道
// // if (m_pEntity->HasState(esStateStall))
// // {
// // packet.readString(m_stallInfo.sAd, ArrayCount(m_stallInfo.sAd));
// // const int nMoney = 5000; //需要配置化
// // int nMyCoin = (int)m_pEntity->GetMoneyCount(mtCoin);
// // if (nMyCoin < nMoney)
// // {
// // m_pEntity->SendOldTipmsgFormatWithId(tpSendStallAdMoney, ttDialog, nMoney, nMyCoin );
// // return;
// // }
// // if(m_pEntity->ChangeMoney(mtCoin, -nMoney, GameLog::clStallBuyItemMoney, 0, m_pEntity->GetEntityName(), true))
// // {
// // char sBuff[512], sMsg[512];
// // sprintf(sMsg, "[%s]:[%s]", m_stallInfo.sName, m_stallInfo.sAd);
// // CDataPacket outPack(sBuff, sizeof(sBuff));
// // outPack << (BYTE) enChatSystemID << (BYTE)sSendChat <<(BYTE)ciChannelNear;
// // outPack.writeString(m_pEntity->GetEntityName());
// // outPack.writeString(sMsg);
// // outPack << (BYTE)m_pEntity->GetProperty<int>(PROP_ACTOR_SEX);//nSex; //玩家的性别
// // outPack << (BYTE)0;
// // outPack << (BYTE)1; // 阵营Id
// // outPack << (BYTE)0; // 阵营职位Id
// // m_pEntity->GetObserverSystem()->BroadCast(outPack.getMemoryPtr(), outPack.getPosition(),true);
// // }
// // }
// //}
// void CStallSystem::OnEnterGame()
// {/*
// unsigned int nCurGrid = m_pEntity->GetProperty<unsigned int>(PROP_ACTOR_STALL_GRID_COUNT);
// unsigned int nMinGrid = GetLogicServer()->GetDataProvider()->GetGlobalConfig().nStallMinGrids;
// if (nCurGrid < nMinGrid)
// {
// nCurGrid = nMinGrid;
// m_pEntity->SetProperty<unsigned int>(PROP_ACTOR_STALL_GRID_COUNT, nMinGrid);
// }
// m_stallInfo.nGridCount = nCurGrid;*/
// }