1
This commit is contained in:
parent
59d2829db0
commit
951676bcd8
@ -20,7 +20,8 @@ enum GuildJob_e
|
|||||||
kGuildMember = 0,
|
kGuildMember = 0,
|
||||||
kGuildOwner = 1,
|
kGuildOwner = 1,
|
||||||
kGuildAdmin = 2,
|
kGuildAdmin = 2,
|
||||||
kGuildElite = 3
|
kGuildElite = 3,
|
||||||
|
kGuildJobMax
|
||||||
};
|
};
|
||||||
|
|
||||||
enum InnerMesssage_e
|
enum InnerMesssage_e
|
||||||
|
@ -38,6 +38,12 @@ 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_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,7 +488,22 @@ void Guild::_CMGuildMemberFire(f8::MsgHdr& hdr, const cs::CMGuildMemberFire& msg
|
|||||||
|
|
||||||
int Guild::GetMemberJob(const std::string& account_id)
|
int Guild::GetMemberJob(const std::string& account_id)
|
||||||
{
|
{
|
||||||
return 0;
|
auto itr = member_job_hash_.find(account_id);
|
||||||
|
int job = itr != member_job_hash_.end() ? itr->second : kGuildMember;
|
||||||
|
if (job < kGuildMember ||
|
||||||
|
job > kGuildJobMax) {
|
||||||
|
return kGuildMember;
|
||||||
|
} else {
|
||||||
|
return job;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::set<std::string>* Guild::GetJobMembers(int job)
|
||||||
|
{
|
||||||
|
if (job < 0 || job > (int)job_hash_.size()) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
return job_hash_[job];
|
||||||
}
|
}
|
||||||
|
|
||||||
void Guild::FillGuildBasic(cs::MFGuildBasic* guild_basic)
|
void Guild::FillGuildBasic(cs::MFGuildBasic* guild_basic)
|
||||||
|
@ -31,6 +31,7 @@ public:
|
|||||||
|
|
||||||
long long GuildId() { return guild_id_; }
|
long long GuildId() { return guild_id_; }
|
||||||
int GetMemberJob(const std::string& account_id);
|
int GetMemberJob(const std::string& account_id);
|
||||||
|
std::set<std::string>* GetJobMembers(int job);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool IsFull();
|
bool IsFull();
|
||||||
@ -61,6 +62,8 @@ private:
|
|||||||
std::vector<GuildMember*> sorted_members_;
|
std::vector<GuildMember*> sorted_members_;
|
||||||
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::array<std::set<std::string>*, kGuildJobMax> job_hash_ = {};
|
||||||
|
|
||||||
int gameid_ = 0;
|
int gameid_ = 0;
|
||||||
long long guild_id_ = 0;
|
long long guild_id_ = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user