diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index a68611f2..13997bcc 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -495,12 +495,32 @@ void Skill::ProcCMXD() void Skill::ProcMYXY() { - + owner->GetTrigger()->AddListener + ( + kStartSwitchWeaponBuffEvent, + [this] (const std::vector& params) + { + Buff* buff = std::any_cast(params.at(0)); + if (!buff->skill_meta || buff->skill_meta->GetMagicId() != MAGIC_HJHX) { + return; + } + } + ); + owner->GetTrigger()->AddListener + ( + kEndSwitchWeaponBuffEvent, + [this] (const std::vector& params) + { + Buff* buff = std::any_cast(params.at(0)); + if (!buff->skill_meta || buff->skill_meta->GetMagicId() != MAGIC_HJHX) { + return; + } + } + ); } void Skill::ProcGZJS() { - } void Skill::ProcJYFH() diff --git a/server/gameserver/trigger.h b/server/gameserver/trigger.h index a4539a33..c52414c8 100644 --- a/server/gameserver/trigger.h +++ b/server/gameserver/trigger.h @@ -31,6 +31,8 @@ enum EventId_e kYsRemoveEvent, kStartRescueEvent, kEndRescueEvent, + kStartSwitchWeaponBuffEvent, + kEndSwitchWeaponBuffEvent, }; class Weapon;