1
This commit is contained in:
parent
f09848d049
commit
f2812826d3
@ -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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user