Files
Sun1602/Server/GameServer/PacketHandler/Handler_CG_SHOP.cpp
T
2022-10-26 12:25:11 +08:00

244 lines
8.3 KiB
C++

#include "StdAfx.h"
#include ".\handler_cg_shop.h"
#ifdef _NA_0_20110613_GAME_SHOP_RENEWAL
#include ".\Player.h"
#include ".\PlayerManager.h"
#include <PacketStruct_CG.h>
#include <PacketStruct_DG.h>
#include "./GameShop/GameShop.Manager.h"
#include "./GameShop/GameShop.EventProcessor.h"
const nsPacket::PacketHandlerInfo Handler_CG_SHOP::GetPacketHandlerNodes()
{
#define HANDLER_NODE_INFO(c, p, phase) { MAKEWORD(c, p), phase, Handler_CG_SHOP::On##p }
#define HANDLER_NODE_INFO_EOR() { 0, static_cast<ePHASE_SHIFT>(0), NULL }
static const nsPacket::PacketHandlerNode handlers_static_[] =
{
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_VERSION_SYN, PHASE_SERVICE),
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_OPEN_SYN, PHASE_SERVICE),
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_CLOSE_NTF, PHASE_SERVICE),
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_CASH_SYN, PHASE_SERVICE),
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_BUY_STORAGE_LIST_SYN, PHASE_SERVICE),
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_GIFT_STORAGE_LIST_SYN, PHASE_SERVICE),
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_BUY_ITEM_SYN, PHASE_SERVICE),
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_SEND_GIFT_SYN, PHASE_SERVICE),
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_USE_STORAGE_ITEM_SYN, PHASE_SERVICE),
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_CHAR_NAME_CHECK_SYN, PHASE_SERVICE),
HANDLER_NODE_INFO(CG_SHOP, CG_SHOP_EXIST_GIFT_SYN, PHASE_SERVICE),
HANDLER_NODE_INFO_EOR() // end of records
};
//
BOOST_STATIC_ASSERT(_countof(handlers_static_) >= 1);
nsPacket::PacketHandlerInfo return_value = { handlers_static_, _countof(handlers_static_) - 1 };
//
return return_value;
};
//--------------------------------------------------------------------------------------------------
Handler_CG_SHOP_IMPL(CG_SHOP_VERSION_SYN)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_VERSION_SYN* recv_message = (MSG_CG_SHOP_VERSION_SYN*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
GameShop::Manager::Instance()->Request_ScriptVersion(player);
}
Handler_CG_SHOP_IMPL(CG_SHOP_OPEN_SYN)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_OPEN_SYN* recv_message = (MSG_CG_SHOP_OPEN_SYN*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
ShopScriptVersion script_version;
script_version.sales_zone_ = recv_message->sales_version_;
GameShop::Manager::Instance()->OpenShop(player, script_version);
}
Handler_CG_SHOP_IMPL(CG_SHOP_CLOSE_NTF)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_CLOSE_NTF* recv_message = (MSG_CG_SHOP_CLOSE_NTF*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
GameShop::Manager::Instance()->CloseShop(player);
}
Handler_CG_SHOP_IMPL(CG_SHOP_CASH_SYN)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_CASH_SYN* recv_message = (MSG_CG_SHOP_CASH_SYN*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
USERGUID user_guid = player->GetUserGuid();
GameShop::EventProcessor* proc = GameShop::Manager::Instance()->FindEventProcessor(user_guid);
if (proc)
{
proc->Request_CashInfo();
}
else
{
GameShop::EventProcessor::SendFail_CashInfo(player, RC::RC_SHOP_CANNOT_USE_SHOP);
}
}
Handler_CG_SHOP_IMPL(CG_SHOP_BUY_STORAGE_LIST_SYN)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_BUY_STORAGE_LIST_SYN* recv_message = (MSG_CG_SHOP_BUY_STORAGE_LIST_SYN*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
USERGUID user_guid = player->GetUserGuid();
GameShop::EventProcessor* proc = GameShop::Manager::Instance()->FindEventProcessor(user_guid);
if (proc)
{
proc->Request_BuyStorageList(recv_message->page_, recv_message->item_count_per_page_);
}
else
{
GameShop::EventProcessor::SendFail_BuyStorageList(player, RC::RC_SHOP_CANNOT_USE_SHOP);
}
}
Handler_CG_SHOP_IMPL(CG_SHOP_GIFT_STORAGE_LIST_SYN)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_GIFT_STORAGE_LIST_SYN* recv_message = (MSG_CG_SHOP_GIFT_STORAGE_LIST_SYN*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
USERGUID user_guid = player->GetUserGuid();
GameShop::EventProcessor* proc = GameShop::Manager::Instance()->FindEventProcessor(user_guid);
if (proc)
{
proc->Request_GiftStorageList(recv_message->page_, recv_message->item_count_per_page_);
}
else
{
GameShop::EventProcessor::SendFail_GiftStorageList(player, RC::RC_SHOP_CANNOT_USE_SHOP);
}
}
Handler_CG_SHOP_IMPL(CG_SHOP_BUY_ITEM_SYN)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_BUY_ITEM_SYN* recv_message = (MSG_CG_SHOP_BUY_ITEM_SYN*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
USERGUID user_guid = player->GetUserGuid();
GameShop::EventProcessor* proc = GameShop::Manager::Instance()->FindEventProcessor(user_guid);
if (proc)
{
proc->Request_BuyItem(recv_message->item_info_, recv_message->item_count_);
}
else
{
GameShop::EventProcessor::SendFail_BuyItem(player, RC::RC_SHOP_CANNOT_USE_SHOP);
}
}
Handler_CG_SHOP_IMPL(CG_SHOP_SEND_GIFT_SYN)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_SEND_GIFT_SYN* recv_message = (MSG_CG_SHOP_SEND_GIFT_SYN*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
USERGUID user_guid = player->GetUserGuid();
GameShop::EventProcessor* proc = GameShop::Manager::Instance()->FindEventProcessor(user_guid);
if (proc)
{
proc->Request_SendGift(recv_message->item_info_,
recv_message->item_count_,
recv_message->recv_character_name_,
recv_message->gift_message_);
}
else
{
GameShop::EventProcessor::SendFail_SendGift(player, RC::RC_SHOP_CANNOT_USE_SHOP);
}
}
Handler_CG_SHOP_IMPL(CG_SHOP_USE_STORAGE_ITEM_SYN)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_USE_STORAGE_ITEM_SYN* recv_message = (MSG_CG_SHOP_USE_STORAGE_ITEM_SYN*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
USERGUID user_guid = player->GetUserGuid();
GameShop::EventProcessor* proc = GameShop::Manager::Instance()->FindEventProcessor(user_guid);
if (proc)
{
proc->Request_UseStorageItem(recv_message->use_item_);
}
else
{
GameShop::EventProcessor::SendFail_UseStorageItem(player, RC::RC_SHOP_CANNOT_USE_SHOP);
}
}
Handler_CG_SHOP_IMPL(CG_SHOP_CHAR_NAME_CHECK_SYN)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_CHAR_NAME_CHECK_SYN* recv_message = (MSG_CG_SHOP_CHAR_NAME_CHECK_SYN*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
USERGUID user_guid = player->GetUserGuid();
GameShop::EventProcessor* proc = GameShop::Manager::Instance()->FindEventProcessor(user_guid);
if (proc)
{
proc->Request_CharacterNameCheck(recv_message->character_name_);
}
else
{
GameShop::EventProcessor::SendFail_CharacterNameCheck(player, RC::RC_SHOP_CANNOT_USE_SHOP);
}
}
Handler_CG_SHOP_IMPL(CG_SHOP_EXIST_GIFT_SYN)
{
__TOUCHED((pServerSession, pMsg, wSize));
MSG_CG_SHOP_EXIST_GIFT_SYN* recv_message = (MSG_CG_SHOP_EXIST_GIFT_SYN*)pMsg;
Player* player = PlayerManager::Instance()->FindPlayerByUserKey(recv_message->m_dwKey);
ASSERT(player);
if(!player)
return;
GameShop::Manager::Instance()->Request_ExistGiftNotify(player);
}
#endif //_NA_0_20110613_GAME_SHOP_RENEWAL