1
This commit is contained in:
parent
40d471653f
commit
0848fc5100
@ -447,6 +447,29 @@ void Guild::_CMGuildGainExp(f8::MsgHdr& hdr, const cs::CMGuildGainExp& msg)
|
|||||||
respmsg);
|
respmsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Guild::_CMGuildSearchMember(f8::MsgHdr& hdr, const cs::CMGuildSearchMember& msg)
|
||||||
|
{
|
||||||
|
ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data;
|
||||||
|
|
||||||
|
cs::SMGuildSearchMember respmsg;
|
||||||
|
GuildMember* member = GetMember(msg.target_id());
|
||||||
|
if (member) {
|
||||||
|
FillGuildBasic(respmsg.mutable_guild_basic());
|
||||||
|
auto p = respmsg.mutable_user_info();
|
||||||
|
TypeConvert::Convert(guild_id_,
|
||||||
|
GetMemberJob(member->account_id),
|
||||||
|
*member,
|
||||||
|
*(p->mutable_base_data()));
|
||||||
|
TypeConvert::Convert(member->temp_custom_data, *p->mutable_temp_custom_data());
|
||||||
|
} else {
|
||||||
|
respmsg.set_errcode(1);
|
||||||
|
respmsg.set_errmsg("还没有公会");
|
||||||
|
}
|
||||||
|
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
|
||||||
|
forward_msg->context(),
|
||||||
|
respmsg);
|
||||||
|
}
|
||||||
|
|
||||||
void Guild::_CMGuildRefuse(f8::MsgHdr& hdr, const cs::CMGuildRefuse& msg)
|
void Guild::_CMGuildRefuse(f8::MsgHdr& hdr, const cs::CMGuildRefuse& msg)
|
||||||
{
|
{
|
||||||
ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data;
|
ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data;
|
||||||
|
@ -29,6 +29,7 @@ public:
|
|||||||
void _CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob& msg);
|
void _CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob& msg);
|
||||||
void _CMGuildAgreeInvite(f8::MsgHdr& hdr, const cs::CMGuildAgreeInvite& msg);
|
void _CMGuildAgreeInvite(f8::MsgHdr& hdr, const cs::CMGuildAgreeInvite& msg);
|
||||||
void _CMGuildGainExp(f8::MsgHdr& hdr, const cs::CMGuildGainExp& msg);
|
void _CMGuildGainExp(f8::MsgHdr& hdr, const cs::CMGuildGainExp& msg);
|
||||||
|
void _CMGuildSearchMember(f8::MsgHdr& hdr, const cs::CMGuildSearchMember& msg);
|
||||||
|
|
||||||
long long GuildId() { return guild_id_; }
|
long long GuildId() { return guild_id_; }
|
||||||
int GuildLv() { return guild_lv_; }
|
int GuildLv() { return guild_lv_; }
|
||||||
|
@ -148,6 +148,7 @@ void HandlerMgr::RegisterNetMsgHandlers()
|
|||||||
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildMemberSetJob);
|
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildMemberSetJob);
|
||||||
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildAgreeInvite);
|
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildAgreeInvite);
|
||||||
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildGainExp);
|
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildGainExp);
|
||||||
|
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildSearchMember);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle,
|
void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle,
|
||||||
|
@ -1249,6 +1249,62 @@ void Player::_CMGuildGainExp(f8::MsgHdr& hdr, const cs::CMGuildGainExp& msg)
|
|||||||
|
|
||||||
void Player::_CMGuildSearchMember(f8::MsgHdr& hdr, const cs::CMGuildSearchMember& msg)
|
void Player::_CMGuildSearchMember(f8::MsgHdr& hdr, const cs::CMGuildSearchMember& msg)
|
||||||
{
|
{
|
||||||
|
auto on_ok =
|
||||||
|
[] (a8::XParams& param, const f8::DataSet* data_set)
|
||||||
|
{
|
||||||
|
f8::MsgHdr* hdr_copy = (f8::MsgHdr*)param.param3.GetUserData();
|
||||||
|
Player* hum = PlayerMgr::Instance()->GetPlayerByAccountId(param.sender.GetString());
|
||||||
|
if (hum) {
|
||||||
|
if (data_set->empty()) {
|
||||||
|
cs::SMGuildSearchMember respmsg;
|
||||||
|
respmsg.set_errcode(1);
|
||||||
|
respmsg.set_errmsg("还没有公会");
|
||||||
|
hum->SendMsg(respmsg);
|
||||||
|
} else {
|
||||||
|
for (auto& row : *data_set) {
|
||||||
|
long long guild_id = a8::XValue(row[0]);
|
||||||
|
hum->ForwardGuildCMMsg(*hdr_copy, guild_id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
f8::MsgHdr::Destroy(hdr_copy);
|
||||||
|
};
|
||||||
|
auto on_error =
|
||||||
|
[] (a8::XParams& param, int error_code, const std::string& error_msg)
|
||||||
|
{
|
||||||
|
f8::MsgHdr* hdr_copy = (f8::MsgHdr*)param.param3.GetUserData();
|
||||||
|
cs::SMGuildSearchMember respmsg;
|
||||||
|
respmsg.set_errcode(1);
|
||||||
|
respmsg.set_errmsg("还没有公会");
|
||||||
|
Player* hum = PlayerMgr::Instance()->GetPlayerByAccountId(param.sender.GetString());
|
||||||
|
if (hum) {
|
||||||
|
hum->SendMsg(respmsg);
|
||||||
|
}
|
||||||
|
f8::MsgHdr::Destroy(hdr_copy);
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int crc32_code = a8::openssl::Crc32
|
||||||
|
(
|
||||||
|
(unsigned char*)msg.target_id().data(),
|
||||||
|
msg.target_id().size()
|
||||||
|
);
|
||||||
|
f8::MsgHdr* hdr_copy = hdr.Clone();
|
||||||
|
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(crc32_code);
|
||||||
|
DBEngine::Instance()->ExecAsyncQuery
|
||||||
|
(
|
||||||
|
conn_info,
|
||||||
|
"SELECT guild_id FROM `user` WHERE account_id='%s';",
|
||||||
|
{msg.target_id()},
|
||||||
|
a8::XParams()
|
||||||
|
.SetSender(AccountId())
|
||||||
|
.SetParam1(hdr.socket_handle)
|
||||||
|
.SetParam2(msg.target_id())
|
||||||
|
.SetParam3(hdr_copy),
|
||||||
|
on_ok,
|
||||||
|
on_error,
|
||||||
|
crc32_code
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::_SS_IM_FriendAgreeRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeRequest& msg)
|
void Player::_SS_IM_FriendAgreeRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeRequest& msg)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user