1
This commit is contained in:
parent
32f2441a22
commit
fd7ea313bc
@ -175,7 +175,9 @@ void FrameMaker::PostProcess(cs::SMUpdate* msg, Room* room, Human* hum, FrameDat
|
||||
int left_time = room->GetMobaLeftTime();
|
||||
msg->set_game_left_time(left_time);
|
||||
}
|
||||
room->GetSandTable()->FillMFSandTable(msg, hum, framedata);
|
||||
if (room->SupportSandTable()) {
|
||||
room->GetSandTable()->FillMFSandTable(msg, hum, framedata);
|
||||
}
|
||||
}
|
||||
|
||||
void FrameMaker::SerializeLootObjects(cs::SMUpdate* msg, Room* room, Human* hum, FrameData* framedata)
|
||||
|
@ -1565,39 +1565,95 @@ void Room::UpdateGasInactivePvp()
|
||||
|
||||
}
|
||||
} else {
|
||||
ShuaPlane();
|
||||
RoomMgr::Instance()->ActiveRoom(GetRoomUuid());
|
||||
if (IsNoPlane()) {
|
||||
RoomMgr::Instance()->ActiveRoom(GetRoomUuid());
|
||||
{
|
||||
const mt::SafeArea* first_safearea = mt::SafeArea::GetByType
|
||||
(map_meta_->RandSafeArea());
|
||||
gas_data_.SetGasMode(GasWaiting);
|
||||
gas_data_.old_area_meta = first_safearea;
|
||||
gas_data_.new_area_meta = mt::SafeArea::GetById(first_safearea->id() + 1);
|
||||
gas_data_.pos_list = mt::SafeAreaPos::RandSafeAreaPos(first_safearea->id());
|
||||
gas_data_.gas_progress = gas_data_.old_area_meta->rad();
|
||||
gas_data_.gas_start_frameno = GetFrameNo();
|
||||
#if 1
|
||||
int auto_jump_interval = mt::Param::GetIntParam("auto_jump_interval");
|
||||
auto_jump_timer_ = xtimer.SetIntervalWpEx
|
||||
(SERVER_FRAME_RATE * auto_jump_interval + SERVER_FRAME_RATE * 3,
|
||||
[this] (int event, const a8::Args* args)
|
||||
{
|
||||
if (a8::TIMER_EXEC_EVENT == event) {
|
||||
AutoJump();
|
||||
}
|
||||
},
|
||||
&xtimer_attacher_);
|
||||
gas_data_.pos_old = glm::vec2(first_safearea->x1(),
|
||||
first_safearea->y1());
|
||||
#else
|
||||
int auto_jump_interval_delay = mt::Param::GetIntParam("auto_jump_interval_delay");
|
||||
xtimer.SetTimeoutEx
|
||||
(
|
||||
SERVER_FRAME_RATE * auto_jump_interval_delay,
|
||||
[this] (int event, const a8::Args* args)
|
||||
{
|
||||
int auto_jump_interval = mt::Param::GetIntParam("auto_jump_interval");
|
||||
auto_jump_timer_ = xtimer.SetIntervalWpEx
|
||||
(SERVER_FRAME_RATE * auto_jump_interval,
|
||||
[this] (int event, const a8::Args* args)
|
||||
{
|
||||
if (a8::TIMER_EXEC_EVENT == event) {
|
||||
AutoJump();
|
||||
}
|
||||
},
|
||||
&xtimer_attacher_);
|
||||
},
|
||||
&xtimer_attacher_);
|
||||
gas_data_.pos_old = map_meta_->first_safearea_center;
|
||||
#endif
|
||||
gas_data_.pos_old_bk = gas_data_.pos_old;
|
||||
{
|
||||
if (gas_data_.pos_list && !gas_data_.pos_list->_poses.empty()) {
|
||||
gas_data_.pos_old = glm::vec2(
|
||||
gas_data_.pos_list->_poses[0].x,
|
||||
gas_data_.pos_list->_poses[0].z
|
||||
);
|
||||
gas_data_.pos_old_bk = gas_data_.pos_old;
|
||||
}
|
||||
bool gen_ok = GenSmallCircle();
|
||||
if (!gen_ok) {
|
||||
A8_ABORT();
|
||||
}
|
||||
}
|
||||
gas_data_.rad_old = gas_data_.old_area_meta->rad();
|
||||
gas_data_.rad_new = gas_data_.new_area_meta->rad();
|
||||
if (map_meta_->init_gas_ring() > 0) {
|
||||
ForwardGasRing(map_meta_->init_gas_ring());
|
||||
}
|
||||
}
|
||||
TraverseHumanList
|
||||
(
|
||||
[] (Human* hum) -> bool
|
||||
{
|
||||
hum->RemoveBuffByEffectId(kBET_ThroughWall);
|
||||
hum->OnLand();
|
||||
if (hum->GetEntitySubType() == EST_Player) {
|
||||
GameLog::Instance()->GameStart((Player*)hum);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
NotifyUiUpdate();
|
||||
NotifyGameStart();
|
||||
sand_table_->OnGameStart();
|
||||
if (custom_battle_) {
|
||||
|
||||
}
|
||||
} else {
|
||||
ShuaPlane();
|
||||
RoomMgr::Instance()->ActiveRoom(GetRoomUuid());
|
||||
#if 1
|
||||
int auto_jump_interval = mt::Param::GetIntParam("auto_jump_interval");
|
||||
auto_jump_timer_ = xtimer.SetIntervalWpEx
|
||||
(SERVER_FRAME_RATE * auto_jump_interval + SERVER_FRAME_RATE * 3,
|
||||
[this] (int event, const a8::Args* args)
|
||||
{
|
||||
if (a8::TIMER_EXEC_EVENT == event) {
|
||||
AutoJump();
|
||||
}
|
||||
},
|
||||
&xtimer_attacher_);
|
||||
#else
|
||||
int auto_jump_interval_delay = mt::Param::GetIntParam("auto_jump_interval_delay");
|
||||
xtimer.SetTimeoutEx
|
||||
(
|
||||
SERVER_FRAME_RATE * auto_jump_interval_delay,
|
||||
[this] (int event, const a8::Args* args)
|
||||
{
|
||||
int auto_jump_interval = mt::Param::GetIntParam("auto_jump_interval");
|
||||
auto_jump_timer_ = xtimer.SetIntervalWpEx
|
||||
(SERVER_FRAME_RATE * auto_jump_interval,
|
||||
[this] (int event, const a8::Args* args)
|
||||
{
|
||||
if (a8::TIMER_EXEC_EVENT == event) {
|
||||
AutoJump();
|
||||
}
|
||||
},
|
||||
&xtimer_attacher_);
|
||||
},
|
||||
&xtimer_attacher_);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#ifdef MYDEBUG
|
||||
a8::XPrintf("max_run_delay:%d %d\n", {PerfMonitor::Instance()->max_run_delay_time,
|
||||
@ -3527,7 +3583,7 @@ void Room::ForceOver()
|
||||
|
||||
bool Room::SupportSandTable()
|
||||
{
|
||||
return true;
|
||||
return map_meta_->support_sandtable();
|
||||
}
|
||||
|
||||
void Room::OnAddHuman(Human* hum)
|
||||
@ -4016,3 +4072,8 @@ void Room::SendRecentBattle()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool Room::IsNoPlane()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -306,6 +306,7 @@ public:
|
||||
bool IsAlreadyRoomReportBattle() { return already_room_report_battle_; }
|
||||
int GetReportMapMode();
|
||||
void StartOverTimer();
|
||||
bool IsNoPlane();
|
||||
|
||||
std::shared_ptr<InGameVoice> GetInGameVoice() { return ingame_voice_; }
|
||||
|
||||
|
@ -253,8 +253,10 @@ void SelfChecker::Check()
|
||||
|
||||
void SelfChecker::AddBuff(int buff_id)
|
||||
{
|
||||
#if 0
|
||||
if (!mt::Buff::GetById(buff_id)) {
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
used_buffs.insert(buff_id);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user