#pragma once #include "Action.h" #include "ShopJobQueue.h" class CShopAction : public CAction { public: void ExecuteInquireCash(DWORD_PTR pSession, PBYTE pBuf); void ExecuteBuyProduct(DWORD_PTR pSession, PBYTE pBuf); void ExecuteGiftProduct(DWORD_PTR pSession, PBYTE pBuf); }; void CShopAction::ExecuteInquireCash(DWORD_PTR pSession, PBYTE pBuf) { ShopProtocol::MSG_CLIENT_INQUIRE_CASH* protocol = (ShopProtocol::MSG_CLIENT_INQUIRE_CASH*)pBuf; BILLING_LOG(WZPUBLIC::LEVEL_INFO, "点劵查询 (%d, %d)", protocol->GameCode, protocol->AccountSeq); CInquireCash* job = new CInquireCash; job->jobcode = JOB_SHOP_INQUIRE; job->pSession = pSession; job->GameCode = protocol->GetGameCode(); job->AccountSeq = protocol->AccountSeq; _instance(CShopJobQueue)->push(job); } void CShopAction::ExecuteBuyProduct(DWORD_PTR pSession, PBYTE pBuf) { USES_CONVERSION; ShopProtocol::MSG_CLIENT_BUYPRODUCT* protocol = (ShopProtocol::MSG_CLIENT_BUYPRODUCT*)pBuf; BILLING_LOG(WZPUBLIC::LEVEL_INFO, "商品购买 (%d, %d)", protocol->GameCode, protocol->AccountSeq); CBuyProduct* job = new CBuyProduct; job->jobcode = JOB_SHOP_BUYPRODUCT; job->pSession = pSession; job->GameCode = protocol->GetGameCode(); job->AccountSeq = protocol->AccountSeq; job->PackageProductSeq = protocol->PackageSeq; job->PriceSeq = protocol->PriceSeq; StringCchCopyW(job->CharName, MAX_CHARACTERID_LENGTH, protocol->CharName); _instance(CShopJobQueue)->push(job); } void CShopAction::ExecuteGiftProduct(DWORD_PTR pSession, PBYTE pBuf) { USES_CONVERSION; ShopProtocol::MSG_CLIENT_GIFTPRODUCT* protocol = (ShopProtocol::MSG_CLIENT_GIFTPRODUCT*)pBuf; BILLING_LOG(WZPUBLIC::LEVEL_INFO, "礼物赠送 (%d, %d)", protocol->GameCode, protocol->SenderSeq); CGiftProduct* job = new CGiftProduct; job->jobcode = JOB_SHOP_GIFTPRODUCT; job->pSession = pSession; job->GameCode = protocol->GetGameCode(); job->AccountSeq = protocol->SenderSeq; job->ReceiverSeq = protocol->ReceiverSeq; job->PackageProductSeq = protocol->PackageSeq; job->PriceSeq = protocol->PriceSeq; StringCchCopyW(job->SenderCharName, MAX_CHARACTERID_LENGTH, protocol->SenderCharName); StringCchCopyW(job->ReceiverCharName, MAX_CHARACTERID_LENGTH, protocol->ReceiverCharName); StringCchCopyW(job->SendMessage, MAX_MESSAGE_LENGTH, protocol->Message); _instance(CShopJobQueue)->push(job); }