This commit is contained in:
aozhiwei 2019-07-25 20:15:43 +08:00
parent c469a91cbf
commit 72c8797fb5
2 changed files with 31 additions and 0 deletions

View File

@ -40,6 +40,7 @@ void Room::Init(const cs::CMJoin& msg)
room_unionid = msg.team_uuid(); room_unionid = msg.team_uuid();
{ {
RoomMember p; RoomMember p;
p.entity_uniid = AllocUniid();
p.accountid = msg.account_id(); p.accountid = msg.account_id();
p.name = msg.name(); p.name = msg.name();
p.avatar_url = msg.avatar_url(); p.avatar_url = msg.avatar_url();
@ -50,6 +51,7 @@ void Room::Init(const cs::CMJoin& msg)
for (auto& member : msg.room_member()) { for (auto& member : msg.room_member()) {
if (members_hash_.size() < kROOM_MAX_PLAYER_NUM) { if (members_hash_.size() < kROOM_MAX_PLAYER_NUM) {
RoomMember p; RoomMember p;
p.entity_uniid = AllocUniid();
p.accountid = member.account_id(); p.accountid = member.account_id();
p.name = member.name(); p.name = member.name();
p.avatar_url = member.avatar_url(); p.avatar_url = member.avatar_url();
@ -69,6 +71,7 @@ void Room::Init(const cs::CMJoin& msg)
std::string robot_id = a8::Format("$robot_%d", {tmp_robot_meta.i->id()}); std::string robot_id = a8::Format("$robot_%d", {tmp_robot_meta.i->id()});
if (members_hash_.find(robot_id) == members_hash_.end()) { if (members_hash_.find(robot_id) == members_hash_.end()) {
RoomMember p; RoomMember p;
p.entity_uniid = AllocUniid();
p.accountid = robot_id; p.accountid = robot_id;
p.name = tmp_robot_meta.i->name(); p.name = tmp_robot_meta.i->name();
p.avatar_url = ""; p.avatar_url = "";
@ -205,9 +208,11 @@ int Room::AliveCount()
void Room::AddPlayer(Player* hum) void Room::AddPlayer(Player* hum)
{ {
assert(gas_data.gas_mode == kGasInactive); assert(gas_data.gas_mode == kGasInactive);
int entity_uniid = 0;
{ {
auto itr = members_hash_.find(hum->account_id); auto itr = members_hash_.find(hum->account_id);
if (itr != members_hash_.end()) { if (itr != members_hash_.end()) {
entity_uniid = itr->second.entity_uniid;
itr->second.online = true; itr->second.online = true;
} else { } else {
abort(); abort();
@ -218,7 +223,11 @@ void Room::AddPlayer(Player* hum)
RandRemoveAndroid(); RandRemoveAndroid();
} }
#endif #endif
#if 1
hum->entity_uniid = entity_uniid;
#else
hum->entity_uniid = AllocUniid(); hum->entity_uniid = AllocUniid();
#endif
hum->born_point = AllocBornPoint(); hum->born_point = AllocBornPoint();
{ {
const MetaData::MapTplThing& thing_tpl = (*born_points_)[hum->born_point]; const MetaData::MapTplThing& thing_tpl = (*born_points_)[hum->born_point];
@ -544,6 +553,22 @@ bool Room::IsGameOver()
void Room::FillSMUiUpdate(cs::SMUiUpdate& msg) void Room::FillSMUiUpdate(cs::SMUiUpdate& msg)
{ {
#if 1
for (auto& pair : members_hash_) {
cs::MFPlayerBattlingStats* p = msg.add_player_stats();
p->set_player_id(pair.second.entity_uniid);
p->set_name(pair.second.name);
p->set_kills(0);
p->set_last_kill_timeseq(0);
for (auto& pair2 : human_hash_) {
if (pair2.second->account_id == pair.second.accountid) {
p->set_kills(pair2.second->stats.kills);
p->set_last_kill_timeseq(pair2.second->stats.last_kill_timeseq);
break;
}
}
}
#else
for (auto& pair : human_hash_) { for (auto& pair : human_hash_) {
cs::MFPlayerBattlingStats* p = msg.add_player_stats(); cs::MFPlayerBattlingStats* p = msg.add_player_stats();
p->set_player_id(pair.second->entity_uniid); p->set_player_id(pair.second->entity_uniid);
@ -551,6 +576,7 @@ void Room::FillSMUiUpdate(cs::SMUiUpdate& msg)
p->set_kills(pair.second->stats.kills); p->set_kills(pair.second->stats.kills);
p->set_last_kill_timeseq(pair.second->stats.last_kill_timeseq); p->set_last_kill_timeseq(pair.second->stats.last_kill_timeseq);
} }
#endif
} }
Hero* Room::CreateHero(Human* hum) Hero* Room::CreateHero(Human* hum)
@ -1328,7 +1354,11 @@ void Room::SpllyAndroid()
#if 0 #if 0
hum->robot_meta = robot_meta; hum->robot_meta = robot_meta;
#endif #endif
#if 1
hum->entity_uniid = pair.second.entity_uniid;
#else
hum->entity_uniid = AllocUniid(); hum->entity_uniid = AllocUniid();
#endif
hum->born_point = AllocBornPoint(); hum->born_point = AllocBornPoint();
{ {
const MetaData::MapTplThing& thing_tpl = (*born_points_)[hum->born_point]; const MetaData::MapTplThing& thing_tpl = (*born_points_)[hum->born_point];

View File

@ -25,6 +25,7 @@ namespace MetaData
struct RoomMember struct RoomMember
{ {
int entity_uniid = 0;
std::string accountid; std::string accountid;
std::string name; std::string name;
std::string avatar_url; std::string avatar_url;