1
This commit is contained in:
parent
2e4b6f38db
commit
16ac5a5163
@ -26,6 +26,9 @@ enum GuildApplyStatus_e
|
|||||||
void Guild::Init()
|
void Guild::Init()
|
||||||
{
|
{
|
||||||
logdb_ = new ss::MFGuildLogDB;
|
logdb_ = new ss::MFGuildLogDB;
|
||||||
|
for (size_t i = 0; i < kGuildJobMax; ++i) {
|
||||||
|
job_hash_.push_back(std::set<std::string>());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Guild::UnInit()
|
void Guild::UnInit()
|
||||||
@ -38,12 +41,6 @@ void Guild::UnInit()
|
|||||||
delete pair.second;
|
delete pair.second;
|
||||||
}
|
}
|
||||||
apply_hash_.clear();
|
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_);
|
A8_SAFE_DELETE(logdb_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,10 +157,6 @@ void Guild::Deserialize(const std::string& guild_data,
|
|||||||
}
|
}
|
||||||
member_job_hash_[account_id] = job;
|
member_job_hash_[account_id] = job;
|
||||||
std::set<std::string>* members = GetJobMembers(job);
|
std::set<std::string>* members = GetJobMembers(job);
|
||||||
if (!members) {
|
|
||||||
members = new std::set<std::string>();
|
|
||||||
job_hash_[job] = members;
|
|
||||||
}
|
|
||||||
members->insert(account_id);
|
members->insert(account_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -173,10 +166,6 @@ void Guild::Deserialize(const std::string& guild_data,
|
|||||||
{
|
{
|
||||||
member_job_hash_[owner_id_] = kGuildOwner;
|
member_job_hash_[owner_id_] = kGuildOwner;
|
||||||
std::set<std::string>* members = GetJobMembers(kGuildOwner);
|
std::set<std::string>* members = GetJobMembers(kGuildOwner);
|
||||||
if (!members) {
|
|
||||||
members = new std::set<std::string>();
|
|
||||||
job_hash_[kGuildOwner] = members;
|
|
||||||
}
|
|
||||||
members->insert(owner_id_);
|
members->insert(owner_id_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -401,7 +390,7 @@ void Guild::_CMGuildMemberList(f8::MsgHdr& hdr, const cs::CMGuildMemberList& msg
|
|||||||
TypeConvert::Convert(guild_id_,
|
TypeConvert::Convert(guild_id_,
|
||||||
GetMemberJob(sorted_members_[i]->account_id),
|
GetMemberJob(sorted_members_[i]->account_id),
|
||||||
*sorted_members_[i],
|
*sorted_members_[i],
|
||||||
*p);
|
*(p->mutable_base_data()));
|
||||||
}
|
}
|
||||||
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
|
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
|
||||||
forward_msg->context(),
|
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)
|
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)
|
int Guild::GetMemberJob(const std::string& account_id)
|
||||||
@ -547,7 +578,7 @@ std::set<std::string>* Guild::GetJobMembers(int job)
|
|||||||
if (!IsValidGuildJob(job)) {
|
if (!IsValidGuildJob(job)) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
return job_hash_[job];
|
return &job_hash_[job];
|
||||||
}
|
}
|
||||||
|
|
||||||
int Guild::GetJobMemberNum(int job)
|
int Guild::GetJobMemberNum(int job)
|
||||||
|
@ -65,7 +65,7 @@ private:
|
|||||||
ss::MFGuildLogDB* logdb_ = nullptr;
|
ss::MFGuildLogDB* logdb_ = nullptr;
|
||||||
std::map<long long, GuildApply*> apply_hash_;
|
std::map<long long, GuildApply*> apply_hash_;
|
||||||
std::map<std::string, int> member_job_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;
|
int gameid_ = 0;
|
||||||
long long guild_id_ = 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)
|
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)
|
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 int32 errcode = 1; //错误码
|
||||||
optional string errmsg = 2; //错误信息
|
optional string errmsg = 2; //错误信息
|
||||||
optional MFPaging paging = 3; //分页信息
|
optional MFPaging paging = 3; //分页信息
|
||||||
repeated MFBaseUserData member_list = 4; //公会成员列表
|
repeated MFUserInfo member_list = 4; //公会成员列表
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取公会申请列表
|
//获取公会申请列表
|
||||||
|
Loading…
x
Reference in New Issue
Block a user