diff --git a/server/gameserver/gungrasp.cc b/server/gameserver/gungrasp.cc index 44960d13..362da8cb 100644 --- a/server/gameserver/gungrasp.cc +++ b/server/gameserver/gungrasp.cc @@ -114,24 +114,30 @@ void GunGrasp::InstallTriggers() void GunGrasp::ProcHit(GraspBuff* buff) { - owner_->GetTrigger()->AddListener + event_listeners_.push_back ( - kBulletHitEvent, - [this, buff] (const a8::Args& args) - { - buff->ProcSignet(this, 1); - }); + owner_->GetTrigger()->AddListener + ( + kBulletHitEvent, + [this, buff] (const a8::Args& args) + { + buff->ProcSignet(this, 1); + }) + ); } void GunGrasp::ProcKill(GraspBuff* buff) { - owner_->GetTrigger()->AddListener + event_listeners_.push_back ( - kKillEvent, - [this, buff] (const a8::Args& args) - { - buff->ProcSignet(this, 1); - }); + owner_->GetTrigger()->AddListener + ( + kKillEvent, + [this, buff] (const a8::Args& args) + { + buff->ProcSignet(this, 1); + }) + ); } void GunGrasp::ProcTakeOn(GraspBuff* buff) @@ -146,13 +152,16 @@ void GunGrasp::ProcCond(GraspBuff* buff) void GunGrasp::ProcHitAndEnd(GraspBuff* buff) { - owner_->GetTrigger()->AddListener + event_listeners_.push_back ( - kBulletHitEvent, - [this, buff] (const a8::Args& args) - { - buff->ProcSignet(this, 1); - }); + owner_->GetTrigger()->AddListener + ( + kBulletHitEvent, + [this, buff] (const a8::Args& args) + { + buff->ProcSignet(this, 1); + }) + ); } void GunGrasp::AddSignet(int id, int count) diff --git a/server/gameserver/gungrasp.h b/server/gameserver/gungrasp.h index 4b75eea1..853bb7ee 100644 --- a/server/gameserver/gungrasp.h +++ b/server/gameserver/gungrasp.h @@ -1,5 +1,7 @@ #pragma once +#include "trigger.h" + struct GraspBuff; class Creature; class GunGrasp @@ -28,6 +30,7 @@ class GunGrasp private: Creature* owner_ = nullptr; int hero_lv_ = 0; + std::vector> event_listeners_; std::map signet_hash_; std::array grasp_triggers_ = {}; };