diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 774cda7b..e13f7b30 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -996,6 +996,7 @@ void Creature::ProcSkillPhase(MetaData::SkillPhase* phase) #ifdef DEBUG a8::XPrintf("new_pos:%f,%f", {GetPos().x, GetPos().y}); #endif + MetaData::Skill* skill_meta = CurrentSkill()->meta; CurrentSkill()->AddMinorMode ( SMT_BLINK, @@ -1004,7 +1005,7 @@ void Creature::ProcSkillPhase(MetaData::SkillPhase* phase) #else phase->param2.GetInt() * 1000, #endif - [this, pre_pos, pre_dir, buff_id] () { + [this, pre_pos, pre_dir, buff_id, skill_meta] () { a8::Vec2 old_dir = GetMoveDir(); a8::Vec2 old_pos = GetPos(); float distance = GetPos().Distance(pre_pos); @@ -1016,6 +1017,10 @@ void Creature::ProcSkillPhase(MetaData::SkillPhase* phase) _UpdateMove(distance); } SetMoveDir(old_dir); + TryAddBuffAndSetTime(this, + skill_meta->number_meta->pb->buff_id(), + skill_meta->number_meta->pb->buff_time() * 1000, + skill_meta); } ); }