📄 handler_wz.cpp
字号:
#include "StdAfx.h"
#include ".\handler_WZ.h"
#include "WorldServer.h"
#include "GuildServerSession.h"
#include "ServerSessionManager.h"
#include <PacketStruct_CW.h>
#include <PacketStruct_WZ.h>
#include "WorldGuildManager.h"
#include "WorldGuild.h"
#include "WorldGuildMember.h"
#include "UserManager.h"
#include "User.h"
// 辨靛 沥焊 眠啊
VOID Handler_WZ::OnWZ_GUILD_INFO_CMD( GuildServerSession *pGuildServer, MSG_BASE *pMsg, WORD wSize )
{
MSG_WZ_GUILD_INFO_CMD *pRecvMsg = (MSG_WZ_GUILD_INFO_CMD*)pMsg;
g_WorldGuildManager.OnAddGuild( pRecvMsg->m_GuildInfo, pRecvMsg->m_MemberInfo, pRecvMsg->m_Count );
// 柯扼牢 糕滚啊 乐促绰 娟扁!
User *pUser;
for(BYTE i=0;i<pRecvMsg->m_Count; i++)
{
if( pRecvMsg->m_MemberInfo[i].m_byIsLogin != 0 )
{
pUser = UserManager::Instance()->FindUserByCharGuid( pRecvMsg->m_MemberInfo[i].m_CharGuid );
if( !pUser )
{
MessageOut( eCRITICAL_LOG, "WZ_GUILD_INFO Error - No Online Member[%s][CharGuid:%u]!!", pRecvMsg->m_MemberInfo[i].m_tszCharName, pRecvMsg->m_MemberInfo[i].m_CharGuid );
continue;
}
pUser->SetGuildGuid( pRecvMsg->m_GuildInfo.m_GuildGuid ); // 技~泼~!!!
// 辨靛俊 柯扼牢 糕滚肺 眠啊
g_WorldGuildManager.OnLoginGulid( pUser, pRecvMsg->m_GuildInfo.m_GuildGuid );
}
}
MessageOut( eFULL_LOG, "WZ_GUILD_INFO(%s/%u)", pRecvMsg->m_GuildInfo.m_tszGuildName, pRecvMsg->m_GuildInfo.m_GuildGuid );
}
VOID Handler_WZ::OnWZ_GUILD_DESTROY_GUILD_CMD( GuildServerSession *pGuildServer, MSG_BASE *pMsg, WORD wSize )
{
MSG_WZ_GUILD_DESTROY_GUILD_CMD* pRecvMsg = (MSG_WZ_GUILD_DESTROY_GUILD_CMD*)pMsg;
MessageOut( eFULL_LOG, "WZ_GUILD_DESTROY(%s/%u)", g_WorldGuildManager.FindGuild( pRecvMsg->m_GuildGuid )->GetGuildName(), pRecvMsg->m_GuildGuid );
g_WorldGuildManager.OnDestroyGuild( pRecvMsg->m_GuildGuid );
}
VOID Handler_WZ::OnWZ_GUILD_JOIN_GUILD_CMD( GuildServerSession *pGuildServer, MSG_BASE *pMsg, WORD wSize )
{
MSG_WZ_GUILD_JOIN_GUILD_CMD* pRecvMsg = (MSG_WZ_GUILD_JOIN_GUILD_CMD*)pMsg;
GUILD_MEMBER_INFO memberInfo;
memcpy( &memberInfo, &pRecvMsg->m_Info, sizeof(BASE_GUILD_MEMBER_INFO) );
memberInfo.m_byIsLogin = 1; // 寸楷洒 啊涝且 荐 乐栏妨搁 柯扼牢
g_WorldGuildManager.OnJoinGuild( pRecvMsg->m_GuildGuid, memberInfo );
WorldGuild* pGuild = g_WorldGuildManager.FindGuild( pRecvMsg->m_GuildGuid );
if( !pGuild )
{
MessageOut( eCRITICAL_LOG, "GUILD_JOIN Error - No Guild[GuildGuid:%u]", pRecvMsg->m_GuildGuid );
return;
}
User *pUser = UserManager::Instance()->FindUser( pRecvMsg->m_Info.m_tszCharName );
if( !pUser )
{
MessageOut( eCRITICAL_LOG, "GUILD_JOIN Error - User[%s][CharGuid:%u] Already Logout", pRecvMsg->m_Info.m_tszCharName, pRecvMsg->m_Info.m_CharGuid );
return;
}
/*
// 促弗 糕滚甸 吝 柯扼牢牢 糕滚甸俊霸 捞 荤角阑 舅妨霖促
MSG_CW_GUILD_MEMBER_JOIN_BRD brdMsg;
brdMsg.m_Member.m_byClass = pRecvMsg->m_Info.m_byClass;
brdMsg.m_Member.m_byOnline = 1; // 货肺 啊涝沁栏聪 构...
brdMsg.m_Member.m_byPosition = pRecvMsg->m_Info.m_byPosition;
brdMsg.m_Member.m_LV = pRecvMsg->m_Info.m_LV;
memcpy( brdMsg.m_Member.m_tszCharName, pRecvMsg->m_Info.m_tszCharName, sizeof(brdMsg.m_Member.m_tszCharName) );
pGuild->SendAll( (BYTE*)&brdMsg, sizeof(MSG_CW_GUILD_MEMBER_JOIN_BRD) );
*/
// 促弗 糕滚甸 吝 柯扼牢牢 糕滚甸阑 舅妨霖促
MSG_CW_GUILD_MEMBER_BRD sendMsg;
sendMsg.m_Count = 0;
pGuild->GetMemberPacketInfo( sendMsg.m_Count, sendMsg.m_Member );
pUser->Send( (BYTE*)&sendMsg, sendMsg.GetSize() );
MessageOut( eFULL_LOG, "WZ_GUILD_JOIN(%s/%u) - (%s)", g_WorldGuildManager.FindGuild( pRecvMsg->m_GuildGuid )->GetGuildName(),
pRecvMsg->m_GuildGuid,
pRecvMsg->m_Info.m_tszCharName );
}
VOID Handler_WZ::OnWZ_GUILD_WITHDRAW_GUILD_CMD( GuildServerSession *pGuildServer, MSG_BASE *pMsg, WORD wSize )
{
MSG_WZ_GUILD_WITHDRAW_GUILD_CMD* pRecvMsg = (MSG_WZ_GUILD_WITHDRAW_GUILD_CMD*)pMsg;
// 促弗 糕滚甸 吝 柯扼牢牢 糕滚甸俊霸 捞 荤角阑 舅妨霖促
WorldGuild* pGuild = g_WorldGuildManager.FindGuild( pRecvMsg->m_GuildGuid );
if( !pGuild )
{
MessageOut( eCRITICAL_LOG, "GUILD_JOIN Error - No Guild[GuildGuid:%u]", pRecvMsg->m_GuildGuid );
return;
}
/*
User *pUser = UserManager::Instance()->FindUserByCharGuid( pRecvMsg->m_CharGuid );
if( pUser )
{
MSG_CW_GUILD_MEMBER_WITHDRAW_BRD brdMsg;
memset( brdMsg.m_tszCharName, 0, sizeof(TCHAR) * MAX_CHARNAME_LENGTH );
_tcsncpy( brdMsg.m_tszCharName, pUser->GetCharName().c_str(), MAX_CHARNAME_LENGTH - 1 );
pGuild->SendAll( (BYTE*)&brdMsg, sizeof(MSG_CW_GUILD_MEMBER_WITHDRAW_BRD) );
}
*/
g_WorldGuildManager.OnWithdrawGuild( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid );
MessageOut( eFULL_LOG, "WZ_GUILD_WITHDRAW(%s/%u) - (%u)", g_WorldGuildManager.FindGuild( pRecvMsg->m_GuildGuid )->GetGuildName(),
pRecvMsg->m_GuildGuid,
pRecvMsg->m_CharGuid );
}
VOID Handler_WZ::OnWZ_GUILD_LOGIN_CHAR_CMD( GuildServerSession *pGuildServer, MSG_BASE *pMsg, WORD wSize )
{
MSG_WZ_GUILD_LOGIN_CHAR_CMD* pRecvMsg = (MSG_WZ_GUILD_LOGIN_CHAR_CMD*)pMsg;
User *pUser = UserManager::Instance()->FindUserByCharGuid( pRecvMsg->m_CharGuid );
if( !pUser )
{
MessageOut( eCRITICAL_LOG, "WZ_GUILD_LOGIN_CHAR Error - [CharGuid:%u]酒流 World辑滚俊 绝澜!!!", pRecvMsg->m_CharGuid );
return;
}
WorldGuild *pGuild = g_WorldGuildManager.FindGuild( pRecvMsg->m_GuildGuid );
if( !pGuild)
{
MSG_WZ_GUILD_SELECT_SYN ToGuildMsg;
ToGuildMsg.m_dwKey = pUser->GetGUID();
ToGuildMsg.m_GuildGuid = pRecvMsg->m_GuildGuid;
ToGuildMsg.m_CharGuid = pUser->GetCharGuid();
pGuildServer->Send( (BYTE*)&ToGuildMsg, sizeof(MSG_WZ_GUILD_SELECT_SYN) );
MessageOut( eFULL_LOG, "LOGIN_CHAR_CMD 辨靛沥焊[%u] 绝绢辑 夸没[CharGuid:%u]", pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid );
return;
}
WorldGuildMember *pMember = pGuild->FindMember( pRecvMsg->m_CharGuid );
if( !pMember)
{
MessageOut( eCRITICAL_LOG, "WZ_GUILD_LOGIN_CHAR Member 绝澜!" );
return;
}
pMember->SetOnline();
pUser->SetGuildGuid( pRecvMsg->m_GuildGuid ); // 技~泼~!!!!
// 辨靛俊 柯扼牢 糕滚肺 眠啊
pGuild->AddOnlineMember( pUser, pRecvMsg->m_CharGuid );
/*
// 辨靛狼 葛电 柯扼牢 糕滚甸俊霸 柯扼牢 咯何甫 舅妨霖促
MSG_CW_GUILD_LOGIN_CHAR_BRD sendMsg;
memcpy( sendMsg.m_tszCharName, pMember->GetCharName(), sizeof(sendMsg.m_tszCharName) );
pGuild->SendAll( (BYTE*)&sendMsg, sizeof(MSG_CW_GUILD_LOGIN_CHAR_BRD) );
// 捞 仇俊霸绰 辨靛 沥焊甫 烹掳肺 霖促
MSG_CW_GUILD_MEMBER_BRD memberMsg;
memberMsg.m_Count = pGuild->GetMemberNum();
if( memberMsg.m_Count > 0 )
{
GUILDMEMBER_HASH_ITR iter;
int nCount=0;
pGuild->GetMemberPacketInfo( memberMsg.m_Count, memberMsg.m_Member );
for( BYTE i = 0; i< memberMsg.m_Count; i++ )
{
pUser = UserManager::Instance()->FindUser( memberMsg.m_Member[i].m_tszCharName );
if( !pUser )
{
// 柯扼牢 酒囱 辨靛 糕滚
continue;
}
pUser->Send( (BYTE*)&memberMsg, sizeof(MSG_CW_GUILD_MEMBER_BRD) );
}
}
*/
MessageOut( eFULL_LOG, "GUILD_LOGIN_CHAR(%s/%u)", pMember->GetMemberInfo().m_tszCharName, pRecvMsg->m_CharGuid );
}
VOID Handler_WZ::OnWZ_GUILD_LOGOUT_CHAR_CMD( GuildServerSession *pGuildServer, MSG_BASE *pMsg, WORD wSize )
{
MSG_WZ_GUILD_LOGOUT_CHAR_CMD* pRecvMsg = (MSG_WZ_GUILD_LOGOUT_CHAR_CMD*)pMsg;
WorldGuild *pGuild = g_WorldGuildManager.FindGuild( pRecvMsg->m_GuildGuid );
if( !pGuild)
{
MessageOut( eCRITICAL_LOG, "WZ_GUILD_LOGOUT_CHAR Guild 绝澜!" );
return;
}
WorldGuildMember *pMember = pGuild->FindMember( pRecvMsg->m_CharGuid );
if( !pMember)
{
MessageOut( eCRITICAL_LOG, "WZ_GUILD_LOGOUT_CHAR Member 绝澜!" );
return;
}
pMember->SetOnline( FALSE );
pGuild->RemoveOnlineMember( pRecvMsg->m_CharGuid );
/* // 辨靛狼 葛电 柯扼牢 糕滚甸俊霸 柯扼牢 咯何甫 舅妨霖促
MSG_CW_GUILD_LOGOUT_CHAR_BRD sendMsg;
memcpy( sendMsg.m_tszCharName, pMember->GetCharName(), sizeof(sendMsg.m_tszCharName) );
pGuild->SendAll( (BYTE*)&sendMsg, sizeof(MSG_CW_GUILD_LOGOUT_CHAR_BRD) );
*/
MessageOut( eFULL_LOG, "GUILD_LOGOUT_CHAR(%s/%u)", pMember->GetMemberInfo().m_tszCharName, pRecvMsg->m_CharGuid );
}
// 辨靛 辑滚 沥焊 汗备 - 菩哦 郴侩捞 WZ_GUILD_INFO_CMD客 肯傈 悼老窍骨肺 沥焊 技泼 规过档 肯傈 悼老
VOID Handler_WZ::OnWZ_GUILD_SELECT_ACK( GuildServerSession *pGuildServer, MSG_BASE *pMsg, WORD wSize )
{
MSG_WZ_GUILD_SELECT_ACK *pRecvMsg = (MSG_WZ_GUILD_SELECT_ACK*)pMsg;
g_WorldGuildManager.OnAddGuild( pRecvMsg->m_GuildInfo, pRecvMsg->m_MemberInfo, pRecvMsg->m_Count );
// 柯扼牢 糕滚啊 乐促绰 娟扁!
User *pUser;
for(BYTE i=0;i<pRecvMsg->m_Count; i++)
{
if( pRecvMsg->m_MemberInfo[i].m_byIsLogin != 0 )
{
pUser = UserManager::Instance()->FindUserByCharGuid( pRecvMsg->m_MemberInfo[i].m_CharGuid );
if( !pUser )
{
MessageOut( eCRITICAL_LOG, "WZ_GUILD_SELECT_ACK Error - No Online Member[%s][CharGuid:%u]!!", pRecvMsg->m_MemberInfo[i].m_tszCharName, pRecvMsg->m_MemberInfo[i].m_CharGuid );
continue;
}
pUser->SetGuildGuid( pRecvMsg->m_GuildInfo.m_GuildGuid ); // 技~泼~!!!
// 辨靛俊 柯扼牢 糕滚肺 眠啊
g_WorldGuildManager.OnLoginGulid( pUser, pRecvMsg->m_GuildInfo.m_GuildGuid );
}
}
MessageOut( eFULL_LOG, "WZ_GUILD_SELECT_ACK(%s/%u)", pRecvMsg->m_GuildInfo.m_tszGuildName, pRecvMsg->m_GuildInfo.m_GuildGuid );
}
// 辨靛 辑滚 沥焊 汗备 角菩 - 咯扁辑 漂喊茄 累诀篮 窍瘤 臼瘤父, 捞 惑炔俊 吧赴 荤侩磊绰 捞力 辨靛 沥焊甫 掘阑 荐 绝促
VOID Handler_WZ::OnWZ_GUILD_SELECT_NAK( GuildServerSession *pGuildServer, MSG_BASE *pMsg, WORD wSize )
{
MSG_WZ_GUILD_SELECT_NAK* pRecvMsg = (MSG_WZ_GUILD_SELECT_NAK*)pMsg;
MessageOut( eFULL_LOG, "WZ_GUILD_SELECT_NAK[dwKey:%u]", pRecvMsg->m_dwKey );
}
VOID Handler_WZ::OnSERVERCOMMON_HEARTBEAT( GuildServerSession *pGuildServer, MSG_BASE *pMsg, WORD wSize )
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -