1
This commit is contained in:
parent
c9f5a39d5d
commit
f00ed16184
@ -36,53 +36,6 @@ Room::~Room()
|
||||
|
||||
void Room::Init(const cs::CMJoin& msg)
|
||||
{
|
||||
{
|
||||
room_unionid = msg.team_uuid();
|
||||
{
|
||||
RoomMember p;
|
||||
p.entity_uniid = AllocUniid();
|
||||
p.accountid = msg.account_id();
|
||||
p.name = msg.name();
|
||||
p.avatar_url = msg.avatar_url();
|
||||
p.tank_id = msg.baseskin();
|
||||
p.tankskin_id = msg.tankskin().skin_id();
|
||||
members_hash_[p.accountid] = p;
|
||||
}
|
||||
for (auto& member : msg.room_member()) {
|
||||
if (members_hash_.size() < kROOM_MAX_PLAYER_NUM) {
|
||||
RoomMember p;
|
||||
p.entity_uniid = AllocUniid();
|
||||
p.accountid = member.account_id();
|
||||
p.name = member.name();
|
||||
p.avatar_url = member.avatar_url();
|
||||
p.tank_id = member.skin().skin_id();
|
||||
p.tankskin_id = member.tankskin().skin_id();
|
||||
members_hash_[p.accountid] = p;
|
||||
}
|
||||
}
|
||||
int try_count = 0;
|
||||
while (members_hash_.size() < kROOM_MAX_PLAYER_NUM) {
|
||||
if (try_count > 3000) {
|
||||
abort();
|
||||
}
|
||||
std::vector<MetaData::Robot>* robot_list = MetaMgr::Instance()->GetRobotList();
|
||||
if (robot_list && !robot_list->empty()) {
|
||||
MetaData::Robot& tmp_robot_meta = (*robot_list)[rand() % robot_list->size()];
|
||||
std::string robot_id = a8::Format("$robot_%d", {tmp_robot_meta.i->id()});
|
||||
if (members_hash_.find(robot_id) == members_hash_.end()) {
|
||||
RoomMember p;
|
||||
p.entity_uniid = AllocUniid();
|
||||
p.accountid = robot_id;
|
||||
p.name = tmp_robot_meta.i->name();
|
||||
p.avatar_url = "";
|
||||
p.tank_id = MetaMgr::Instance()->RandTank();
|
||||
p.tankskin_id = 0;
|
||||
members_hash_[p.accountid] = p;
|
||||
}
|
||||
}
|
||||
++try_count;
|
||||
}
|
||||
}
|
||||
xtimer.Init(RoomXGetTickCount, this, 100, 100);
|
||||
xtimer_attacher.xtimer = &xtimer;
|
||||
frame_event.room = this;
|
||||
@ -94,6 +47,8 @@ void Room::Init(const cs::CMJoin& msg)
|
||||
if (!born_points_ || born_points_->size() != kROOM_MAX_PLAYER_NUM) {
|
||||
abort();
|
||||
}
|
||||
room_unionid = msg.team_uuid();
|
||||
InitMembers(msg);
|
||||
}
|
||||
|
||||
void Room::UnInit()
|
||||
@ -1164,3 +1119,51 @@ void Room::SpllyAndroid()
|
||||
}
|
||||
NotifyUiUpdate();
|
||||
}
|
||||
|
||||
void Room::InitMembers(const cs::CMJoin& msg)
|
||||
{
|
||||
{
|
||||
RoomMember p;
|
||||
p.entity_uniid = AllocUniid();
|
||||
p.accountid = msg.account_id();
|
||||
p.name = msg.name();
|
||||
p.avatar_url = msg.avatar_url();
|
||||
p.tank_id = msg.baseskin();
|
||||
p.tankskin_id = msg.tankskin().skin_id();
|
||||
members_hash_[p.accountid] = p;
|
||||
}
|
||||
for (auto& member : msg.room_member()) {
|
||||
if (members_hash_.size() < kROOM_MAX_PLAYER_NUM) {
|
||||
RoomMember p;
|
||||
p.entity_uniid = AllocUniid();
|
||||
p.accountid = member.account_id();
|
||||
p.name = member.name();
|
||||
p.avatar_url = member.avatar_url();
|
||||
p.tank_id = member.skin().skin_id();
|
||||
p.tankskin_id = member.tankskin().skin_id();
|
||||
members_hash_[p.accountid] = p;
|
||||
}
|
||||
}
|
||||
int try_count = 0;
|
||||
while (members_hash_.size() < kROOM_MAX_PLAYER_NUM) {
|
||||
if (try_count > 3000) {
|
||||
abort();
|
||||
}
|
||||
std::vector<MetaData::Robot>* robot_list = MetaMgr::Instance()->GetRobotList();
|
||||
if (robot_list && !robot_list->empty()) {
|
||||
MetaData::Robot& tmp_robot_meta = (*robot_list)[rand() % robot_list->size()];
|
||||
std::string robot_id = a8::Format("$robot_%d", {tmp_robot_meta.i->id()});
|
||||
if (members_hash_.find(robot_id) == members_hash_.end()) {
|
||||
RoomMember p;
|
||||
p.entity_uniid = AllocUniid();
|
||||
p.accountid = robot_id;
|
||||
p.name = tmp_robot_meta.i->name();
|
||||
p.avatar_url = "";
|
||||
p.tank_id = MetaMgr::Instance()->RandTank();
|
||||
p.tankskin_id = 0;
|
||||
members_hash_[p.accountid] = p;
|
||||
}
|
||||
}
|
||||
++try_count;
|
||||
}
|
||||
}
|
||||
|
@ -134,6 +134,7 @@ private:
|
||||
void AirDrop(MetaData::AirDrop* air_drop);
|
||||
void GenDrop(MetaData::AirDrop* air_drop, int drop_id, int airdrop_point_id);
|
||||
void SpllyAndroid();
|
||||
void InitMembers(const cs::CMJoin& msg);
|
||||
|
||||
private:
|
||||
int elapsed_time_ = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user