This commit is contained in:
aozhiwei 2022-10-18 17:51:17 +08:00
parent 39cd029f4d
commit 1dcc6a951f

View File

@ -684,10 +684,11 @@ void Skill::ProcGZJS()
float dmg_ruduce_rate = meta->number_meta->float_ratio2;
std::weak_ptr<a8::XTimerPtr> dmg_ruduce_timer;
std::shared_ptr<int> immune_buff_uniid = std::make_shared<int>(0);
std::shared_ptr<int> hold_gun_buff_uniid = std::make_shared<int>(0);
owner->GetTrigger()->AddListener
(
kFlyHookCreateEvent,
[this, dmg_ruduce_rate, dmg_ruduce_timer, immune_buff_uniid]
[this, dmg_ruduce_rate, dmg_ruduce_timer, immune_buff_uniid, hold_gun_buff_uniid]
(const std::vector<std::any>& params) mutable
{
Bullet* bullet = std::any_cast<Bullet*>(params.at(0));
@ -722,6 +723,16 @@ void Skill::ProcGZJS()
meta->number_meta->float_time * 1000,
meta);
if (*hold_gun_buff_uniid) {
owner->RemoveBuffByUniId(*hold_gun_buff_uniid);
*hold_gun_buff_uniid = 0;
}
*hold_gun_buff_uniid = owner->TryAddBuffAndSetTime
(owner,
meta->number_meta->pb->buff_id(),
meta->number_meta->float_time * 1000,
meta);
owner->TryAddBuffAndSetTime
(owner,
kDispelEffectBuffId,
@ -737,12 +748,16 @@ void Skill::ProcGZJS()
owner->GetTrigger()->AddListener
(
kFlyHookDestoryEvent,
[this, dmg_ruduce_rate, immune_buff_uniid] (const std::vector<std::any>& params)
[this, dmg_ruduce_rate, immune_buff_uniid, hold_gun_buff_uniid] (const std::vector<std::any>& params)
{
if (*immune_buff_uniid) {
owner->RemoveBuffByUniId(*immune_buff_uniid);
*immune_buff_uniid = 0;
}
if (*hold_gun_buff_uniid) {
owner->RemoveBuffByUniId(*hold_gun_buff_uniid);
*hold_gun_buff_uniid = 0;
}
}
);
}