This commit is contained in:
aozhiwei 2023-02-15 19:54:47 +08:00
parent f09848d049
commit f2812826d3

View File

@ -630,12 +630,18 @@ void Skill::Proc30601DJS()
{ {
a8::XTimerWp passive_skill_timer; a8::XTimerWp passive_skill_timer;
{ {
auto in_human_infos = std::make_shared<std::map<Human*, std::tuple<int, std::vector<int>>>>();
auto on_enter = auto on_enter =
[this] (Human* num, const mt::Skill* active_skill_meta) [this, in_human_infos] (Human* hum, const mt::Skill* active_skill_meta)
{ {
if (in_human_infos->find(hum) != in_human_infos->end()) {
abort();
}
if (active_skill_meta) { if (active_skill_meta) {
owner->GetAbility()->AddSpeedRuduce(active_skill_meta->_number_meta->_float_speed); owner->GetAbility()->AddSpeedRuduce(active_skill_meta->_number_meta->_float_speed);
} }
std::vector<int> buff_list;
(*in_human_infos)[hum] = std::make_tuple(1, buff_list);
}; };
auto on_stay = auto on_stay =
[this] (Human* hum, const mt::Skill* active_skill_meta) [this] (Human* hum, const mt::Skill* active_skill_meta)
@ -643,11 +649,15 @@ void Skill::Proc30601DJS()
}; };
auto on_leave = auto on_leave =
[this] (Human* hum, const mt::Skill* active_skill_meta) [this, in_human_infos] (Human* hum, const mt::Skill* active_skill_meta)
{ {
if (in_human_infos->find(hum) == in_human_infos->end()) {
abort();
}
if (active_skill_meta) { if (active_skill_meta) {
owner->GetAbility()->DelSpeedRuduce(active_skill_meta->_number_meta->_float_speed); owner->GetAbility()->DelSpeedRuduce(active_skill_meta->_number_meta->_float_speed);
} }
in_human_infos->erase(hum);
}; };
auto check_cb = auto check_cb =
[this, on_enter, on_stay, on_leave] [this, on_enter, on_stay, on_leave]
@ -662,7 +672,7 @@ void Skill::Proc30601DJS()
( (
[this, range, hit_humans, &size] (Human* hum) mutable [this, range, hit_humans, &size] (Human* hum) mutable
{ {
if (owner != hum && if (owner != hum && !hum->dead &&
Collision::CheckCC(owner, owner->GetRadius(), Collision::CheckCC(owner, owner->GetRadius(),
hum, range)) { hum, range)) {
if (size < MAX_TEAM_NUM) { if (size < MAX_TEAM_NUM) {