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();
|
int left_time = room->GetMobaLeftTime();
|
||||||
msg->set_game_left_time(left_time);
|
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)
|
void FrameMaker::SerializeLootObjects(cs::SMUpdate* msg, Room* room, Human* hum, FrameData* framedata)
|
||||||
|
@ -1565,39 +1565,95 @@ void Room::UpdateGasInactivePvp()
|
|||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ShuaPlane();
|
if (IsNoPlane()) {
|
||||||
RoomMgr::Instance()->ActiveRoom(GetRoomUuid());
|
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
|
#if 1
|
||||||
int auto_jump_interval = mt::Param::GetIntParam("auto_jump_interval");
|
gas_data_.pos_old = glm::vec2(first_safearea->x1(),
|
||||||
auto_jump_timer_ = xtimer.SetIntervalWpEx
|
first_safearea->y1());
|
||||||
(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
|
#else
|
||||||
int auto_jump_interval_delay = mt::Param::GetIntParam("auto_jump_interval_delay");
|
gas_data_.pos_old = map_meta_->first_safearea_center;
|
||||||
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
|
#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
|
#ifdef MYDEBUG
|
||||||
a8::XPrintf("max_run_delay:%d %d\n", {PerfMonitor::Instance()->max_run_delay_time,
|
a8::XPrintf("max_run_delay:%d %d\n", {PerfMonitor::Instance()->max_run_delay_time,
|
||||||
@ -3527,7 +3583,7 @@ void Room::ForceOver()
|
|||||||
|
|
||||||
bool Room::SupportSandTable()
|
bool Room::SupportSandTable()
|
||||||
{
|
{
|
||||||
return true;
|
return map_meta_->support_sandtable();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Room::OnAddHuman(Human* hum)
|
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_; }
|
bool IsAlreadyRoomReportBattle() { return already_room_report_battle_; }
|
||||||
int GetReportMapMode();
|
int GetReportMapMode();
|
||||||
void StartOverTimer();
|
void StartOverTimer();
|
||||||
|
bool IsNoPlane();
|
||||||
|
|
||||||
std::shared_ptr<InGameVoice> GetInGameVoice() { return ingame_voice_; }
|
std::shared_ptr<InGameVoice> GetInGameVoice() { return ingame_voice_; }
|
||||||
|
|
||||||
|
@ -253,8 +253,10 @@ void SelfChecker::Check()
|
|||||||
|
|
||||||
void SelfChecker::AddBuff(int buff_id)
|
void SelfChecker::AddBuff(int buff_id)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
if (!mt::Buff::GetById(buff_id)) {
|
if (!mt::Buff::GetById(buff_id)) {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
used_buffs.insert(buff_id);
|
used_buffs.insert(buff_id);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user