Files
2022-10-26 12:25:11 +08:00

81 lines
2.4 KiB
C++

#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);
}