// #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(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 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 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(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(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(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(PROP_ACTOR_STALL_GRID_COUNT); // unsigned int nMinGrid = GetLogicServer()->GetDataProvider()->GetGlobalConfig().nStallMinGrids; // if (nCurGrid < nMinGrid) // { // nCurGrid = nMinGrid; // m_pEntity->SetProperty(PROP_ACTOR_STALL_GRID_COUNT, nMinGrid); // } // m_stallInfo.nGridCount = nCurGrid;*/ // }