This commit is contained in:
aozhiwei 2021-09-06 11:36:26 +08:00
parent 4d3f3c43ee
commit ef03b4c83a

View File

@ -248,15 +248,16 @@ void Human::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data
if (revive_timer) {
countdown = std::ceil(room->xtimer.GetRemainTime(revive_timer) / SERVER_FRAME_RATE);
} else {
a8::UdpLog::Instance()->Warning("Human::FillMFObjectfull revive_timer == nullptr "
"dead_frameno:%d dead_times:%d alive_count:%d "
"room.frameno:%d",
{
dead_frameno,
dead_times,
room->AliveCount(),
room->GetFrameNo()
});
a8::UdpLog::Instance()->Warning
("Human::FillMFObjectfull revive_timer == nullptr "
"dead_frameno:%d dead_times:%d alive_count:%d "
"room.frameno:%d",
{
dead_frameno,
dead_times,
room->AliveCount(),
room->GetFrameNo()
});
}
countdown = std::max(0, countdown - kReviveTimeAdd);
p->set_revive_countdown(countdown);
@ -2410,17 +2411,19 @@ void Human::Revive()
hum->downed = false;
hum->OnDie();
};
int wait_revive_time = MetaMgr::Instance()->GetSysParamAsInt("revive_time", 25) + kReviveTimeAdd;
revive_timer = room->xtimer.AddDeadLineTimerAndAttach(SERVER_FRAME_RATE * wait_revive_time,
a8::XParams()
.SetSender(this),
callback,
&xtimer_attacher.timer_list_,
[] (const a8::XParams& param)
{
Human* hum = (Human*)param.sender.GetUserData();
hum->revive_timer = nullptr;
});
int wait_revive_time = MetaMgr::Instance()->GetSysParamAsInt("revive_time", 25) +
kReviveTimeAdd;
revive_timer = room->xtimer.AddDeadLineTimerAndAttach
(SERVER_FRAME_RATE * wait_revive_time,
a8::XParams()
.SetSender(this),
callback,
&xtimer_attacher.timer_list_,
[] (const a8::XParams& param)
{
Human* hum = (Human*)param.sender.GetUserData();
hum->revive_timer = nullptr;
});
SyncAroundPlayers(__FILE__, __LINE__, __func__);
}
}
@ -2565,19 +2568,20 @@ void Human::NotifyObservers(cs::SMUpdate* msg, cs::MFActivePlayerData* active_pl
e->FillMFObjectFull(room, observer, full_obj);
#ifdef DEBUG
ObjectSyncFlags* new_sync_flags = observer->GetObjectSyncFlags(e->GetUniId());
observer->SendDebugMsg(a8::Format(
"resync full frameno:%d uniid:%d net_flags:%d f2:%d "
"old_flags:%d,%d new_flags:%d,%d",
{
room->GetFrameNo(),
full_obj->obj_uniid(),
full_obj->object_flags(),
msg->full_objects(i).object_flags(),
old_sync_flags.flags,
old_sync_flags.last_sync_frameno,
new_sync_flags->flags,
new_sync_flags->last_sync_frameno,
}));
observer->SendDebugMsg
(a8::Format(
"resync full frameno:%d uniid:%d net_flags:%d f2:%d "
"old_flags:%d,%d new_flags:%d,%d",
{
room->GetFrameNo(),
full_obj->obj_uniid(),
full_obj->object_flags(),
msg->full_objects(i).object_flags(),
old_sync_flags.flags,
old_sync_flags.last_sync_frameno,
new_sync_flags->flags,
new_sync_flags->last_sync_frameno,
}));
#endif
}
} else {