This commit is contained in:
aozhiwei 2024-03-26 14:54:28 +08:00
parent a965005f7d
commit a46099de76
3 changed files with 18 additions and 25 deletions

View File

@ -18,6 +18,16 @@ void CustomBattle::Init()
ob_team_ = std::make_shared<CustomTeam>(); ob_team_ = std::make_shared<CustomTeam>();
ob_team_->team_uuid_ = ""; ob_team_->team_uuid_ = "";
ob_team_->is_view_ = true; ob_team_->is_view_ = true;
f8::Timer::Instance()->SetIntervalEx
(
2000,
[this] (int event, const a8::Args* args)
{
if (a8::TIMER_EXEC_EVENT == event) {
NotifyState();
}
},
&timer_attacher);
} }
void CustomBattle::UnInit() void CustomBattle::UnInit()
@ -84,14 +94,11 @@ void CustomBattle::ParseResult(a8::XObject& obj)
auto member = std::make_shared<CustomMember>(); auto member = std::make_shared<CustomMember>();
member->team_ = team.get(); member->team_ = team.get();
member->account_id_ = member_obj->Get("account_id").GetString(); member->account_id_ = member_obj->Get("account_id").GetString();
#ifdef MYDEBUG1
if (IsMoba()) {
member->account_id_ = member->account_id_ + "$$$$";
}
#endif
member->session_id_ = member_obj->Get("session_id").GetString(); member->session_id_ = member_obj->Get("session_id").GetString();
member->name_ = member_obj->Get("name").GetString(); member->name_ = member_obj->Get("name").GetString();
member->sex_ = member_obj->Get("sex"); member->sex_ = member_obj->Get("sex");
member->robot_id_ = member_obj->Get("robot_id");
member->is_android_ = member_obj->Get("is_android");
member->avatar_url_ = member_obj->Get("head_id").GetString(); member->avatar_url_ = member_obj->Get("head_id").GetString();
member->battle_context_ = std::make_shared<BattleDataContext>(); member->battle_context_ = std::make_shared<BattleDataContext>();
member->battle_context_->ParseResult(*member_obj); member->battle_context_->ParseResult(*member_obj);
@ -102,24 +109,6 @@ void CustomBattle::ParseResult(a8::XObject& obj)
member_id_hash_[member->account_id_] = member; member_id_hash_[member->account_id_] = member;
team->member_hash_[member->account_id_] = member; team->member_hash_[member->account_id_] = member;
account_hash_[member->account_id_] = team; account_hash_[member->account_id_] = team;
#ifdef MYDEBUG1
if (IsMoba()) {
auto member = std::make_shared<CustomMember>();
member->team_ = ob_team_.get();
member->account_id_ = member_obj->Get("account_id").GetString();
member->session_id_ = member_obj->Get("session_id").GetString();
member->name_ = member_obj->Get("name").GetString();
member->sex_ = member_obj->Get("sex");
member->battle_context_ = std::make_shared<BattleDataContext>();
member->battle_context_->ParseResult(*member_obj);
if (!member->battle_context_->parse_ok) {
parse_ok_ = false;
return;
}
account_hash_[member->account_id_] = ob_team_;
ob_id_hash_[member->account_id_] = member;
}
#endif
} }
} }
} }
@ -324,9 +313,12 @@ void CustomBattle::OnEnter(std::shared_ptr<cs::CMJoin> join_msg, long ip_saddr,
( (
a8::RandEx(mt::Param::s().battle_auto_ready_min_time, a8::RandEx(mt::Param::s().battle_auto_ready_min_time,
mt::Param::s().battle_auto_ready_max_time) * 1000, mt::Param::s().battle_auto_ready_max_time) * 1000,
[] (int event, const a8::Args* args) [member] (int event, const a8::Args* args)
{ {
if (a8::TIMER_EXEC_EVENT == event) { if (a8::TIMER_EXEC_EVENT == event) {
if (!member->is_ready_) {
member->GetTeam()->GetCustomBattle()->OnMemberReady(member.get());
}
} }
}, },
&timer_attacher); &timer_attacher);

View File

@ -28,5 +28,5 @@ void CustomMember::_CMBattlePreSetReady(f8::MsgHdr* hdr, const cs::CMBattlePreSe
bool CustomMember::IsAndroid() bool CustomMember::IsAndroid()
{ {
return false; return is_android_ != 0;
} }

View File

@ -49,6 +49,7 @@ private:
int head_frame_ = 0; int head_frame_ = 0;
int sex_ = 0; int sex_ = 0;
int is_ready_ = 0; int is_ready_ = 0;
int is_android_ = 0;
int robot_id_ = 0; int robot_id_ = 0;
std::shared_ptr<BattleDataContext> battle_context_; std::shared_ptr<BattleDataContext> battle_context_;
friend class CustomBattle; friend class CustomBattle;