⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 handler_cg_guild.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 CPP
字号:
#include "StdAfx.h"
#include ".\handler_cg_guild.h"
#include <PacketStruct_CG.h>
#include "GameGuildManager.h"
#include "GameGuild.h"
#include "PlayerManager.h"
#include "Player.h"

Handler_CG_GUILD_IMPL( CG_GUILD_SELECT_SYN )
{
	MSG_CG_GUILD_SELECT_SYN * pMsg = (MSG_CG_GUILD_SELECT_SYN *)pRecvMsg;

	Player * pPlayer = PlayerManager::Instance()->FindPlayer( pMsg->m_dwKey );
	ASSERT( pPlayer );
	if( !pPlayer ) return ;
	if( !pPlayer->GetField() ) return;


	MSG_CG_GUILD_SELECT_ACK msg;
	RC::eGUILD_RESULT rt = g_GameGuildManager.SelectGuildInfo( pPlayer, msg.m_GuildInfo );
	switch(rt)
	{
	case RC::RC_GUILD_SUCCESS:
		{
			pPlayer->SendPacket(&msg,sizeof(msg));

		}break;
	case RC::RC_GUILD_NEED_SELECT:
		{
			// to do nothing
		}break;
	default:
		{
			MSG_CG_GUILD_SELECT_NAK nmsg;
			nmsg.m_byErrorCode = rt;
			pPlayer->SendPacket(&nmsg,sizeof(nmsg));
		}
	}
	
}

Handler_CG_GUILD_IMPL( CG_GUILD_CREATE_SYN )
{
	MSG_CG_GUILD_CREATE_SYN * pMsg = (MSG_CG_GUILD_CREATE_SYN *)pRecvMsg;

	Player * pPlayer = PlayerManager::Instance()->FindPlayer( pMsg->m_dwKey );
	ASSERT( pPlayer );
	if( !pPlayer ) return ;
	if( !pPlayer->GetField() ) return;

	RC::eGUILD_RESULT rt = g_GameGuildManager.CreateGuild( pPlayer, pMsg->m_tszGuildName );
	if( rt != RC::RC_GUILD_SUCCESS )
	{
		MSG_CG_GUILD_CREATE_NAK nmsg;
		nmsg.m_byErrorCode = rt;
		pPlayer->SendPacket(&nmsg,sizeof(nmsg));
	}
}

Handler_CG_GUILD_IMPL( CG_GUILD_DESTROY_SYN )
{
	MSG_CG_GUILD_DESTROY_SYN * pMsg = (MSG_CG_GUILD_DESTROY_SYN *)pRecvMsg;

	Player * pPlayer = PlayerManager::Instance()->FindPlayer( pMsg->m_dwKey );
	ASSERT( pPlayer );
	if( !pPlayer ) return ;
	if( !pPlayer->GetField() ) return;

	RC::eGUILD_RESULT rt = g_GameGuildManager.DestroyGuild( pPlayer );
	if( rt != RC::RC_GUILD_SUCCESS )
	{
		MSG_CG_GUILD_DESTROY_NAK nmsg;
		nmsg.m_byErrorCode = rt;
		pPlayer->SendPacket(&nmsg,sizeof(nmsg));
	}
}
Handler_CG_GUILD_IMPL( CG_GUILD_INVITE_SYN )
{
	MSG_CG_GUILD_INVITE_SYN * pMsg = (MSG_CG_GUILD_INVITE_SYN *)pRecvMsg;

	Player * pHostPlayer = PlayerManager::Instance()->FindPlayer( pMsg->m_dwKey );
	ASSERT( pHostPlayer );
	if( !pHostPlayer ) return ;
	if( !pHostPlayer->GetField() ) return;

	Player * pReceiver = PlayerManager::Instance()->FindPlayerForObjectKey( pMsg->m_PlayerKey );
	if( !pReceiver ) 
	{
		MSG_CG_GUILD_INVITE_NAK nmsg;
		nmsg.m_byErrorCode = RC::RC_GUILD_NOT_EXIST_TARGET_STATE;
		pHostPlayer->SendPacket(&nmsg,sizeof(nmsg));

		return;
	}

	RC::eGUILD_RESULT rt = g_GameGuildManager.InviteMember( pHostPlayer, pReceiver );
	if( rt == RC::RC_GUILD_SUCCESS )
	{
		// 檬措罐绰 荤恩俊霸 檬措 皋技瘤 焊晨
		MSG_CG_GUILD_INVITE_REQUEST_CMD msg;
		msg.m_PlayerKey = pHostPlayer->GetObjectKey();
		pReceiver->SendPacket( &msg, sizeof(msg) );
	}
	else
	{
		MSG_CG_GUILD_INVITE_NAK nmsg;
		nmsg.m_byErrorCode = rt;
		pHostPlayer->SendPacket(&nmsg,sizeof(nmsg));
	}

}
Handler_CG_GUILD_IMPL( CG_GUILD_INVITE_ACCEPT_SYN )
{
	MSG_CG_GUILD_INVITE_ACCEPT_SYN * pMsg = (MSG_CG_GUILD_INVITE_ACCEPT_SYN *)pRecvMsg;

	Player * pReceiver = PlayerManager::Instance()->FindPlayer( pMsg->m_dwKey );
	ASSERT( pReceiver );
	if( !pReceiver ) return ;
	if( !pReceiver->GetField() ) return;

	PLAYERKEY InviterKey = pReceiver->GetInvitationHostKey();
	Player * pHostPlayer = PlayerManager::Instance()->FindPlayerForObjectKey( InviterKey );
	if( !pHostPlayer ) 
	{
		MSG_CG_GUILD_INVITE_ANSWER_NAK nmsg;
		nmsg.m_byErrorCode = RC::RC_GUILD_NOT_EXIST_HOST_STATE;
		pReceiver->SendPacket(&nmsg,sizeof(nmsg));
		return;
	}

	RC::eGUILD_RESULT rt = g_GameGuildManager.AnswerMember( pHostPlayer, pReceiver, TRUE );
	if( rt == RC::RC_GUILD_SUCCESS )
	{
		
		MSG_CG_GUILD_INVITE_ACCEP_ACK msg;
		pHostPlayer->SendPacket( &msg, sizeof(msg) );

		MSG_CG_GUILD_INVITE_ANSWER_ACK amsg;
		pReceiver->SendPacket(&amsg,sizeof(amsg));

		// 辨靛 啊涝 己傍/角菩绰 GuildServer肺 览翠捞 柯饶 搬沥等促!!!!!
	}
	else
	{
		MSG_CG_GUILD_INVITE_NAK msg;
		pHostPlayer->SendPacket( &msg, sizeof(msg) );

		MSG_CG_GUILD_INVITE_ANSWER_NAK nmsg;
		nmsg.m_byErrorCode = rt;
		pReceiver->SendPacket(&nmsg,sizeof(nmsg));
	}
}

Handler_CG_GUILD_IMPL( CG_GUILD_INVITE_REJECT_SYN )
{
	MSG_CG_GUILD_INVITE_REJECT_SYN * pMsg = (MSG_CG_GUILD_INVITE_REJECT_SYN *)pRecvMsg;

	Player * pReceiver = PlayerManager::Instance()->FindPlayer( pMsg->m_dwKey );
	ASSERT( pReceiver );
	if( !pReceiver ) return ;
	if( !pReceiver->GetField() ) return;

	PLAYERKEY InviterKey = pReceiver->GetInvitationHostKey();
	Player * pHostPlayer = PlayerManager::Instance()->FindPlayerForObjectKey( InviterKey );
	if( !pHostPlayer ) 
	{
		MSG_CG_GUILD_INVITE_ANSWER_NAK nmsg;
		nmsg.m_byErrorCode = RC::RC_GUILD_NOT_EXIST_HOST_STATE;
		pReceiver->SendPacket(&nmsg,sizeof(nmsg));
		return;
	}

	RC::eGUILD_RESULT rt = g_GameGuildManager.AnswerMember( pHostPlayer, pReceiver, FALSE );
	if( rt == RC::RC_GUILD_SUCCESS )
	{
		MSG_CG_GUILD_INVITE_REJECT_ACK msg;
		pHostPlayer->SendPacket( &msg, sizeof(msg) );

		MSG_CG_GUILD_INVITE_ANSWER_ACK amsg;
		pReceiver->SendPacket(&amsg,sizeof(amsg));
	}
	else
	{
		MSG_CG_GUILD_INVITE_NAK msg;
		pHostPlayer->SendPacket( &msg, sizeof(msg) );

		MSG_CG_GUILD_INVITE_ANSWER_NAK nmsg;
		nmsg.m_byErrorCode = rt;
		pReceiver->SendPacket(&nmsg,sizeof(nmsg));
	}
}

Handler_CG_GUILD_IMPL( CG_GUILD_WITHDRAW_SYN )
{
	MSG_CG_GUILD_WITHDRAW_SYN * pMsg = (MSG_CG_GUILD_WITHDRAW_SYN *)pRecvMsg;

	Player * pPlayer = PlayerManager::Instance()->FindPlayer( pMsg->m_dwKey );
	ASSERT( pPlayer );
	if( !pPlayer ) return ;
	if( !pPlayer->GetField() ) return;

	RC::eGUILD_RESULT rt = g_GameGuildManager.WithdrawMember( pPlayer );
	if( rt != RC::RC_GUILD_SUCCESS )
	{
		MSG_CG_GUILD_WITHDRAW_NAK nmsg;
		nmsg.m_byErrorCode = rt;
		pPlayer->SendPacket(&nmsg,sizeof(nmsg));
	}
}

Handler_CG_GUILD_IMPL( CG_GUILD_TRANSFER_POSITION_SYN )
{
}
Handler_CG_GUILD_IMPL( CG_GUILD_GRANT_LOW_POSITION_SYN )
{
}
Handler_CG_GUILD_IMPL( CG_GUILD_DROP_LOW_POSITION_SYN )
{
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -