From e3f4d806ed0a8b42b315cc84e965a47ac29cdf3f Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 12 Oct 2020 14:47:22 +0800 Subject: [PATCH] gamelog ok --- server/imserver/gamelog.cc | 43 ++++++++++++++++++++++++++++++++++++++ server/imserver/gamelog.h | 16 +++++++++++++- server/imserver/guild.cc | 34 ++++++++++++++++++++++++++++++ server/imserver/player.cc | 6 +++++- 4 files changed, 97 insertions(+), 2 deletions(-) diff --git a/server/imserver/gamelog.cc b/server/imserver/gamelog.cc index c67a2ac..8f5c03b 100644 --- a/server/imserver/gamelog.cc +++ b/server/imserver/gamelog.cc @@ -4,9 +4,12 @@ #include "framework/cpp/tglog.h" #include #include "player.h" +#include "guild.h" #include "app.h" +#include "cs_proto.pb.h" + const char* const FRIEND_LOGIN_EVENT = "friend_login"; const char* const FRIEND_LOGOUT_EVENT = "friend_logout"; const char* const FRIEND_APPLY_EVENT = "friend_apply"; @@ -197,3 +200,43 @@ void GameLog::FriendDelete(Player* hum, const std::string& account_id) delete prop; prop = nullptr; } + +void GameLog::GuildCreate(Player* hum, long long guild_id, const std::string& guild_name) +{ + +} + +void GameLog::GuildApply(Guild* guild, const cs::MFBaseUserData& base_data) +{ + +} + +void GameLog::GuildRefuse(Guild* guild, GuildMember* sender, long long db_idx, const std::string& account_id) +{ + +} + +void GameLog::GuildAgree(Guild* guild, GuildMember* sender, long long db_idx, const std::string& account_id) +{ + +} + +void GameLog::GuildKick(Guild* guild, GuildMember* sender, const std::string& account_id) +{ + +} + +void GameLog::GuildQuit(Guild* guild, GuildMember* sender) +{ + +} + +void GameLog::GuildSetJob(Guild* guild, GuildMember* sender, int old_job) +{ + +} + +void GameLog::GuildAgreeInvite(Guild* guild, GuildMember* sender) +{ + +} diff --git a/server/imserver/gamelog.h b/server/imserver/gamelog.h index 7511c26..f19d706 100644 --- a/server/imserver/gamelog.h +++ b/server/imserver/gamelog.h @@ -1,6 +1,13 @@ #pragma once +namespace cs +{ + class MFBaseUserData; +} + class Player; +class Guild; +struct GuildMember; class GameLog : public a8::Singleton { private: @@ -19,6 +26,13 @@ class GameLog : public a8::Singleton void FriendAgree(Player* hum, long long db_idx, const std::string& account_id); void FriendDelete(Player* hum, const std::string& account_id); - private: + void GuildCreate(Player* hum, long long guild_id, const std::string& guild_name); + void GuildApply(Guild* guild, const cs::MFBaseUserData& base_data); + void GuildRefuse(Guild* guild, GuildMember* sender, long long db_idx, const std::string& account_id); + void GuildAgree(Guild* guild, GuildMember* sender, long long db_idx, const std::string& account_id); + void GuildKick(Guild* guild, GuildMember* sender, const std::string& account_id); + void GuildQuit(Guild* guild, GuildMember* sender); + void GuildSetJob(Guild* guild, GuildMember* sender, int old_job); + void GuildAgreeInvite(Guild* guild, GuildMember* sender); }; diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index d056bda..28e05a8 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -13,6 +13,7 @@ #include "dbhelper.h" #include "synchelper.h" #include "player.h" +#include "gamelog.h" #include "framework/cpp/httpclientpool.h" @@ -265,6 +266,7 @@ void Guild::_CMGuildJoin(f8::MsgHdr& hdr, const cs::CMGuildJoin& msg) SyncHelper::Instance()->SyncGuildMemberUpdateOnlyOnline(this, member, kGuildUpdateReasonJoin); } else { DBHelper::Instance()->AddGuildApply(this, forward_msg->context().user_info()); + GameLog::Instance()->GuildApply(this, forward_msg->context().user_info().base_data()); } } @@ -383,6 +385,16 @@ void Guild::_CMGuildRefuse(f8::MsgHdr& hdr, const cs::CMGuildRefuse& msg) ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data; cs::SMGuildRefuse respmsg; + GuildMember* sender = GetMember(forward_msg->context().user_info().base_data().account_id()); + if (!sender) { + SendErrorMsg(hdr.socket_handle, forward_msg->context(), "服务器内部错误"); + respmsg.set_errcode(2); + respmsg.set_errmsg("服务器内部错误"); + GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, + forward_msg->context(), + respmsg); + return; + } GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, forward_msg->context(), respmsg); @@ -394,6 +406,10 @@ void Guild::_CMGuildRefuse(f8::MsgHdr& hdr, const cs::CMGuildRefuse& msg) kGuildApplyReject ); ClearApplyByIdx(msg.apply().idx()); + GameLog::Instance()->GuildRefuse(this, + sender, + msg.apply().idx(), + msg.apply().base_data().account_id()); } void Guild::_CMGuildKick(f8::MsgHdr& hdr, const cs::CMGuildKick& msg) @@ -458,6 +474,11 @@ void Guild::_CMGuildKick(f8::MsgHdr& hdr, const cs::CMGuildKick& msg) RemoveMember(sender->account_id, member->account_id, kGuildKick); + GameLog::Instance()->GuildKick( + this, + sender, + msg.account_id() + ); } void Guild::_CMGuildQuit(f8::MsgHdr& hdr, const cs::CMGuildQuit& msg) @@ -470,6 +491,7 @@ void Guild::_CMGuildQuit(f8::MsgHdr& hdr, const cs::CMGuildQuit& msg) respmsg); GuildMember* sender = GetMember(forward_msg->context().user_info().base_data().account_id()); if (sender) { + GameLog::Instance()->GuildQuit(this, sender); std::string src_account_id = sender->account_id; int src_job = GetMemberJob(sender->account_id); RemoveMember(sender->account_id, @@ -514,6 +536,7 @@ void Guild::_CMGuildQuit(f8::MsgHdr& hdr, const cs::CMGuildQuit& msg) void Guild::_CMGuildDismiss(f8::MsgHdr& hdr, const cs::CMGuildDismiss& msg) { + #if 0 ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data; cs::SMGuildDismiss respmsg; @@ -539,6 +562,7 @@ void Guild::_CMGuildDismiss(f8::MsgHdr& hdr, const cs::CMGuildDismiss& msg) } guild_status_ = kGuildDismissed; SaveToDB(); + #endif } void Guild::_CMGuildChange(f8::MsgHdr& hdr, const cs::CMGuildChange& msg) @@ -924,6 +948,9 @@ void Guild::_CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob& } break; } + GameLog::Instance()->GuildSetJob(this, + sender, + src_job); } { auto p = respmsg.add_chged_members(); @@ -977,6 +1004,7 @@ void Guild::_CMGuildAgreeInvite(f8::MsgHdr& hdr, const cs::CMGuildAgreeInvite& m kGuildApplyAgree ); ClearApplyBySenderId(forward_msg->context().user_info().base_data().account_id()); + GameLog::Instance()->GuildAgreeInvite(this, member); } int Guild::GetMemberJob(const std::string& account_id) @@ -1517,4 +1545,10 @@ void Guild::GuildAgreeCb(int socket_handle, const ss::MFIMMsgConext& context, co }); } + GameLog::Instance()->GuildAgree( + this, + sender, + msg.apply().idx(), + msg.apply().base_data().account_id() + ); } diff --git a/server/imserver/player.cc b/server/imserver/player.cc index 527c4e9..fb26e0a 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -700,7 +700,8 @@ void Player::_CMGuildCreate(f8::MsgHdr& hdr, const cs::CMGuildCreate& msg) f8::HttpClientPool::Instance()->HttpGet ( a8::XParams() - .SetSender(msg_context), + .SetSender(msg_context) + .SetParam1(msg.guild_name()), [] (a8::XParams& param, a8::XObject& data) { MsgContext* msg_context = (MsgContext*)param.sender.GetUserData(); @@ -709,6 +710,9 @@ void Player::_CMGuildCreate(f8::MsgHdr& hdr, const cs::CMGuildCreate& msg) if (hum && hum->AccountId() == msg_context->account_id) { if (data.At("errcode")->AsXValue().GetInt() == 0) { DBHelper::Instance()->ConfirmGuild(hum, msg_context->guild_id); + GameLog::Instance()->GuildCreate(hum, + msg_context->guild_id, + param.param1); } else { hum->ShowErrorMsg(data.At("errmsg")->AsXValue().GetString()); }