1
This commit is contained in:
parent
2e4b6f38db
commit
16ac5a5163
@ -26,6 +26,9 @@ enum GuildApplyStatus_e
|
||||
void Guild::Init()
|
||||
{
|
||||
logdb_ = new ss::MFGuildLogDB;
|
||||
for (size_t i = 0; i < kGuildJobMax; ++i) {
|
||||
job_hash_.push_back(std::set<std::string>());
|
||||
}
|
||||
}
|
||||
|
||||
void Guild::UnInit()
|
||||
@ -38,12 +41,6 @@ void Guild::UnInit()
|
||||
delete pair.second;
|
||||
}
|
||||
apply_hash_.clear();
|
||||
for (size_t i = 0; i < job_hash_.size(); ++i) {
|
||||
if (job_hash_[i]) {
|
||||
delete job_hash_[i];
|
||||
job_hash_[i] = nullptr;
|
||||
}
|
||||
}
|
||||
A8_SAFE_DELETE(logdb_);
|
||||
}
|
||||
|
||||
@ -160,10 +157,6 @@ void Guild::Deserialize(const std::string& guild_data,
|
||||
}
|
||||
member_job_hash_[account_id] = job;
|
||||
std::set<std::string>* members = GetJobMembers(job);
|
||||
if (!members) {
|
||||
members = new std::set<std::string>();
|
||||
job_hash_[job] = members;
|
||||
}
|
||||
members->insert(account_id);
|
||||
}
|
||||
}
|
||||
@ -173,10 +166,6 @@ void Guild::Deserialize(const std::string& guild_data,
|
||||
{
|
||||
member_job_hash_[owner_id_] = kGuildOwner;
|
||||
std::set<std::string>* members = GetJobMembers(kGuildOwner);
|
||||
if (!members) {
|
||||
members = new std::set<std::string>();
|
||||
job_hash_[kGuildOwner] = members;
|
||||
}
|
||||
members->insert(owner_id_);
|
||||
}
|
||||
}
|
||||
@ -401,7 +390,7 @@ void Guild::_CMGuildMemberList(f8::MsgHdr& hdr, const cs::CMGuildMemberList& msg
|
||||
TypeConvert::Convert(guild_id_,
|
||||
GetMemberJob(sorted_members_[i]->account_id),
|
||||
*sorted_members_[i],
|
||||
*p);
|
||||
*(p->mutable_base_data()));
|
||||
}
|
||||
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
|
||||
forward_msg->context(),
|
||||
@ -527,7 +516,49 @@ void Guild::_CMGuildLog(f8::MsgHdr& hdr, const cs::CMGuildLog& msg)
|
||||
|
||||
void Guild::_CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob& msg)
|
||||
{
|
||||
ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data;
|
||||
|
||||
cs::SMGuildMemberSetJob respmsg;
|
||||
|
||||
if (!IsValidGuildJob(msg.job())) {
|
||||
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;
|
||||
}
|
||||
GuildMember* sender = GetMember(forward_msg->context().user_info().base_data().account_id());
|
||||
if (!sender) {
|
||||
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "服务器内部错误");
|
||||
respmsg.set_errcode(3);
|
||||
respmsg.set_errmsg("权限不够");
|
||||
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
|
||||
forward_msg->context(),
|
||||
respmsg);
|
||||
return;
|
||||
}
|
||||
if (GetMemberJob(sender->account_id) != kGuildOwner) {
|
||||
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "权限不够");
|
||||
respmsg.set_errcode(3);
|
||||
respmsg.set_errmsg("权限不够");
|
||||
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
|
||||
forward_msg->context(),
|
||||
respmsg);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (msg.job()) {
|
||||
case kGuildOwner:
|
||||
{
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
|
||||
forward_msg->context(),
|
||||
respmsg);
|
||||
}
|
||||
|
||||
int Guild::GetMemberJob(const std::string& account_id)
|
||||
@ -547,7 +578,7 @@ std::set<std::string>* Guild::GetJobMembers(int job)
|
||||
if (!IsValidGuildJob(job)) {
|
||||
return nullptr;
|
||||
}
|
||||
return job_hash_[job];
|
||||
return &job_hash_[job];
|
||||
}
|
||||
|
||||
int Guild::GetJobMemberNum(int job)
|
||||
|
@ -65,7 +65,7 @@ private:
|
||||
ss::MFGuildLogDB* logdb_ = nullptr;
|
||||
std::map<long long, GuildApply*> apply_hash_;
|
||||
std::map<std::string, int> member_job_hash_;
|
||||
std::array<std::set<std::string>*, kGuildJobMax> job_hash_ = {};
|
||||
std::vector<std::set<std::string>> job_hash_;
|
||||
|
||||
int gameid_ = 0;
|
||||
long long guild_id_ = 0;
|
||||
|
@ -927,7 +927,14 @@ void Player::_CMGuildLog(f8::MsgHdr& hdr, const cs::CMGuildLog& msg)
|
||||
|
||||
void Player::_CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob& msg)
|
||||
{
|
||||
|
||||
cs::SMGuildMemberSetJob respmsg;
|
||||
if (GuildId() == 0) {
|
||||
respmsg.set_errcode(1);
|
||||
respmsg.set_errmsg("你还没有公会");
|
||||
SendMsg(respmsg);
|
||||
return;
|
||||
}
|
||||
ForwardGuildCMMsg(hdr, GuildId());
|
||||
}
|
||||
|
||||
void Player::_SS_IM_FriendAgreeRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeRequest& msg)
|
||||
|
@ -486,7 +486,7 @@ message SMGuildMemberList
|
||||
optional int32 errcode = 1; //错误码
|
||||
optional string errmsg = 2; //错误信息
|
||||
optional MFPaging paging = 3; //分页信息
|
||||
repeated MFBaseUserData member_list = 4; //公会成员列表
|
||||
repeated MFUserInfo member_list = 4; //公会成员列表
|
||||
}
|
||||
|
||||
//获取公会申请列表
|
||||
|
Loading…
x
Reference in New Issue
Block a user