CN1602 is the local client. KR is the official tree with unpacked Data, System, and Sound. Packed .wpk files stay off git.
2057 lines
79 KiB
C++
2057 lines
79 KiB
C++
#include "stdafx.h"
|
|
#include "Handler_Guild.DbpToGuild.h"
|
|
|
|
#include <PacketStruct_DZ.h>
|
|
#include <PacketStruct_GZ.h>
|
|
#include <PacketStruct_WZ.h>
|
|
#include <PacketStruct_MZ.h>
|
|
|
|
#include "Services/DominationManager.h"
|
|
|
|
// GUILD
|
|
#include "Services/Guild/GuildManager.h"
|
|
#include "Services/Guild/Guild.h"
|
|
#include "Services/Guild/GuildMember.h"
|
|
#include "Services/Guild/GuildRelation.h"
|
|
#include "Services/Guild/GuildSmallContentEntry.h"
|
|
|
|
#include "QueryObjects/DBHandler.h"
|
|
#include "PacketHandler/Handler_Guild.GuildToDbp.h"
|
|
#include <Services/GuildPointSystem/GuildPointSystem.h>
|
|
|
|
#ifdef _NA_003923_20120130_GUILD_RENEWAL
|
|
#include "GuildInGameLog.h"
|
|
#endif
|
|
|
|
#ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION
|
|
#include "DominationInfoParser.h"
|
|
#endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION
|
|
//==================================================================================================
|
|
|
|
BOOST_STATIC_ASSERT(RC::RC_GUILD_RESULT_COUNTS <= UCHAR_MAX);
|
|
|
|
//==================================================================================================
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CREATE_ACK * pRecvMsg = (MSG_DZ_GUILD_CREATE_ACK *)pMsg;
|
|
|
|
RC::eGUILD_RESULT rc =
|
|
g_GuildManager.CreateGuild(
|
|
pRecvMsg->m_GuildGuid,
|
|
pRecvMsg->m_szGuildName,
|
|
pRecvMsg->m_byCreateCorpsNum,
|
|
pRecvMsg->m_MasterCharGuid,
|
|
pRecvMsg->m_szMasterName,
|
|
pRecvMsg->m_MasterDuty,
|
|
pRecvMsg->m_byMasterClass,
|
|
pRecvMsg->m_MasterLevel,
|
|
pRecvMsg->m_byChaoState,
|
|
pRecvMsg->m_nGuildPenaltyTime,
|
|
pRecvMsg->m_nDestroyRequestTime,
|
|
pRecvMsg->m_nMasterChangeTime
|
|
);
|
|
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
MSG_GZ_GUILD_CREATE_NAK nakMsg;
|
|
nakMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMsg.m_byErrorCode = rc;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg));
|
|
SUNLOG( eCRITICAL_LOG, "[Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_ACK)] ?��!!, ���Guid = %u, ������?�� = %s",
|
|
pRecvMsg->m_GuildGuid, pRecvMsg->m_szMasterName );
|
|
return;
|
|
}
|
|
|
|
MSG_GZ_GUILD_CREATE_ACK amsg;
|
|
amsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
g_GuildManager.SerializeGameGuildInfo( pRecvMsg->m_GuildGuid, amsg.m_GameGuildInfo, SERIALIZE_LOAD );
|
|
g_GuildManager.GetGuildBaseMemberInfo( pRecvMsg->m_GuildGuid, pRecvMsg->m_MasterCharGuid, amsg.m_BaseMemberInfo );
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &amsg, sizeof(amsg));
|
|
|
|
MSG_WZ_GUILD_CREATE_CMD cmsg;
|
|
g_GuildManager.SerializeBaseGuildInfo( pRecvMsg->m_GuildGuid, cmsg.m_WorldGuildInfo, SERIALIZE_LOAD );
|
|
g_GuildManager.GetGuildBaseMemberInfo( pRecvMsg->m_GuildGuid, pRecvMsg->m_MasterCharGuid, cmsg.m_BaseMemberInfo );
|
|
g_DBProxyServer.SendToWorldServer(&cmsg, sizeof(cmsg));
|
|
|
|
#ifdef _NA004034_20120102_GUILD_POINT_SYSTEM
|
|
g_GuildPointSystem.Create(pRecvMsg->m_GuildGuid);
|
|
#endif //_NA004034_20120102_GUILD_POINT_SYSTEM
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_GUILD_DESTROY_ACK* receive_msg = static_cast<MSG_DZ_GUILD_DESTROY_ACK*>(pMsg);
|
|
|
|
#ifdef _USING_GUILD_DESTROY_LOGGING
|
|
SUNLOG(eCRITICAL_LOG,
|
|
_T("|����?���|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_ACK)|MSG_DZ_GUILD_DESTROY_ACK ����|GuildGuid:%d, DestroyTime:%u|"),
|
|
receive_msg->m_GuildGuid,
|
|
receive_msg->m_dwDestroyTime);
|
|
#endif // _USING_GUILD_DESTROY_LOGGING
|
|
|
|
GuildSmallContentEntry::GuildPenalty::SetGuildDeleteWaitMap(
|
|
receive_msg->m_GuildGuid, receive_msg->m_dwDestroyTime);
|
|
GuildSmallContentEntry::RelationSystem::RemainRelationDestroy(receive_msg->m_GuildGuid);
|
|
|
|
MSG_GZ_GUILD_DESTROY_WAIT_BRD brd_msg;
|
|
brd_msg.m_dwKey = receive_msg->m_dwKey;
|
|
brd_msg.m_GuildGuid = receive_msg->m_GuildGuid;
|
|
|
|
#ifdef _USING_GUILD_DESTROY_LOGGING
|
|
SUNLOG(eCRITICAL_LOG,
|
|
_T("|����?���|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_ACK)|MSG_GZ_GUILD_DESTROY_WAIT_BRD ����|Key:%u, GuildGuid:%d|"),
|
|
brd_msg.m_dwKey,
|
|
brd_msg.m_GuildGuid);
|
|
#endif // _USING_GUILD_DESTROY_LOGGING
|
|
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brd_msg, sizeof(brd_msg));
|
|
|
|
MSG_WZ_GUILD_DESTROY_WAIT_CMD cmd_msg;
|
|
cmd_msg.m_dwKey = receive_msg->m_dwKey;
|
|
cmd_msg.m_GuildGuid = receive_msg->m_GuildGuid;
|
|
|
|
#ifdef _USING_GUILD_DESTROY_LOGGING
|
|
SUNLOG(eCRITICAL_LOG,
|
|
_T("|����?���|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_ACK)|MSG_WZ_GUILD_DESTROY_WAIT_CMD ����|Key:%u, GuildGuid:%d|"),
|
|
cmd_msg.m_dwKey,
|
|
cmd_msg.m_GuildGuid);
|
|
#endif // _USING_GUILD_DESTROY_LOGGING
|
|
|
|
g_DBProxyServer.SendToWorldServer(&cmd_msg, sizeof(cmd_msg));
|
|
|
|
#ifdef _NA004034_20120102_GUILD_POINT_SYSTEM
|
|
g_GuildPointSystem.Destroy(receive_msg->m_GuildGuid);
|
|
#endif //_NA004034_20120102_GUILD_POINT_SYSTEM
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_JOIN_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_JOIN_ACK* pRecvMsg = (MSG_DZ_GUILD_JOIN_ACK *)pMsg;
|
|
|
|
// 0,0,0�� ���� ��?�� �?� ���� ������ ���?� ������ �?���.
|
|
// ���?� �?��� �?� �?�.
|
|
RC::eGUILD_RESULT rt = g_GuildManager.JoinGuild( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_CharGuid, pRecvMsg->m_tszCharName, pRecvMsg->m_Duty, pRecvMsg->m_byClass, pRecvMsg->m_Level, pRecvMsg->m_byChaoState );
|
|
if( rt != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
MSG_GZ_GUILD_JOIN_NAK nakMsg;
|
|
nakMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
strncpy(nakMsg.m_szTargetCharName, pRecvMsg->m_tszCharName,
|
|
_countof(nakMsg.m_szTargetCharName));
|
|
nakMsg.m_szTargetCharName[_countof(nakMsg.m_szTargetCharName) - 1] = '\0';
|
|
nakMsg.m_byErrorCode = rt;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg));
|
|
return;
|
|
}
|
|
|
|
GuildMember* pMember = g_GuildManager.FindGuildMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid );
|
|
if( !pMember ) return;
|
|
|
|
//���?����� ������.
|
|
MSG_GZ_GUILD_JOIN_BRD msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
pMember->SerializeMemberInfo( msg.m_MemberInfo, SERIALIZE_LOAD );
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg));
|
|
|
|
//���?���� ������.
|
|
MSG_WZ_GUILD_JOIN_GUILD_CMD cmsg;
|
|
cmsg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
pMember->SerializeBaseMemberInfo( cmsg.m_Info, SERIALIZE_LOAD );
|
|
g_DBProxyServer.SendToWorldServer(&cmsg, sizeof(cmsg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WITHDRAW_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_WITHDRAW_ACK * pRecvMsg = (MSG_DZ_GUILD_WITHDRAW_ACK *)pMsg;
|
|
|
|
TCHAR szCharName[MAX_CHARNAME_LENGTH+1];
|
|
g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid, szCharName, MAX_CHARNAME_LENGTH );
|
|
szCharName[MAX_CHARNAME_LENGTH] = '\0';
|
|
|
|
RC::eGUILD_RESULT rc = g_GuildManager.LeaveGuild( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid );
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
SUNLOG( eCRITICAL_LOG, "[Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WITHDRAW_ACK)] ?��, ���Guid = %d, ��?Guid = %d, rc = %d",
|
|
pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid, rc );
|
|
return;
|
|
}
|
|
|
|
MSG_GZ_GUILD_WITHDRAW_BRD msgBRD;
|
|
msgBRD.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgBRD.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msgBRD.m_CharGuid = pRecvMsg->m_CharGuid;
|
|
strncpy(msgBRD.m_szCharName, szCharName, _countof(msgBRD.m_szCharName));
|
|
msgBRD.m_szCharName[_countof(msgBRD.m_szCharName) - 1] = '\0';
|
|
msgBRD.m_MemberPenaltyTime = pRecvMsg->m_MemberPenaltyTime;
|
|
msgBRD.m_byPenaltyType = pRecvMsg->m_byPenaltyType;
|
|
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgBRD, sizeof(msgBRD));
|
|
|
|
// Send To WorldServer
|
|
MSG_WZ_GUILD_WITHDRAW_GUILD_CMD msgCMD;
|
|
msgCMD.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msgCMD.m_CharGuid = pRecvMsg->m_CharGuid;
|
|
g_DBProxyServer.SendToWorldServer(&msgCMD, sizeof(msgCMD));
|
|
|
|
#ifdef _NA004034_20120102_GUILD_POINT_SYSTEM
|
|
;{
|
|
DWORD guid = pRecvMsg->m_GuildGuid;
|
|
DWORD uuid = pRecvMsg->m_CharGuid;
|
|
|
|
g_GuildPointSystem.Quit(guid, uuid);
|
|
};
|
|
#endif //_NA004034_20120102_GUILD_POINT_SYSTEM
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_SELECT_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_SELECT_ACK* pRecvMsg = (MSG_DZ_GUILD_SELECT_ACK*)pMsg;
|
|
|
|
//�?��?� SELECT ?���?�...
|
|
if( pRecvMsg->m_bySelectType == 1 )
|
|
{
|
|
// �?��?� select ack�� �??� ���� ��� ������ �?� ��� ������ ���?� ���?�. ��?������ ���� �����.
|
|
g_GuildManager.SerializeGuildInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_GuildInfo, SERIALIZE_STORE );
|
|
g_GuildManager.SerializeCorpsInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_CorpsTotalInfo, SERIALIZE_STORE );
|
|
g_GuildManager.SerializeServerMemberTotalInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_MemberTotalInfo, SERIALIZE_STORE );
|
|
g_GuildManager.Login( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_LoginCharGuid );
|
|
g_GuildManager.SetGuildNotice( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_szGuildNotice );
|
|
if (GuildSmallContentEntry::GuildPenalty::IsGuildDestroyWaitState(
|
|
pRecvMsg->m_GuildInfo.m_GuildGuid)) {
|
|
return;
|
|
}
|
|
|
|
MSG_GZ_GUILD_LOGIN_CHAR_BRD brdMsg;
|
|
brdMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
g_GuildManager.SerializeGuildInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, brdMsg.m_GuildInfo, SERIALIZE_LOAD );
|
|
g_GuildManager.SerializeCorpsInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, brdMsg.m_CorpsTotalInfo, SERIALIZE_LOAD );
|
|
g_GuildManager.GetGuildMemberInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_LoginCharGuid, brdMsg.m_MemberInfo );
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMsg, sizeof(brdMsg));
|
|
|
|
MSG_WZ_GUILD_LOGIN_CHAR_CMD cmd;
|
|
g_GuildManager.GetWorldGuildInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, cmd.m_WorldGuildInfo );
|
|
g_GuildManager.GetGuildBaseMemberInfo( pRecvMsg->m_GuildInfo.m_GuildGuid, pRecvMsg->m_LoginCharGuid, cmd.m_BaseMemberInfo );
|
|
g_DBProxyServer.SendToWorldServer(&cmd, sizeof(cmd));
|
|
}
|
|
else
|
|
{
|
|
// NOTE("�?���? ���� �?��?� ���� ���� ��? ����")
|
|
SUNLOG(eCRITICAL_LOG, _T("|["__FUNCTION__"]|������ (%d), ���Guid=%u|"),
|
|
pRecvMsg->m_bySelectType, pRecvMsg->m_GuildInfo.m_GuildGuid);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CREATE_NAK * pRecvMsg = (MSG_DZ_GUILD_CREATE_NAK *)pMsg;
|
|
|
|
MSG_GZ_GUILD_CREATE_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_DESTROY_NAK * pRecvMsg = (MSG_DZ_GUILD_DESTROY_NAK *)pMsg;
|
|
|
|
MSG_GZ_GUILD_DESTROY_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_JOIN_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_JOIN_NAK * pRecvMsg = (MSG_DZ_GUILD_JOIN_NAK *)pMsg;
|
|
|
|
MSG_GZ_GUILD_JOIN_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
strncpy(msg.m_szTargetCharName, pRecvMsg->m_tszCharName, _countof(msg.m_szTargetCharName));
|
|
msg.m_szTargetCharName[_countof(msg.m_szTargetCharName) - 1] = '\0';
|
|
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WITHDRAW_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_WITHDRAW_NAK * pRecvMsg = (MSG_DZ_GUILD_WITHDRAW_NAK *)pMsg;
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_SELECT_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_GUILD_SELECT_NAK* recv_msg = static_cast<MSG_DZ_GUILD_SELECT_NAK*>(pMsg);
|
|
// NOTE: f110627.2L, don't process this acknowledgement
|
|
SUNLOG(eCRITICAL_LOG, _T("|["__FUNCTION__"]|GuildGuid=%u|"), recv_msg->m_GuildGuid);
|
|
}
|
|
|
|
// ���� ���
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_KICKPLAYER_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_KICKPLAYER_ACK* pRecvMsg = (MSG_DZ_GUILD_KICKPLAYER_ACK*)pMsg;
|
|
|
|
TCHAR szCharName[MAX_CHARNAME_LENGTH+1];
|
|
g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid, szCharName, MAX_CHARNAME_LENGTH );
|
|
szCharName[MAX_CHARNAME_LENGTH] = '\0';
|
|
|
|
RC::eGUILD_RESULT rc = g_GuildManager.KickMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_OperCharGuid, pRecvMsg->m_TargetCharGuid );
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
SUNLOG( eCRITICAL_LOG, "[Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_KICKPLAYER_ACK)] ?��, ���Guid = %u, ��?Guid = %u, ��� = %d",
|
|
pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid, rc );
|
|
return;
|
|
}
|
|
|
|
MSG_GZ_GUILD_KICKPLAYER_BRD brdACK;
|
|
brdACK.m_dwKey = pRecvMsg->m_dwKey;
|
|
brdACK.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
brdACK.m_CharGuid = pRecvMsg->m_TargetCharGuid;
|
|
strncpy( brdACK.m_ptszCharName, szCharName, MAX_CHARNAME_LENGTH );
|
|
brdACK.m_ptszCharName[MAX_CHARNAME_LENGTH]='\0';
|
|
brdACK.m_GuildPenaltyTime = pRecvMsg->m_GuildPenaltyTime;
|
|
brdACK.m_MemberPenaltyTime = pRecvMsg->m_MemberPenaltyTime;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdACK, sizeof(brdACK));
|
|
|
|
MSG_WZ_GUILD_KICK_PLAYER_CMD msgCMD;
|
|
msgCMD.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msgCMD.m_KickCharGuid = pRecvMsg->m_TargetCharGuid;
|
|
g_DBProxyServer.SendToWorldServer(&msgCMD, sizeof(msgCMD));
|
|
|
|
#ifdef _NA004034_20120102_GUILD_POINT_SYSTEM
|
|
;{
|
|
DWORD guid = pRecvMsg->m_GuildGuid;
|
|
DWORD uuid = pRecvMsg->m_TargetCharGuid;
|
|
|
|
g_GuildPointSystem.Quit(guid, uuid);
|
|
};
|
|
#endif //_NA004034_20120102_GUILD_POINT_SYSTEM
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_KICKPLAYER_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_KICKPLAYER_NAK* pRecvMsg = (MSG_DZ_GUILD_KICKPLAYER_NAK*)pMsg;
|
|
}
|
|
|
|
// ��� ���� ����
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_NOTICE_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_CHANGE_NOTICE_ACK, pRecvMsg, pMsg);
|
|
|
|
g_GuildManager.SetGuildNotice( pRecvMsg->m_GuildGuid, pRecvMsg->m_tszGuildNotice );
|
|
|
|
MSG_WZ_GUILD_CHANGE_NOTICE_CMD msg;
|
|
msg.m_eNoticeType = eGUILD_NOTICE_GUILD;
|
|
msg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msg.m_wNoticeLen = (WORD)_tcslen(pRecvMsg->m_tszGuildNotice);
|
|
strncpy(msg.m_szGuildNotice, pRecvMsg->m_tszGuildNotice, MAX_GUILDNOTICE_LENGTH );
|
|
msg.m_szGuildNotice[MAX_GUILDNOTICE_LENGTH] = '\0';
|
|
g_DBProxyServer.SendToWorldServer(&msg, msg.GetSize());
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_NOTICE_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_CHANGE_NOTICE_NAK, pRecvMsg, pMsg);
|
|
|
|
MSG_WZ_GUILD_CHANGE_NOTICE_NAK msg;
|
|
//msg.m_OperCharGuid = pRecvMsg->m_OperCharGuid;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToWorldServer(&msg, sizeof(msg));
|
|
}
|
|
|
|
////////////////
|
|
// ��� ����? ����
|
|
|
|
// UP ����
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DONATE_UP_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_DONATE_UP_ACK *pRecvMsg = (MSG_DZ_GUILD_DONATE_UP_ACK*)pMsg;
|
|
|
|
RC::eGUILD_RESULT rc = g_GuildManager.DonateUP( pRecvMsg->m_GuildGuid, pRecvMsg->m_TotalUP, pRecvMsg->m_OperCharGuid, pRecvMsg->m_DonateUP );
|
|
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
SUNLOG( eCRITICAL_LOG, "[Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DONATE_UP_ACK)] Error! GuildGuid = %u, UP = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_TotalUP );
|
|
return;
|
|
}
|
|
|
|
MSG_GZ_GUILD_DONATE_UP_BRD sendMsg;
|
|
sendMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
sendMsg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
sendMsg.m_TotalUP = pRecvMsg->m_TotalUP;
|
|
sendMsg.m_DonateUP = pRecvMsg->m_DonateUP;
|
|
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DONATE_UP_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_DONATE_UP_NAK *pRecvMsg = (MSG_DZ_GUILD_DONATE_UP_NAK*)pMsg;
|
|
|
|
MSG_GZ_GUILD_DONATE_UP_NAK nakMsg;
|
|
nakMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMsg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg));
|
|
}
|
|
|
|
// UP->GP ��?
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CONVERT_UP2GP_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CONVERT_UP2GP_ACK *pRecvMsg = (MSG_DZ_GUILD_CONVERT_UP2GP_ACK*)pMsg;
|
|
|
|
g_GuildManager.SetPoint( pRecvMsg->m_GuildGuid, pRecvMsg->m_TotalGP, pRecvMsg->m_RemainUP );
|
|
|
|
MSG_GZ_GUILD_CONVERT_UP2GP_BRD sendMsg;
|
|
sendMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
sendMsg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
sendMsg.m_RemainUP = pRecvMsg->m_RemainUP;
|
|
sendMsg.m_TotalGP = pRecvMsg->m_TotalGP;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CONVERT_UP2GP_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CONVERT_UP2GP_NAK *pRecvMsg = (MSG_DZ_GUILD_CONVERT_UP2GP_NAK*)pMsg;
|
|
MSG_GZ_GUILD_CONVERT_UP2GP_NAK nakMsg;
|
|
nakMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMsg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg) );
|
|
}
|
|
|
|
#ifdef __NA_000000_20070528_TAIWAN_GUILD_PVP
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHUNTING_PVP_RESULT_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CHUNTING_PVP_RESULT_ACK * pRecvMsg = (MSG_DZ_GUILD_CHUNTING_PVP_RESULT_ACK *)pMsg;
|
|
|
|
MSG_GZ_GUILD_CHUNTING_PVP_RESULT_BRD msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msg.m_PVPInfo = pRecvMsg->m_PVPInfo;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg));
|
|
|
|
// Send To WorldServer
|
|
MSG_WZ_GUILD_CHUNTING_PVP_RESULT_CMD cmsg;
|
|
cmsg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
cmsg.m_PVPInfo = pRecvMsg->m_PVPInfo;
|
|
pGuildServer->ConnectSessions.SendToWorld( &cmsg, sizeof(cmsg) );
|
|
}
|
|
#endif
|
|
|
|
|
|
|
|
//��� ��� ack
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_DUTY_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CHANGE_DUTY_ACK *pRecvMsg = (MSG_DZ_GUILD_CHANGE_DUTY_ACK *)pMsg;
|
|
|
|
if( !g_GuildManager.ChangeMemberDuty( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid, pRecvMsg->m_eTargetChangeDuty ) )
|
|
{
|
|
//�����?�.. NAK�� ������ ���� ���� �??� ���?��� ����.
|
|
return;
|
|
}
|
|
|
|
|
|
//GAME������ ������.
|
|
MSG_GZ_GUILD_CHANGE_DUTY_BRD gsMSG;
|
|
gsMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
gsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid, gsMSG.m_szTargetCharName, MAX_CHARNAME_LENGTH );
|
|
gsMSG.m_byDuty = pRecvMsg->m_eTargetChangeDuty;
|
|
|
|
//��� ���?����� ��� ������ ������ ��� ������ �?��?
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &gsMSG, sizeof(gsMSG));
|
|
|
|
//���?���� ������.
|
|
MSG_WZ_GUILD_CHANGE_DUTY_CMD wsMSG;
|
|
wsMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
wsMSG.m_TargetCharGuid = pRecvMsg->m_TargetCharGuid;
|
|
wsMSG.m_eGuildDuty = pRecvMsg->m_eTargetChangeDuty;
|
|
g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG));
|
|
|
|
//?����� ����
|
|
g_GuildManager.SetGuildTransaction( pRecvMsg->m_GuildGuid, GUILD_TRANS_CHANGE_DUTY_END );
|
|
}
|
|
|
|
//��� ��� nak
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_DUTY_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CHANGE_DUTY_NAK *pRecvMsg = (MSG_DZ_GUILD_CHANGE_DUTY_NAK *)pMsg;
|
|
|
|
MSG_GZ_GUILD_CHANGE_DUTY_NAK nakMsg;
|
|
nakMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMsg.m_byErrorCode = RC::RC_GUILD_CHANGE_MEMBER_DUTY_FAILED;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &nakMsg, sizeof(nakMsg));
|
|
|
|
//?����� ����
|
|
g_GuildManager.SetGuildTransaction( pRecvMsg->m_GuildGuid, GUILD_TRANS_CHANGE_DUTY_END );
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RIGHT_DELEGATION_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_RIGHT_DELEGATION_ACK* pRecvMsg = (MSG_DZ_GUILD_RIGHT_DELEGATION_ACK*)pMsg;
|
|
|
|
g_GuildManager.ChangeDelegateRight( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetGuid, pRecvMsg->m_DelegateRight );
|
|
|
|
//���?� ������ �����?� ���?? �?� ������ �?�.
|
|
MSG_GZ_GUILD_RIGHT_DELEGATION_BRD gsMsg;
|
|
gsMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
gsMsg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetGuid, gsMsg.m_szTargetCharName, MAX_CHARNAME_LENGTH );
|
|
CopyMemory( gsMsg.m_DelegateRight, pRecvMsg->m_DelegateRight, sizeof(gsMsg.m_DelegateRight) );
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &gsMsg, sizeof(gsMsg));
|
|
}
|
|
|
|
//��� ��� nak
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RIGHT_DELEGATION_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_RIGHT_DELEGATION_NAK* pRecvMsg = (MSG_DZ_GUILD_RIGHT_DELEGATION_NAK*)pMsg;
|
|
|
|
MSG_GZ_GUILD_RIGHT_DELEGATION_NAK nakMsg;
|
|
nakMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMsg.m_byErrorCode = RC::RC_GUILD_CHANGE_MEMBER_RIGHT_FAILED;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &nakMsg, sizeof(nakMsg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_MASTER_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CHANGE_MASTER_ACK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_MASTER_ACK*)pMsg;
|
|
|
|
if( !g_GuildManager.ChangeMaster( pRecvMsg->m_GuildGuid, pRecvMsg->m_OldMasterCharGuid, pRecvMsg->m_NewMasterCharGuid, pRecvMsg->m_nMasterChangeTime ) )
|
|
{
|
|
// ����� ���� �??�.. �??� �� �?� �?��� �����.
|
|
return;
|
|
}
|
|
|
|
//GAME������ ������.
|
|
MSG_GZ_GUILD_CHANGE_MASTER_BRD gsMSG;
|
|
gsMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
gsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
gsMSG.m_OldMasterCharGuid = pRecvMsg->m_OldMasterCharGuid;
|
|
g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_OldMasterCharGuid, gsMSG.m_szOldMasterCharName, MAX_CHARNAME_LENGTH );
|
|
gsMSG.m_NewMasterCharGuid = pRecvMsg->m_NewMasterCharGuid;
|
|
g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_NewMasterCharGuid, gsMSG.m_szNewMasterCharName, MAX_CHARNAME_LENGTH );
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &gsMSG, sizeof(gsMSG));
|
|
|
|
//���?���� ������.
|
|
MSG_WZ_GUILD_CHANGE_MASTER_CMD wsMSG;
|
|
wsMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
wsMSG.m_OldMasterGuid = pRecvMsg->m_OldMasterCharGuid;
|
|
wsMSG.m_NewMasterGuid = pRecvMsg->m_NewMasterCharGuid;
|
|
g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG));
|
|
}
|
|
|
|
//��� ��� nak
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_MASTER_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CHANGE_MASTER_NAK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_MASTER_NAK *)pMsg;
|
|
|
|
MSG_GZ_GUILD_CHANGE_MASTER_NAK nakMsg;
|
|
nakMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMsg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg));
|
|
}
|
|
|
|
// ��� ���� ����
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_CORPS_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CREATE_CORPS_ACK* pRecvMsg = (MSG_DZ_GUILD_CREATE_CORPS_ACK*)pMsg;
|
|
|
|
//����
|
|
RC::eGUILD_RESULT rc = g_GuildManager.CreateCorps( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_TargetCharGuid );
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
MSG_GZ_GUILD_CREATE_CORPS_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = rc;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_CREATE_CORPS_ACK] DB�?���GuildServer?��, ��� = %u, ������ = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum );
|
|
return;
|
|
}
|
|
|
|
GuildMember* pCommander = g_GuildManager.FindGuildMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid );
|
|
if( !pCommander ) return;
|
|
|
|
//GAME������ ������. ==> ���?��������� �?� �������� �����?��.
|
|
MSG_GZ_GUILD_CREATE_CORPS_BRD brdMSG;
|
|
brdMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum;
|
|
strncpy(brdMSG.m_szTargetCharName, pCommander->GetCharName(),
|
|
_countof(brdMSG.m_szTargetCharName));
|
|
brdMSG.m_szTargetCharName[_countof(brdMSG.m_szTargetCharName) - 1] = '\0';
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_CORPS_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CREATE_CORPS_NAK* pRecvMsg = (MSG_DZ_GUILD_CREATE_CORPS_NAK*)pMsg;
|
|
|
|
MSG_GZ_GUILD_CREATE_CORPS_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
}
|
|
|
|
// ��� ���� �?�
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_CORPS_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_DESTROY_CORPS_ACK* pRecvMsg = (MSG_DZ_GUILD_DESTROY_CORPS_ACK*)pMsg;
|
|
|
|
//����
|
|
RC::eGUILD_RESULT rc = g_GuildManager.DestoryCorps( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_OperCharGuid );
|
|
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
MSG_GZ_GUILD_DESTROY_CORPS_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = rc;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_DESTROY_CORPS_ACK] DB�?���GuildServer?��, ��� = %u, ������ = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum );
|
|
return;
|
|
}
|
|
|
|
//GAME������ ������. ==> ���?������� ���� �?? ������ ����.
|
|
MSG_GZ_GUILD_DESTROY_CORPS_BRD brdMSG;
|
|
brdMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_CORPS_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_DESTROY_CORPS_NAK* pRecvMsg = (MSG_DZ_GUILD_DESTROY_CORPS_NAK*)pMsg;
|
|
|
|
MSG_GZ_GUILD_DESTROY_CORPS_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
}
|
|
|
|
// ��� ������ ����
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_COMMANDER_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CHANGE_COMMANDER_ACK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_COMMANDER_ACK*)pMsg;
|
|
|
|
RC::eGUILD_RESULT rc = g_GuildManager.ChangeCommander( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_TargetGuid );
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
MSG_GZ_GUILD_CHANGE_COMMANDER_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = rc;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_CHANGE_COMMANDER_ACK] DB�?���GuildServer?��, ��� = %u, ������ = %d, ��?Guid = %u, rc = %d",
|
|
pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_TargetGuid, rc );
|
|
return;
|
|
}
|
|
|
|
GuildMember* pMember = g_GuildManager.FindGuildMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetGuid );
|
|
if( !pMember ) return;
|
|
|
|
//GAME������ ������.
|
|
MSG_GZ_GUILD_CHANGE_COMMANDER_BRD brdMSG;
|
|
brdMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum;
|
|
strncpy(brdMSG.m_szTargetCharName, pMember->GetCharName(), _countof(brdMSG.m_szTargetCharName));
|
|
brdMSG.m_szTargetCharName[_countof(brdMSG.m_szTargetCharName) - 1] = '\0';
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG));
|
|
|
|
//���?���� ������.
|
|
MSG_WZ_GUILD_CHANGE_COMMANDER_CMD wsMSG;
|
|
wsMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
wsMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum;
|
|
wsMSG.m_TargetCharGuid = pRecvMsg->m_TargetGuid;
|
|
g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_COMMANDER_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CHANGE_COMMANDER_NAK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_COMMANDER_NAK*)pMsg;
|
|
|
|
MSG_GZ_GUILD_CHANGE_COMMANDER_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
}
|
|
|
|
// ��� ���� �?�
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_CORPS_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CHANGE_CORPS_ACK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_CORPS_ACK*)pMsg;
|
|
|
|
//����
|
|
RC::eGUILD_RESULT rc = g_GuildManager.ChangeCorps( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetGuid, pRecvMsg->m_byCorpsNum );
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
MSG_GZ_GUILD_CHANGE_CORPS_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = rc;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_CHANGE_CORPS_ACK] DB�?���GuildServer?��, ��� = %u, ������ = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum );
|
|
return;
|
|
}
|
|
|
|
GuildMember* pMember = g_GuildManager.FindGuildMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetGuid );
|
|
if( !pMember ) return;
|
|
|
|
//GAME������ ������.
|
|
MSG_GZ_GUILD_CHANGE_CORPS_BRD brdMSG;
|
|
brdMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
brdMSG.m_TargetCharGuid = pRecvMsg->m_TargetGuid;
|
|
brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum;
|
|
strncpy(brdMSG.m_szTargetCharName, pMember->GetCharName(), _countof(brdMSG.m_szTargetCharName));
|
|
brdMSG.m_szTargetCharName[_countof(brdMSG.m_szTargetCharName) - 1] = '\0';
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG));
|
|
|
|
//���?���� ������.
|
|
MSG_WZ_GUILD_CHANGE_CORPS_CMD wsMSG;
|
|
wsMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
wsMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum;
|
|
wsMSG.m_TargetCharGuid = pRecvMsg->m_TargetGuid;
|
|
g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG));
|
|
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CHANGE_CORPS_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CHANGE_CORPS_NAK* pRecvMsg = (MSG_DZ_GUILD_CHANGE_CORPS_NAK*)pMsg;
|
|
|
|
MSG_GZ_GUILD_CHANGE_CORPS_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
}
|
|
|
|
// ��� �?�?�� ����
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_REAR_CAMP_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CREATE_REAR_CAMP_ACK* pRecvMsg = (MSG_DZ_GUILD_CREATE_REAR_CAMP_ACK*)pMsg;
|
|
|
|
RC::eGUILD_RESULT rc = g_GuildManager.CreateRearCamp( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_TargetCharGuid );
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
MSG_GZ_GUILD_CREATE_REAR_CAMP_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = rc;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_CREATE_REAR_CAMP_ACK] DB�?���GuildServer?��, ��� = %u, ������ = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum );
|
|
return;
|
|
}
|
|
|
|
GuildMember* pMember = g_GuildManager.FindGuildMember( pRecvMsg->m_GuildGuid, pRecvMsg->m_TargetCharGuid );
|
|
if( !pMember ) return;
|
|
|
|
//GAME������ ������.
|
|
MSG_GZ_GUILD_CREATE_REAR_CAMP_BRD brdMSG;
|
|
brdMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum;
|
|
strncpy(brdMSG.m_szTargetCharName, pMember->GetCharName(), _countof(brdMSG.m_szTargetCharName));
|
|
brdMSG.m_szTargetCharName[_countof(brdMSG.m_szTargetCharName) - 1] = '\0';
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG));
|
|
|
|
//���?���� ������.
|
|
MSG_WZ_GUILD_CREATE_REAR_CAMP_CMD wsMSG;
|
|
wsMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
wsMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum;
|
|
g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_CREATE_REAR_CAMP_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_CREATE_REAR_CAMP_NAK* pRecvMsg = (MSG_DZ_GUILD_CREATE_REAR_CAMP_NAK*)pMsg;
|
|
|
|
MSG_GZ_GUILD_CREATE_REAR_CAMP_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
}
|
|
|
|
// ��� �?�?�� �?�
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_REAR_CAMP_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_DESTROY_REAR_CAMP_ACK* pRecvMsg = (MSG_DZ_GUILD_DESTROY_REAR_CAMP_ACK*)pMsg;
|
|
|
|
RC::eGUILD_RESULT rc = g_GuildManager.DestroyRearCamp( pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum, pRecvMsg->m_OperCharGuid );
|
|
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
MSG_GZ_GUILD_DESTROY_REAR_CAMP_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = rc;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
SUNLOG( eCRITICAL_LOG, "[DZ_GUILD_DESTROY_REAR_CAMP_ACK] DB�?���GuildServer?��, ��� = %u, ������ = %d", pRecvMsg->m_GuildGuid, pRecvMsg->m_byCorpsNum );
|
|
return;
|
|
}
|
|
|
|
//GAME������ ������.
|
|
MSG_GZ_GUILD_DESTROY_REAR_CAMP_BRD brdMSG;
|
|
brdMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
brdMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
brdMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMSG, sizeof(brdMSG));
|
|
|
|
//���?���� ������.
|
|
MSG_WZ_GUILD_DESTROY_REAR_CAMP_CMD wsMSG;
|
|
wsMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
wsMSG.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
wsMSG.m_byCorpsNum = pRecvMsg->m_byCorpsNum;
|
|
g_DBProxyServer.SendToWorldServer(&wsMSG, sizeof(wsMSG));
|
|
}
|
|
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_REAR_CAMP_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_DESTROY_REAR_CAMP_NAK* pRecvMsg = (MSG_DZ_GUILD_DESTROY_REAR_CAMP_NAK*)pMsg;
|
|
|
|
MSG_GZ_GUILD_DESTROY_REAR_CAMP_NAK nakMSG;
|
|
nakMSG.m_dwKey = pRecvMsg->m_dwKey;
|
|
nakMSG.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMSG, sizeof(nakMSG));
|
|
}
|
|
|
|
// ����� �???�
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_LOGOUT_CHAR_CMD)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_LOGOUT_CHAR_CMD* pRecvMsg = (MSG_DZ_GUILD_LOGOUT_CHAR_CMD*)pMsg;
|
|
|
|
//1. ��?���� �?� ������ ������ �???����� �����?�.
|
|
RC::eGUILD_RESULT rc = g_GuildManager.Logout( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid );
|
|
if( rc != RC::RC_GUILD_SUCCESS )
|
|
{
|
|
SUNLOG( eCRITICAL_LOG, "Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_LOGOUT_CHAR_CMD) ?��, ���Guid = %u, ��?Guid = %u, rc = %d",
|
|
pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid, rc );
|
|
return;
|
|
}
|
|
|
|
//2. ���?����� ������.
|
|
MSG_GZ_GUILD_LOGOUT_CHAR_BRD brdMsg;
|
|
brdMsg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
brdMsg.m_CharGuid = pRecvMsg->m_CharGuid;
|
|
g_GuildManager.GetCharName( pRecvMsg->m_GuildGuid, pRecvMsg->m_CharGuid, brdMsg.m_szCharName, MAX_CHARNAME_LENGTH );
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMsg, sizeof(brdMsg));
|
|
|
|
//3. ���?���� ������.
|
|
MSG_WZ_GUILD_LOGOUT_CHAR_CMD cmdMsg;
|
|
cmdMsg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
cmdMsg.m_CharGuid = pRecvMsg->m_CharGuid;
|
|
g_DBProxyServer.SendToWorldServer(&cmdMsg, sizeof(cmdMsg));
|
|
}
|
|
|
|
// GM���?� �������?
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GM_GUILD_POINT_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_GM_GUILD_POINT_ACK* pRecvMsg = (MSG_DZ_GUILD_GM_GUILD_POINT_ACK*)pMsg;
|
|
|
|
//1. ��?���� �?� ������ ������ �???����� �����?�.
|
|
BOOL bRet = g_GuildManager.SetPoint( pRecvMsg->m_GuildGuid, pRecvMsg->m_GP, pRecvMsg->m_UP );
|
|
if( !bRet )
|
|
{
|
|
SUNLOG( eCRITICAL_LOG, "Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GM_GUILD_POINT_ACK) ?��, ���Guid = %u, GP = %d, UP = %d",
|
|
pRecvMsg->m_GuildGuid, pRecvMsg->m_GP, pRecvMsg->m_UP );
|
|
return;
|
|
}
|
|
|
|
//2. ���?����� ������.
|
|
MSG_GZ_GUILD_GM_GUILD_POINT_BRD brdMsg;
|
|
brdMsg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
brdMsg.m_UP = pRecvMsg->m_UP;
|
|
brdMsg.m_GP = pRecvMsg->m_GP;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brdMsg, sizeof(brdMsg));
|
|
}
|
|
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GM_GUILD_POINT_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_GM_GUILD_POINT_NAK* pRecvMsg = (MSG_DZ_GUILD_GM_GUILD_POINT_NAK*)pMsg;
|
|
|
|
MSG_GZ_GUILD_GM_GUILD_POINT_NAK nakMsg;
|
|
nakMsg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &nakMsg, sizeof(nakMsg) );
|
|
}
|
|
|
|
// ���� ���� ��� ����.
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_SELECT_CORPS_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_GUILD_SELECT_CORPS_NAK* recv_msg = static_cast<MSG_DZ_GUILD_SELECT_CORPS_NAK*>(pMsg);
|
|
// NOTE: f110627.2L, don't process this acknowledgement
|
|
SUNLOG(eCRITICAL_LOG, _T("|["__FUNCTION__"]|���Guid=%u|"), recv_msg->m_GuildGuid);
|
|
}
|
|
|
|
#ifdef _NA_003923_20120130_GUILD_RENEWAL
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_ACK, recv_msg, pMsg);
|
|
|
|
RC::eGUILD_RESULT result_code = RC::RC_GUILD_SUCCESS;
|
|
|
|
if (recv_msg->m_eRelationType == eGUILD_RELATION_CANCEL_BOTH_HOSTILITY)
|
|
{
|
|
result_code =
|
|
GuildSmallContentEntry::RelationSystem::RemoveRelation(
|
|
recv_msg->m_GuildGuid,
|
|
recv_msg->m_RelationGuildGuid,
|
|
recv_msg->m_eRelationType
|
|
);
|
|
}
|
|
else
|
|
{
|
|
result_code =
|
|
GuildSmallContentEntry::RelationSystem::AddRelation(
|
|
recv_msg->m_GuildGuid,
|
|
recv_msg->m_RelationGuildGuid,
|
|
recv_msg->m_eRelationType,
|
|
recv_msg->m_RelationApplyTime,
|
|
recv_msg->m_tszRELGuildName
|
|
);
|
|
}
|
|
|
|
if (result_code == RC::RC_GUILD_SUCCESS)
|
|
{
|
|
MSG_GZ_GUILD_RELATION_BRD brd_msg;
|
|
brd_msg.m_dwKey = recv_msg->m_dwKey;
|
|
brd_msg.m_eRelationType = recv_msg->m_eRelationType;
|
|
brd_msg.m_GuildGuid = recv_msg->m_GuildGuid;
|
|
brd_msg.m_RelationGuildGuid = recv_msg->m_RelationGuildGuid;
|
|
brd_msg.m_RelationApplyTime = recv_msg->m_RelationApplyTime;
|
|
brd_msg.m_RelationChangeTime =
|
|
GuildSmallContentEntry::RelationSystem::CalcRelationChangeTime(
|
|
recv_msg->m_eRelationType,
|
|
recv_msg->m_RelationApplyTime
|
|
);
|
|
util::GUILDNAMECOPY(brd_msg.m_tszRelationGuildName, recv_msg->m_tszRELGuildName);
|
|
|
|
Guild* request_guild = g_GuildManager.FindGuild(recv_msg->m_GuildGuid);
|
|
if (request_guild)
|
|
{
|
|
util::GUILDNAMECOPY(brd_msg.m_tszRequestGuildName, request_guild->GetGuildName());
|
|
}
|
|
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brd_msg, sizeof(brd_msg));
|
|
}
|
|
else
|
|
{
|
|
SUNLOG(
|
|
eCRITICAL_LOG,
|
|
__FUNCTION__" : �������?��??�� : ���guid = %d",
|
|
recv_msg->m_GuildGuid
|
|
);
|
|
}
|
|
}
|
|
#else//_NA_003923_20120130_GUILD_RENEWAL
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_ACK, pRecvMsg, pMsg);
|
|
|
|
if(RC:: RC_GUILD_SUCCESS == GuildSmallContentEntry::RelationSystem::AddRelation(
|
|
pRecvMsg->m_GuildGuid, pRecvMsg->m_RelationGuildGuid,
|
|
pRecvMsg->m_eRelationType, pRecvMsg->m_tszRELGuildName))
|
|
{
|
|
|
|
MSG_GZ_GUILD_RELATION_BRD msgToGameServer;
|
|
msgToGameServer.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgToGameServer.m_eRelationType = pRecvMsg->m_eRelationType;
|
|
msgToGameServer.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msgToGameServer.m_RelationGuildGuid = pRecvMsg->m_RelationGuildGuid;
|
|
util::GUILDNAMECOPY(msgToGameServer.m_tszRelationGuildName, pRecvMsg->m_tszRELGuildName);
|
|
|
|
Guild* pRequestGuild = g_GuildManager.FindGuild(pRecvMsg->m_GuildGuid);
|
|
if(pRequestGuild) {
|
|
util::GUILDNAMECOPY(msgToGameServer.m_tszRequestGuildName, pRequestGuild->GetGuildName());
|
|
}
|
|
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer));
|
|
}
|
|
}
|
|
#endif//_NA_003923_20120130_GUILD_RENEWAL
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_NAK, pRecvMsg, pMsg);
|
|
|
|
MSG_GZ_GUILD_RELATION_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_DELETE_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_DELETE_ACK, pRecvMsg, pMsg);
|
|
|
|
if(RC:: RC_GUILD_SUCCESS == GuildSmallContentEntry::RelationSystem::RemoveRelation(
|
|
pRecvMsg->m_GuildGuid,
|
|
pRecvMsg->m_RelGuildGuid, pRecvMsg->m_eType))
|
|
{
|
|
MSG_GZ_GUILD_RELATION_DELETE_BRD msgToGameServer;
|
|
msgToGameServer.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgToGameServer.m_eType= pRecvMsg->m_eType;
|
|
msgToGameServer.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msgToGameServer.m_RelGuildGuid = pRecvMsg->m_RelGuildGuid;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer));
|
|
}
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_DELETE_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_DELETE_NAK , pRecvMsg, pMsg);
|
|
|
|
MSG_GZ_GUILD_RELATION_DELETE_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_eType = pRecvMsg->m_eType;
|
|
msg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msg.m_RelGuildGuid = pRecvMsg->m_RelGuildGuid;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_BOTH_AGAINST_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_BOTH_AGAINST_ACK, pRecvMsg, pMsg);
|
|
#ifdef _NA_003923_20120130_GUILD_RENEWAL
|
|
if(GuildSmallContentEntry::RelationSystem::AddRelation(
|
|
pRecvMsg->m_GuildGuid,
|
|
pRecvMsg->m_RelGuildGuid,
|
|
pRecvMsg->m_eRelType,
|
|
pRecvMsg->m_RelationApplyTime
|
|
) == RC:: RC_GUILD_SUCCESS)
|
|
{
|
|
MSG_GZ_GUILD_RELATION_BOTH_AGAINST_BRD msgToGameServer;
|
|
msgToGameServer.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgToGameServer.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msgToGameServer.m_RelGuildGuid = pRecvMsg->m_RelGuildGuid;
|
|
msgToGameServer.m_RelationApplyTime = pRecvMsg->m_RelationApplyTime;
|
|
msgToGameServer.m_RelationChangeTime =
|
|
GuildSmallContentEntry::RelationSystem::CalcRelationChangeTime(
|
|
pRecvMsg->m_eRelType,
|
|
pRecvMsg->m_RelationApplyTime
|
|
);
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer));
|
|
}
|
|
#else
|
|
if(RC:: RC_GUILD_SUCCESS == GuildSmallContentEntry::RelationSystem::AddRelation(
|
|
pRecvMsg->m_GuildGuid,
|
|
pRecvMsg->m_RelGuildGuid, pRecvMsg->m_eRelType))
|
|
{
|
|
MSG_GZ_GUILD_RELATION_BOTH_AGAINST_BRD msgToGameServer;
|
|
msgToGameServer.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgToGameServer.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msgToGameServer.m_RelGuildGuid = pRecvMsg->m_RelGuildGuid;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer));
|
|
}
|
|
#endif
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_BOTH_AGAINST_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_BOTH_AGAINST_NAK, pRecvMsg, pMsg);
|
|
|
|
MSG_GZ_GUILD_RELATION_BOTH_AGAINST_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msg.m_RelGuildGuid = pRecvMsg->m_RelGuildGuid;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg));
|
|
}
|
|
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_INFO_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_INFO_ACK, pRecvMsg, pMsg);
|
|
GuildSmallContentEntry::RelationSystem::SaveRelationInfo(&pRecvMsg ->m_AddInfo);
|
|
|
|
MSG_GZ_GUILD_RELATION_INFO_BRD SendToGameServer;
|
|
SendToGameServer.m_dwKey = pRecvMsg->m_dwKey;
|
|
SendToGameServer.m_AddInfo.m_GuildGuid = pRecvMsg->m_AddInfo.m_GuildGuid;
|
|
SendToGameServer.m_byRelCnt = pRecvMsg->m_AddInfo.m_byRelationGuildCnt;
|
|
GuildSmallContentEntry::RelationSystem::LoadRelationInfo(&SendToGameServer.m_AddInfo);
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &SendToGameServer, SendToGameServer.GetSize());
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RELATION_INFO_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_RELATION_INFO_NAK, pRecvMsg, pMsg);
|
|
|
|
MSG_DZ_GUILD_RELATION_INFO_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RECOVERY_GUILD_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_RECOVERY_GUILD_ACK *pRecvMsg =
|
|
static_cast<MSG_DZ_GUILD_RECOVERY_GUILD_ACK*>(pMsg);
|
|
|
|
if(!GuildSmallContentEntry::GuildPenalty::GuildRecovery(
|
|
pRecvMsg->m_CharGuid, pRecvMsg->m_GuildGuid))
|
|
return; //TODO : �??� ������.
|
|
|
|
MSG_GZ_GUILD_RECOVERY_GUILD_BRD msgBRD;
|
|
msgBRD.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgBRD.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgBRD, sizeof(msgBRD));
|
|
|
|
MSG_WZ_GUILD_RECOVERY_GUILD_CMD msgCMD;
|
|
msgCMD.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgCMD.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
g_DBProxyServer.SendToWorldServer(&msgCMD, sizeof(msgCMD));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_RECOVERY_GUILD_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_RECOVERY_GUILD_NAK *pRecvMsg =
|
|
static_cast<MSG_DZ_GUILD_RECOVERY_GUILD_NAK*>(pMsg);
|
|
|
|
MSG_GZ_GUILD_RECOVERY_GUILD_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_CharGuid = pRecvMsg->m_CharGuid;
|
|
msg.m_byErrorCode = RC::RC_GUILD_RECOVERY_FAILED;
|
|
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_COMPLETE_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_DESTROY_COMPLETE_ACK* receive_msg = static_cast<MSG_DZ_GUILD_DESTROY_COMPLETE_ACK*>(pMsg);
|
|
|
|
#ifdef _USING_GUILD_DESTROY_LOGGING
|
|
SUNLOG(eCRITICAL_LOG,
|
|
_T("|����?�?�|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_COMPLETE_ACK)|MSG_DZ_GUILD_DESTROY_COMPLETE_ACK ����|GuildGuid:%d, MasterCharGuid:%d|"),
|
|
receive_msg->m_GuildGuid,
|
|
receive_msg->m_MasterCharGuid);
|
|
#endif // _USING_GUILD_DESTROY_LOGGING
|
|
|
|
g_GuildManager.DestroyGuild(receive_msg->m_GuildGuid);
|
|
|
|
MSG_GZ_GUILD_DESTROY_BRD brd_msg;
|
|
//(shogen)(20090819)
|
|
//brd_msg.m_dwKey = receive_msg->m_dwKey;
|
|
brd_msg.m_dwKey = receive_msg->m_MasterCharGuid;
|
|
brd_msg.m_GuildGuid = receive_msg->m_GuildGuid;
|
|
|
|
#ifdef _USING_GUILD_DESTROY_LOGGING
|
|
SUNLOG(eCRITICAL_LOG,
|
|
_T("|����?�?�|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_COMPLETE_ACK)|MSG_GZ_GUILD_DESTROY_BRD ����|GuildGuid:%d, MasterCharGuid:%u|"),
|
|
brd_msg.m_GuildGuid,
|
|
brd_msg.m_dwKey);
|
|
#endif // _USING_GUILD_DESTROY_LOGGING
|
|
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &brd_msg, sizeof(brd_msg));
|
|
|
|
// Send To WorldServer
|
|
MSG_WZ_GUILD_DESTROY_GUILD_CMD cmd_msg;
|
|
cmd_msg.m_GuildGuid = receive_msg->m_GuildGuid;
|
|
|
|
#ifdef _USING_GUILD_DESTROY_LOGGING
|
|
SUNLOG(eCRITICAL_LOG,
|
|
_T("|����?�?�|Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_COMPLETE_ACK)|MSG_WZ_GUILD_DESTROY_GUILD_CMD ����|GuildGuid:%d|"), cmd_msg.m_GuildGuid);
|
|
#endif // _USING_GUILD_DESTROY_LOGGING
|
|
|
|
g_DBProxyServer.SendToWorldServer(&cmd_msg, sizeof(cmd_msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_DESTROY_COMPLETE_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_DESTROY_COMPLETE_NAK* pRecvMsg =
|
|
static_cast<MSG_DZ_GUILD_DESTROY_COMPLETE_NAK*>(pMsg);
|
|
|
|
MSG_GZ_GUILD_DESTROY_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
}
|
|
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GUILDMARK_REGISTER_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_GUILDMARK_REGISTER_ACK *pRecvMsg =
|
|
static_cast<MSG_DZ_GUILD_GUILDMARK_REGISTER_ACK*>(pMsg);
|
|
|
|
/* ���� ��? ��� */
|
|
GuildSmallContentEntry::GuildMark::GuildMarkInfo info;
|
|
info.guild_Index = pRecvMsg->m_GuildIndex;
|
|
info.pattern_index = pRecvMsg->m_PatternIndex;
|
|
info.background_index = pRecvMsg->m_BackGroundIndex;
|
|
GuildSmallContentEntry::GuildMark::RegisterMark(info);
|
|
|
|
MSG_GZ_GUILD_GUILDMARK_REGISTER_BRD msgToGameServer;
|
|
msgToGameServer.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgToGameServer.m_SlotIdx = pRecvMsg->m_SlotIdx;
|
|
msgToGameServer.m_SlotPos = pRecvMsg->m_SlotPos;
|
|
msgToGameServer.m_GuildIndex = pRecvMsg->m_GuildIndex;
|
|
msgToGameServer.m_PatternIndex = pRecvMsg->m_PatternIndex;
|
|
msgToGameServer.m_BackGroundIndex = pRecvMsg->m_BackGroundIndex;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer) );
|
|
|
|
MSG_WZ_GUILD_GUILDMARK_REGISTER_CMD msgToWorld;
|
|
msgToWorld.m_GuildGuid = pRecvMsg->m_GuildIndex;
|
|
msgToWorld.m_PatternIndex = pRecvMsg->m_PatternIndex;
|
|
msgToWorld.m_BackGroundIndex = pRecvMsg->m_BackGroundIndex;
|
|
g_DBProxyServer.SendToWorldServer(&msgToWorld, sizeof(msgToWorld) );
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GUILDMARK_REGISTER_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_GUILDMARK_REGISTER_NAK *pRecvMsg =
|
|
static_cast<MSG_DZ_GUILD_GUILDMARK_REGISTER_NAK*>(pMsg);
|
|
|
|
MSG_GZ_GUILD_GUILDMARK_REGISTER_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_Result = pRecvMsg->m_Result;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GUILDMARK_DELETE_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_GUILDMARK_DELETE_ACK *pRecvMsg =
|
|
static_cast<MSG_DZ_GUILD_GUILDMARK_DELETE_ACK*>(pMsg);
|
|
|
|
/* ���� ��? ���� */
|
|
GuildSmallContentEntry::GuildMark::GuildMarkInfo info;
|
|
info.guild_Index = pRecvMsg->m_GuildIndex;
|
|
info.pattern_index = pRecvMsg->m_PatternIndex;
|
|
info.background_index = pRecvMsg->m_BackGroundIndex;
|
|
GuildSmallContentEntry::GuildMark::DeleteMark(info);
|
|
|
|
MSG_GZ_GUILD_GUILDMARK_DELETE_BRD msgToGameServer;
|
|
msgToGameServer.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgToGameServer.m_GuildIndex = pRecvMsg->m_GuildIndex;
|
|
msgToGameServer.m_PatternIndex = pRecvMsg->m_PatternIndex;
|
|
msgToGameServer.m_BackGroundIndex = pRecvMsg->m_BackGroundIndex;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, sizeof(msgToGameServer) );
|
|
|
|
MSG_WZ_GUILD_GUILDMARK_DELETE_CMD msgToWorld;
|
|
msgToWorld.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgToWorld.m_GuildGuid = pRecvMsg->m_GuildIndex;
|
|
msgToWorld.m_PatternIndex = pRecvMsg->m_PatternIndex;
|
|
msgToWorld.m_BackGroundIndex = pRecvMsg->m_BackGroundIndex;
|
|
g_DBProxyServer.SendToWorldServer(&msgToWorld, sizeof(msgToWorld));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_GUILDMARK_DELETE_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_GUILDMARK_DELETE_NAK , pRecvMsg, pMsg);
|
|
|
|
MSG_GZ_GUILD_GUILDMARK_DELETE_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_Result = pRecvMsg->m_Result;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WAREHOUSE_OPEN_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_WAREHOUSE_OPEN_ACK, pRecvMsg, pMsg);
|
|
// (f100527.3L)
|
|
if (sizeof(*pRecvMsg) < static_cast<ulong>(pRecvMsg->GetSize())) {
|
|
SUNLOG(eCRITICAL_LOG, _T("[%s]|����?='<=%d'|�??=%u|��?=���?��??����?�|"),
|
|
__FUNCTION__, sizeof(*pRecvMsg), pRecvMsg->GetSize());
|
|
return;
|
|
}
|
|
|
|
GUILDGUID GuildGuid = pRecvMsg->m_GuildGuid;
|
|
CHARGUID OperCharGuid = pRecvMsg->m_OperCharGuid;
|
|
MONEY WarehouseMoney = pRecvMsg->m_WarehouseMoney;
|
|
|
|
BYTE SlotTabNum = pRecvMsg->m_SlotTabNum;
|
|
bool IsRight = g_GuildManager.CheckRight(GuildGuid, OperCharGuid, eGUILD_RIGHTS_WAREHOUSE_OUT);
|
|
|
|
// (f100527.3L)
|
|
const int guild_warehouse_stream_size = pRecvMsg->m_ItemInfo.GetSize();
|
|
//int size = sizeof(_GUILDWAREHOUSE_TOTAL_INFO) -
|
|
// (_GUILDWAREHOUSE_TOTAL_INFO::MAX_SLOT_NUM - pRecvMsg->m_ItemInfo.m_Count) *
|
|
// sizeof(_GUILDWAREHOUSE_TOTAL_INFO::SLOT_TYPE);
|
|
|
|
MSG_GZ_GUILD_WAREHOUSE_OPEN_BRD msgToGameServer;
|
|
if (guild_warehouse_stream_size == 0) { //compile debug
|
|
util::AssertCompileTimeVariableTypeEqual(msgToGameServer.m_ItemInfo, pRecvMsg->m_ItemInfo);
|
|
}
|
|
msgToGameServer.m_dwKey = pRecvMsg->m_dwKey;
|
|
msgToGameServer.m_GuildGuid = GuildGuid;
|
|
msgToGameServer.m_WarehouseRight = IsRight;
|
|
msgToGameServer.m_SlotTabNum = SlotTabNum;
|
|
msgToGameServer.m_OperCharGuid = OperCharGuid;
|
|
msgToGameServer.m_WarehouseMoney = WarehouseMoney;
|
|
CopyMemory(&msgToGameServer.m_ItemInfo, &pRecvMsg->m_ItemInfo, guild_warehouse_stream_size);
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgToGameServer, msgToGameServer.GetSize());
|
|
//pGuildServer->SendToSession(pRecvMsg->m_dwSessionIndex, &msgToGameServer, msgToGameServer.GetSize());
|
|
|
|
//MSG_WZ_GUILD_WAREHOUSE_OPEN_CMD msgToWorld;
|
|
//msgToWorld.m_GuildGuid = GuildGuid;
|
|
//msgToWorld.m_OpenUserKey = OperCharGuid;
|
|
//pGuildServer->ConnectSessions.SendToWorld(&msgToWorld, sizeof(msgToWorld));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WAREHOUSE_OPEN_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
PACKET_PTR_CONVERT(MSG_DZ_GUILD_WAREHOUSE_OPEN_NAK, pRecvMsg, pMsg);
|
|
|
|
MSG_GZ_GUILD_WAREHOUSE_OPEN_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_GuildGuid = pRecvMsg->m_GuildGuid;
|
|
msg.m_bErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msg, sizeof(msg));
|
|
//pGuildServer->SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
//pGuildServer->SendToSession()
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_NAME_CHANGE_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_NAME_CHANGE_ACK* pRecvMsg = (MSG_DZ_GUILD_NAME_CHANGE_ACK*)pMsg;
|
|
GUILDGUID GuildGuid = pRecvMsg->m_GuildGuid;
|
|
|
|
//{__NA001254_20090109_RTTG_FUNC_ADD
|
|
if( pRecvMsg->m_TargetPos == INVALID_POSTYPE_VALUE &&
|
|
pRecvMsg->m_OperCharGuid == 0 )//INVALID_CHARGUID )
|
|
{
|
|
// RTTG������ ���� ������ �?���.
|
|
MSG_MZ_GUILD_NAME_CHANGE_ACK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
}
|
|
//}
|
|
if( pRecvMsg->m_TargetPos != INVALID_POSTYPE_VALUE &&
|
|
pRecvMsg->m_OperCharGuid != 0 )// INVALID_CHARGUID )
|
|
{
|
|
Guild* pGuild = g_GuildManager.FindGuild(GuildGuid);
|
|
const TCHAR* guild_name = (pGuild != NULL ? pGuild->GetGuildName() : "[Unknown]");
|
|
|
|
// ������ ����� ���� ������ �?���.
|
|
MSG_GZ_GUILD_NAME_CHANGE_ACK msg;
|
|
// NOTE: f110523.5L, if the object of 'm_dwSessionIndex' is MasterServer,
|
|
// 'm_dwKey' is the wops key.
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_TargetPos = pRecvMsg->m_TargetPos;
|
|
//_NA_0_20100901_GUILD_NAME_CHANGE_ITEM_LOG
|
|
util::GUILDNAMECOPY(msg.m_tszCurrentGuildName, guild_name);
|
|
util::GUILDNAMECOPY(msg.m_tszchangeGuildName, pRecvMsg->m_tszGuildName);
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
}
|
|
|
|
// ���� ��� ������ ������ �??�.
|
|
g_GuildManager.ChangeGuildName(GuildGuid, pRecvMsg->m_tszGuildName);
|
|
|
|
// ����� ��� ���� ������ ������ �?������ �?���.
|
|
MSG_GZ_GUILD_NAME_CHANGE_BRD msgBRD;
|
|
msgBRD.m_GuildGuid = GuildGuid;
|
|
util::GUILDNAMECOPY(msgBRD.m_tszGuildName, pRecvMsg->m_tszGuildName);
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &msgBRD, sizeof(msgBRD));
|
|
|
|
//���� ������ ������ �?���.
|
|
MSG_WZ_GUILD_NAME_CHANGE_CMD Wmsg;
|
|
Wmsg.m_GuildGuid = GuildGuid;
|
|
util::GUILDNAMECOPY(Wmsg.m_tszGuildName, pRecvMsg->m_tszGuildName);
|
|
g_DBProxyServer.SendToWorldServer(&Wmsg, sizeof(Wmsg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_NAME_CHANGE_NAK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
MSG_DZ_GUILD_NAME_CHANGE_NAK* pRecvMsg = (MSG_DZ_GUILD_NAME_CHANGE_NAK*)pMsg;
|
|
//{__NA001254_20090109_RTTG_FUNC_ADD
|
|
if( pRecvMsg->m_TargetPos == INVALID_POSTYPE_VALUE &&
|
|
pRecvMsg->m_OperCharGuid == 0 )//INVALID_CHARGUID )
|
|
{
|
|
MSG_MZ_GUILD_NAME_CHANGE_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
return;
|
|
}
|
|
//}
|
|
MSG_GZ_GUILD_NAME_CHANGE_NAK msg;
|
|
msg.m_dwKey = pRecvMsg->m_dwKey;
|
|
msg.m_TargetPos = pRecvMsg->m_TargetPos;
|
|
msg.m_byErrorCode = pRecvMsg->m_byErrorCode;
|
|
g_DBProxyServer.SendToSession(pRecvMsg->m_dwSessionIndex, &msg, sizeof(msg));
|
|
}
|
|
|
|
/************************************************************************/
|
|
/* ���� ������ ����� �?� */
|
|
/************************************************************************/
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_INFO_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_INFO_ACK* recv_msg = static_cast<MSG_DZ_DOMINATION_INFO_ACK*>(pMsg);
|
|
|
|
if (recv_msg->m_RsultCode == RC::DOMINATION_RESULT_FAIL)
|
|
{
|
|
SUNLOG(
|
|
eCRITICAL_LOG,
|
|
_T("|%s|[?��] ������?����?��.|������ = %d|"),
|
|
__FUNCTION__,
|
|
recv_msg->m_RsultCode
|
|
);
|
|
return;
|
|
}
|
|
|
|
const int number_of_records = recv_msg->m_NumRecords;
|
|
if (number_of_records > _countof(recv_msg->m_DominationInfo))
|
|
{
|
|
SUNLOG(
|
|
eCRITICAL_LOG,
|
|
_T("|%s|[?��] ���������.|�������� = %d, ���? = %d|"),
|
|
__FUNCTION__,
|
|
number_of_records,
|
|
_countof(recv_msg->m_DominationInfo)
|
|
);
|
|
return;
|
|
}
|
|
|
|
// ���� ������ ���� �?�?�?� �����?�.
|
|
DominationManager* const domination_manager = DominationManager::Instance();
|
|
domination_manager->ClearAreaInfos();
|
|
|
|
for (int i = 0; i < number_of_records; ++i)
|
|
{
|
|
const DOMINATION_INFO& curInfo = recv_msg->m_DominationInfo[i];
|
|
domination_manager->InsertAreaInfo(curInfo);
|
|
}
|
|
//load success
|
|
domination_manager->SetCompleteLoadAreaInfo();
|
|
SUNLOG(
|
|
eDEV_LOG,
|
|
_T("|%s|[Domination] Area info load complete.|area_count = %d|"),
|
|
__FUNCTION__,
|
|
number_of_records
|
|
);
|
|
}
|
|
|
|
#ifdef _CH_20100420_CHANGE_DOMINATION_APPLY_WAY
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_AUCTION_INFO_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_AUCTION_INFO_ACK* recv_msg =
|
|
static_cast<MSG_DZ_DOMINATION_AUCTION_INFO_ACK*>(pMsg);
|
|
|
|
if (recv_msg->m_RsultCode == RC::DOMINATION_RESULT_FAIL)
|
|
{
|
|
SUNLOG(
|
|
eCRITICAL_LOG,
|
|
_T("|%s|[?��] ������?����?��.|��?���� = %d, ������ = %d|"),
|
|
__FUNCTION__,
|
|
recv_msg->m_MapCode,
|
|
recv_msg->m_RsultCode
|
|
);
|
|
return;
|
|
}
|
|
|
|
//���?� �������� ���?�� ��?�� �����?� �����?�.
|
|
const BYTE data_count = recv_msg->m_DataCount;
|
|
if (data_count > _countof(recv_msg->m_DominationActionDBInfo))
|
|
{
|
|
SUNLOG(
|
|
eCRITICAL_LOG,
|
|
_T("|%s|[?��] ������������.|��?���� = %d, �������� = %d, ���? = %d|"),
|
|
__FUNCTION__,
|
|
recv_msg->m_MapCode,
|
|
data_count,
|
|
_countof(recv_msg->m_DominationActionDBInfo)
|
|
);
|
|
return;
|
|
}
|
|
|
|
// ���� ������ ���� �?�?�?� �����?�.
|
|
DominationManager* const domination_manager = DominationManager::Instance();
|
|
domination_manager->ClearAuctions(recv_msg->m_MapCode);
|
|
|
|
for (int i = 0; i < data_count; ++i)
|
|
{
|
|
const DominationAuctionInfo& info = recv_msg->m_DominationActionDBInfo[i];
|
|
domination_manager->InsertAuction(info.m_ActionInfo.m_FieldCode, info);
|
|
}
|
|
domination_manager->SetCompleteLoadAuctions(recv_msg->m_MapCode);
|
|
|
|
SUNLOG(
|
|
eDEV_LOG,
|
|
_T("|%s|[Domination] Auction info load complete.|map_code = %d, auction_count = %d|"),
|
|
__FUNCTION__,
|
|
recv_msg->m_MapCode,
|
|
data_count
|
|
);
|
|
}
|
|
#else//_CH_20100420_CHANGE_DOMINATION_APPLY_WAY
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_AUCTION_INFO_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_AUCTION_INFO_ACK* pRecvMsg =
|
|
static_cast<MSG_DZ_DOMINATION_AUCTION_INFO_ACK*>(pMsg);
|
|
|
|
if( pRecvMsg->m_RsultCode == RC::DOMINATION_RESULT_FAIL )
|
|
{
|
|
SUNLOG(
|
|
eCRITICAL_LOG,
|
|
_T("|%s|[?��] Auction info request is fail.|map code = %d, result code = %d|"),
|
|
__FUNCTION__,
|
|
pRecvMsg->m_MapCode,
|
|
pRecvMsg->m_RsultCode
|
|
);
|
|
return;
|
|
}
|
|
|
|
//���?� �������� ���?�� ��?�� �����?� �����?�.
|
|
const BYTE number_of_data = pRecvMsg->NumRecords;
|
|
if (number_of_data > _countof(pRecvMsg->m_DominationActionDBInfo))
|
|
{
|
|
//���?� ��? ������ �?� ��� ����? ������ �?� �??� ����
|
|
SUNLOG(
|
|
eCRITICAL_LOG,
|
|
_T("|%s|[?��] Number of auction is overflow.|map code = %d, number of auction = %d, max = %d|"),
|
|
__FUNCTION__,
|
|
pRecvMsg->m_MapCode,
|
|
number_of_data,
|
|
_countof(recv_msg->m_DominationActionDBInfo)
|
|
);
|
|
return;
|
|
}
|
|
|
|
MAPCODE mapCode = pRecvMsg->m_MapCode;
|
|
|
|
// ���� ������ ���� �?�?�?� �����?�.
|
|
DominationManager* const domination_manager = DominationManager::Instance();
|
|
domination_manager->ClearAuctions(mapCode);
|
|
|
|
for (int i = 0; i < number_of_data; ++i)
|
|
{
|
|
const DominationAuctionInfo& CurInfo = pRecvMsg->m_DominationActionDBInfo[i];
|
|
domination_manager->InsertAuction(CurInfo.m_ActionInfo.m_FieldCode, CurInfo);
|
|
}
|
|
domination_manager->SetCompleteLoadAuctions(mapCode);
|
|
|
|
SUNLOG(
|
|
eDEV_LOG,
|
|
_T("|%s|[Domination] Auction info load complete.|map_code = %d, auction_count = %d|"),
|
|
__FUNCTION__,
|
|
pRecvMsg->m_MapCode,
|
|
number_of_data
|
|
);
|
|
}
|
|
#endif//_CH_20100420_CHANGE_DOMINATION_APPLY_WAY
|
|
|
|
//_KR_001385_20091105_DOMINATION_UPDATEDOMINATIONINFO
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_UPDATE_INFO_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_UPDATE_INFO_ACK* pRecvMsg = static_cast<MSG_DZ_DOMINATION_UPDATE_INFO_ACK*>(pMsg);
|
|
|
|
MSG_GZ_DOMINATION_UPDATE_INFO_ACK sendMsg;
|
|
|
|
if( pRecvMsg->m_RsultCode == RC::DOMINATION_RESULT_FAIL )
|
|
{
|
|
sendMsg.m_ResultCode = pRecvMsg->m_RsultCode;
|
|
sendMsg.m_DominationInfo = pRecvMsg->m_DominationInfo;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg));
|
|
SUNLOG( eCRITICAL_LOG, "["__FUNCTION__"]���?�����?��" );
|
|
|
|
return;
|
|
}
|
|
|
|
#ifdef _NA_003923_20120130_GUILD_RENEWAL
|
|
DominationManager::Instance()->DominationInGameGuildLog(
|
|
pRecvMsg->m_DominationInfo,
|
|
pRecvMsg->m_eSetType
|
|
);
|
|
#endif
|
|
|
|
const DOMINATION_INFO& dominationInfo = pRecvMsg->m_DominationInfo;
|
|
|
|
DOMINATION_INFO* pInfo =
|
|
DominationManager::Instance()->FindDominationInfo( pRecvMsg->m_DominationInfo.m_FieldCode );
|
|
|
|
if( pInfo )
|
|
{
|
|
switch ( pRecvMsg->m_eSetType )
|
|
{
|
|
case DOMINATION_DEFFENSEWALL_SET:
|
|
case DOMINATION_INIT:
|
|
case DOMINATION_INFO_SET:
|
|
(*pInfo) = pRecvMsg->m_DominationInfo;
|
|
break;
|
|
|
|
case DOMINATION_SUCCESS_DEFENCE:
|
|
pInfo->m_disGuildInfo.m_GuildGuid = 0;
|
|
break;
|
|
|
|
case DOMINATION_SUCCESS_OFFENCE:
|
|
pInfo->m_inGuildInfo = pRecvMsg->m_DominationInfo.m_disGuildInfo;
|
|
pInfo->m_disGuildInfo.m_GuildGuid = 0;
|
|
break;
|
|
|
|
case DOMINATION_DISGUILD_SET:
|
|
//���� ��� �������� ���?��� ������ ��� ����?�� ���� �?�.
|
|
DominationManager::Instance()->DeleteAuction(
|
|
dominationInfo.m_FieldCode,
|
|
dominationInfo.m_disGuildInfo.m_GuildGuid
|
|
);
|
|
break;
|
|
#ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION
|
|
case DOMINATION_TURN_OVER:
|
|
//�?��� ��� ���?��� ��? ������? �����?�.
|
|
pInfo->m_inGuildInfo = pRecvMsg->m_DominationInfo.m_disGuildInfo;
|
|
pInfo->m_disGuildInfo.m_GuildGuid = 0;
|
|
break;
|
|
#endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//�����?� ���� ���� ������ ���� ����� �?�.
|
|
DominationManager::Instance()->InsertAreaInfo( dominationInfo );
|
|
}
|
|
|
|
#ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION
|
|
eDOMINATION_TYPE domi_type =
|
|
DominationInfoParser::Instance()->GetDominationTypeFromFieldCode(dominationInfo.m_FieldCode);
|
|
if (domi_type == DOMINATION_TYPE_MONDSCHIEN)
|
|
{
|
|
//�?����� ������ ���������� �����?� �?� �������� ������ �?��.
|
|
if (pRecvMsg->m_eSetType == DOMINATION_TURN_OVER)
|
|
{
|
|
return;
|
|
}
|
|
//��?������ ��� ��� ���� ���� ������?�� ����?�.
|
|
DominationManager::Instance()->UpdateContinentLordInfo(true);
|
|
}
|
|
#endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION
|
|
|
|
sendMsg.m_ResultCode = pRecvMsg->m_RsultCode;
|
|
sendMsg.m_DominationInfo = pRecvMsg->m_DominationInfo;
|
|
sendMsg.m_eSetType = pRecvMsg->m_eSetType;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_ACCEP_HEIM_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_ACCEP_HEIM_ACK* pRecvMsg = static_cast<MSG_DZ_DOMINATION_ACCEP_HEIM_ACK*>(pMsg);
|
|
|
|
MSG_GZ_DOMINATION_ACCEP_HEIM_ACK sendMsg;
|
|
|
|
if( pRecvMsg->m_ResultCode != RC::DOMINATION_RESULT_SUCCESS )
|
|
{
|
|
sendMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
sendMsg.m_ResultCode = pRecvMsg->m_ResultCode;
|
|
sendMsg.m_DominationActionInfo = pRecvMsg->m_DominationActionInfo;
|
|
#ifdef _CH_20100420_CHANGE_DOMINATION_APPLY_WAY
|
|
sendMsg.m_TokenPos = pRecvMsg->m_TokenPos;
|
|
sendMsg.number_of_betting_item = pRecvMsg->number_of_betting_item;
|
|
#endif
|
|
SUNLOG( eCRITICAL_LOG, "["__FUNCTION__"]Result Fail\n" );
|
|
}
|
|
else if( pRecvMsg->m_ResultCode == RC::DOMINATION_RESULT_SUCCESS )
|
|
{
|
|
const DominationAuctionInfo& curActionInfo = pRecvMsg->m_DominationActionInfo;
|
|
DominationManager::Instance()->InsertAuction(
|
|
curActionInfo.m_ActionInfo.m_FieldCode,
|
|
curActionInfo
|
|
);
|
|
|
|
sendMsg.m_dwKey = pRecvMsg->m_dwKey;
|
|
sendMsg.m_ResultCode = pRecvMsg->m_ResultCode;
|
|
sendMsg.m_DominationActionInfo = pRecvMsg->m_DominationActionInfo;
|
|
#ifdef _CH_20100420_CHANGE_DOMINATION_APPLY_WAY
|
|
sendMsg.m_TokenPos = pRecvMsg->m_TokenPos;
|
|
sendMsg.number_of_betting_item = pRecvMsg->number_of_betting_item;
|
|
#endif
|
|
SUNLOG(
|
|
eFULL_LOG,
|
|
__FUNCTION__" : Update success : Map = %d, cost = %d",
|
|
pRecvMsg->m_DominationActionInfo.m_ActionInfo.m_FieldCode,
|
|
pRecvMsg->m_DominationActionInfo.m_ActionInfo.m_TenderCost
|
|
);
|
|
|
|
#ifdef _NA_003923_20120130_GUILD_RENEWAL
|
|
#ifdef _CN_006014_20120822_GUILD_LOG_DELETE
|
|
#else
|
|
//Write guild game log
|
|
const DOMINATION_ACTION_INFO& auction_info = pRecvMsg->m_DominationActionInfo.m_ActionInfo;
|
|
Guild* guild = g_GuildManager.FindGuild(auction_info.m_GuilGuid);
|
|
if (guild == NULL)
|
|
{
|
|
SUNLOG(
|
|
eCRITICAL_LOG,
|
|
__FUNCTION__" : Not found guild : guid = %d",
|
|
auction_info.m_GuilGuid
|
|
);
|
|
return;
|
|
}
|
|
|
|
guild->GetGuildInGameLog()->WriteGuildLog(
|
|
GuildAuctionBatting,
|
|
auction_info.m_GuilGuid,
|
|
NULL,
|
|
auction_info.m_FieldCode,
|
|
auction_info.m_TenderCost
|
|
);
|
|
#endif // _CN_006014_20120822_GUILD_LOG_DELETE
|
|
#endif // _NA_003923_20120130_GUILD_RENEWAL
|
|
}
|
|
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_INIT_AUCTIONINFO_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_INIT_AUCTIONINFO_ACK* pRecvMsg = static_cast<MSG_DZ_DOMINATION_INIT_AUCTIONINFO_ACK*>(pMsg);
|
|
|
|
MSG_GZ_DOMINATION_INIT_ACTIONINFO_ACK sendMsg;
|
|
|
|
if( pRecvMsg->m_ResultCode != RC::DOMINATION_RESULT_SUCCESS )
|
|
{
|
|
sendMsg.m_ResultCode = pRecvMsg->m_ResultCode;
|
|
SUNLOG( eCRITICAL_LOG, "["__FUNCTION__"]Result Fail\n" );
|
|
}
|
|
else if( pRecvMsg->m_ResultCode == RC::DOMINATION_RESULT_SUCCESS )
|
|
{
|
|
sendMsg.m_ResultCode = pRecvMsg->m_ResultCode;
|
|
DominationManager::Instance()->ClearAuctions( pRecvMsg->m_MapCode );
|
|
|
|
SUNLOG( eFULL_LOG, "["__FUNCTION__"]ActionInfo Init Success~!!\n" );
|
|
}
|
|
|
|
sendMsg.m_MapCode = pRecvMsg->m_MapCode;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &sendMsg, sizeof(sendMsg));
|
|
}
|
|
|
|
//_NA_20100604_BETTER_DOMINATION_MANAGER
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_UPDATE_GUILDINFO_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_UPDATE_GUILDINFO_ACK* recv_msg =
|
|
static_cast<MSG_DZ_DOMINATION_UPDATE_GUILDINFO_ACK*>(pMsg);
|
|
|
|
//--DB ���� ����
|
|
if (recv_msg->db_result_ == MSG_DZ_DOMINATION_UPDATE_GUILDINFO_ACK::DB_RESULT_FAIL)
|
|
{
|
|
MSG_GZ_DOMINATION_UPDATE_GUILDINFO_ACK nak_msg;
|
|
{
|
|
nak_msg.db_result_ = MSG_DZ_DOMINATION_UPDATE_GUILDINFO_ACK::DB_RESULT_FAIL;
|
|
nak_msg.guild_guid_ = recv_msg->guild_guid_;
|
|
nak_msg.domination_join_count_ = 0;
|
|
nak_msg.domination_defense_count_ = 0;
|
|
nak_msg.domination_hunting_count_ = 0;
|
|
}
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &nak_msg, sizeof(nak_msg));
|
|
SUNLOG(eCRITICAL_LOG, "["__FUNCTION__"]DB Store Fail");
|
|
return;
|
|
}
|
|
|
|
//--��� ������ ������ ���� ����
|
|
Guild* request_guild = g_GuildManager.FindGuild(recv_msg->guild_guid_);
|
|
if (request_guild == NULL) return;
|
|
request_guild->SetDominationJointCount(recv_msg->domination_join_count_);
|
|
request_guild->SetDominationDefenseCount(recv_msg->domination_defense_count_);
|
|
request_guild->SetDominationHuntingCount(recv_msg->domination_hunting_count_);
|
|
|
|
MSG_GZ_DOMINATION_UPDATE_GUILDINFO_ACK send_msg;
|
|
{
|
|
send_msg.db_result_ = MSG_DZ_DOMINATION_UPDATE_GUILDINFO_ACK::DB_RESULT_SUCCESS;
|
|
send_msg.guild_guid_ = recv_msg->guild_guid_;
|
|
send_msg.domination_join_count_ = recv_msg->domination_join_count_;
|
|
send_msg.domination_defense_count_ = recv_msg->domination_defense_count_;
|
|
send_msg.domination_hunting_count_ = recv_msg->domination_hunting_count_;
|
|
}
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &send_msg, sizeof(send_msg));
|
|
}
|
|
|
|
//_NA_20110216_INCREASE_DOMINATION_DEFFENSEWALL_POINT
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK* recv_msg =
|
|
static_cast<MSG_DZ_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK*>(pMsg);
|
|
|
|
if (recv_msg->result_value_ == false)
|
|
{
|
|
MSG_GZ_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK nak_msg;
|
|
nak_msg.db_result_ = recv_msg->result_value_;
|
|
nak_msg.domination_info_ = recv_msg->domination_info_;
|
|
nak_msg.item_code = recv_msg->item_code_;
|
|
nak_msg.m_dwKey = recv_msg->m_dwKey;
|
|
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &nak_msg, sizeof(nak_msg));
|
|
SUNLOG(eCRITICAL_LOG, "["__FUNCTION__"]Update Failed to domination info[map:%d]",
|
|
recv_msg->domination_info_.m_FieldCode);
|
|
|
|
return;
|
|
}
|
|
|
|
DominationManager* const domination_manager = DominationManager::Instance();
|
|
|
|
DOMINATION_INFO* info =
|
|
domination_manager->FindDominationInfo(recv_msg->domination_info_.m_FieldCode);
|
|
if (info == NULL)
|
|
{
|
|
SUNLOG(eCRITICAL_LOG, "["__FUNCTION__"]Not found domination info[map:%d]",
|
|
recv_msg->domination_info_.m_FieldCode);
|
|
return;
|
|
}
|
|
|
|
*(info) = recv_msg->domination_info_;
|
|
|
|
MSG_GZ_DOMINATION_ADD_DEFFENSEWALL_POINT_ACK ack_msg;
|
|
ack_msg.db_result_ = recv_msg->result_value_;
|
|
ack_msg.domination_info_ = recv_msg->domination_info_;
|
|
ack_msg.item_code = recv_msg->item_code_;
|
|
ack_msg.m_dwKey = recv_msg->m_dwKey;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &ack_msg, sizeof(ack_msg));
|
|
}
|
|
|
|
//_NA_20110406_CHANGE_RULE_FOR_DOMINATION_JOIN
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_MEMBER_JOIN_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_MEMBER_JOIN_ACK* recv_msg =
|
|
static_cast<MSG_DZ_DOMINATION_MEMBER_JOIN_ACK*>(pMsg);
|
|
|
|
if (recv_msg->db_result_ == false)
|
|
{
|
|
MSG_GZ_DOMINATION_MEMBER_JOIN_ACK nak_msg;
|
|
nak_msg.db_result_ = recv_msg->db_result_;
|
|
nak_msg.map_code_ = recv_msg->map_code_;
|
|
nak_msg.member_info_ = recv_msg->member_info_;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &nak_msg, sizeof(nak_msg));
|
|
|
|
return;
|
|
}
|
|
|
|
DominationManager::Instance()->InsertMember(recv_msg->map_code_,
|
|
recv_msg->member_info_);
|
|
MSG_GZ_DOMINATION_MEMBER_JOIN_ACK ack_msg;
|
|
ack_msg.db_result_ = recv_msg->db_result_;
|
|
ack_msg.map_code_ = recv_msg->map_code_;
|
|
ack_msg.member_info_ = recv_msg->member_info_;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &ack_msg, sizeof(ack_msg));
|
|
}
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_MEMBER_LEAVE_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_MEMBER_LEAVE_ACK* recv_msg =
|
|
static_cast<MSG_DZ_DOMINATION_MEMBER_LEAVE_ACK*>(pMsg);
|
|
|
|
if (recv_msg->db_result_ == false)
|
|
{
|
|
MSG_GZ_DOMINATION_MEMBER_LEAVE_ACK nak_msg;
|
|
nak_msg.db_result_ = recv_msg->db_result_;
|
|
nak_msg.map_code_ = recv_msg->map_code_;
|
|
nak_msg.member_guid_ = recv_msg->member_guid_;
|
|
nak_msg.requester_guid = recv_msg->requester_guid;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &nak_msg, sizeof(nak_msg));
|
|
|
|
return;
|
|
}
|
|
|
|
DominationManager::Instance()->DeleteMember(recv_msg->map_code_,
|
|
recv_msg->member_guid_);
|
|
MSG_GZ_DOMINATION_MEMBER_LEAVE_ACK ack_msg;
|
|
ack_msg.db_result_ = recv_msg->db_result_;
|
|
ack_msg.map_code_ = recv_msg->map_code_;
|
|
ack_msg.member_guid_ = recv_msg->member_guid_;
|
|
ack_msg.requester_guid = recv_msg->requester_guid;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &ack_msg, sizeof(ack_msg));
|
|
}
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_MEMBERLIST_ANS)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_MEMBERLIST_ANS* recv_msg =
|
|
static_cast<MSG_DZ_DOMINATION_MEMBERLIST_ANS*>(pMsg);
|
|
|
|
const BYTE data_count = recv_msg->data_count_;
|
|
if (data_count > _countof(recv_msg->member_list_))
|
|
{
|
|
SUNLOG(
|
|
eCRITICAL_LOG,
|
|
_T("|%s|[?��] ��?�����.|��?���� = %d, ��?���� = %d, ���? = %d|"),
|
|
__FUNCTION__,
|
|
recv_msg->map_code_,
|
|
data_count,
|
|
_countof(recv_msg->member_list_)
|
|
);
|
|
return;
|
|
}
|
|
|
|
const MAPCODE map_code = recv_msg->map_code_;
|
|
|
|
DominationManager* const domination_manager = DominationManager::Instance();
|
|
domination_manager->ClearMembers(map_code);
|
|
|
|
if (data_count > 0)
|
|
{
|
|
for (BYTE i = 0; i < data_count; ++i)
|
|
{
|
|
const DominationMemberInfo& member_info = recv_msg->member_list_[i];
|
|
domination_manager->InsertMember(map_code, member_info);
|
|
}
|
|
}
|
|
domination_manager->SetCompleteLoadMembers(map_code);
|
|
|
|
SUNLOG(
|
|
eDEV_LOG,
|
|
_T("|%s|[Domination] Member info load complete.|map_code = %d, member_count = %d|"),
|
|
__FUNCTION__,
|
|
recv_msg->map_code_,
|
|
data_count
|
|
);
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_DOMINATION_MEMBERLIST_INIT_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_DOMINATION_MEMBERLIST_INIT_ACK* recv_msg =
|
|
static_cast<MSG_DZ_DOMINATION_MEMBERLIST_INIT_ACK*>(pMsg);
|
|
// NOTE: f110525.3L, this result always requires success.
|
|
#if SUN_CODE_BACKUP
|
|
if (recv_msg->db_result_ == false)
|
|
{
|
|
MSG_DZ_DOMINATION_MEMBERLIST_INIT_SYN send_msg;
|
|
Handler_Guild_GuildToDbp::OnDZ_DOMINATION_MEMBERLIST_INIT_SYN(
|
|
g_DBHandler.GetSharedSession(), &send_msg, sizeof(send_msg));
|
|
}
|
|
#endif
|
|
SUNLOG(eCRITICAL_LOG, "?�?�?�?���?���?�");
|
|
}
|
|
/************************************************************************/
|
|
/* ���� ������ ����� �?� END */
|
|
/************************************************************************/
|
|
|
|
#ifdef _NA_003923_20120130_GUILD_RENEWAL
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_WRITE_IN_GAME_LOG_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_GUILD_WRITE_IN_GAME_LOG_ACK* recv_msg =
|
|
static_cast<MSG_DZ_GUILD_WRITE_IN_GAME_LOG_ACK*>(pMsg);
|
|
|
|
const GUILDGUID guild_guid = recv_msg->guild_guid_;
|
|
Guild* guild = g_GuildManager.FindGuild(guild_guid);
|
|
if (guild == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
guild->GetGuildInGameLog()->InsertLogToLIst(recv_msg->log_data_);
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_IN_GAME_LOG_LIST_ANS)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
const MSG_DZ_GUILD_IN_GAME_LOG_LIST_ANS* recv_msg =
|
|
static_cast<MSG_DZ_GUILD_IN_GAME_LOG_LIST_ANS*>(pMsg);
|
|
|
|
const GUILDGUID guild_guid = recv_msg->guild_guid_;
|
|
Guild* guild = g_GuildManager.FindGuild(guild_guid);
|
|
if (guild == NULL)
|
|
{
|
|
return;
|
|
}
|
|
|
|
guild->GetGuildInGameLog()->InitializeGuildLog(recv_msg->log_data_, recv_msg->log_count_);
|
|
}
|
|
#endif //_NA_003923_20120130_GUILD_RENEWAL
|
|
|
|
#ifdef _NA_008334_20150608_SONNENSCHEIN
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_SONNENSCHEIN_INITIALIZE_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
|
|
MSG_DZ_GUILD_SONNENSCHEIN_INITIALIZE_ACK * ack_msg = \
|
|
static_cast<MSG_DZ_GUILD_SONNENSCHEIN_INITIALIZE_ACK*>(pMsg);
|
|
|
|
//��� �??��� ��� �?�?
|
|
g_GuildManager.InitializeAllSonnenScheinPhase();
|
|
|
|
MSG_GZ_GUILD_SONNENSCHEIN_INITIALIZE_CMD init_ack_msg;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &init_ack_msg, sizeof(init_ack_msg));
|
|
}
|
|
|
|
Handler_Guild_DbpToGuild_IMPL(DZ_GUILD_SONNENSCHEIN_UPDATE_ACK)
|
|
{
|
|
__TOUCHED((pServerSession, pMsg, wSize));WAVERIX_GUILD_DEBUGGING();
|
|
|
|
MSG_DZ_GUILD_SONNENSCHEIN_UPDATE_ACK * ack_msg = \
|
|
static_cast<MSG_DZ_GUILD_SONNENSCHEIN_UPDATE_ACK*>(pMsg);
|
|
|
|
//DBP������ ��������� �??��� ��?� ����
|
|
g_GuildManager.SetGuildSonnenScheinPhase(ack_msg->guild_guid, ack_msg->sonnenschein_phase);
|
|
|
|
MSG_GZ_GUILD_SONNENSCHEIN_UPDATE_ACK update_ack_msg;
|
|
update_ack_msg.guild_guid = ack_msg->guild_guid;
|
|
update_ack_msg.sonnenschein_phase = ack_msg->sonnenschein_phase;
|
|
g_DBProxyServer.SendToSessionType(GAME_SERVER, &update_ack_msg, sizeof(update_ack_msg));
|
|
}
|
|
#endif //_NA_008334_20150608_SONNENSCHEIN
|