diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index 93a43499..25d8fdc6 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -926,8 +926,22 @@ void Buff::ProcReserve() dir.Normalize(); owner->SetMoveDir(dir); owner->SetAttackDir(dir); - if (meta->param1 > 0.001) { - owner->_UpdateMove(meta->param1); + if (skill_meta) { + switch (skill_meta->GetMagicId()) { + case MAGIC_YMCZ: + { + owner->_UpdateMove(SkillHelper::GetYmczReserveDistance(skill_meta)); + } + break; + default: + { + } + break; + } + } else { + if (meta->param1 > 0.001) { + owner->_UpdateMove(meta->param1); + } } } } diff --git a/server/gameserver/skillhelper.cc b/server/gameserver/skillhelper.cc index ce2d0cf5..37cc2af7 100644 --- a/server/gameserver/skillhelper.cc +++ b/server/gameserver/skillhelper.cc @@ -236,3 +236,8 @@ int SkillHelper::GetYmczBuffTime(const MetaData::Skill* skill_meta) { return 0; } + +int SkillHelper::GetYmczReserveDistance(const MetaData::Skill* skill_meta) +{ + return 0; +} diff --git a/server/gameserver/skillhelper.h b/server/gameserver/skillhelper.h index dc4a86d5..88e0cad5 100644 --- a/server/gameserver/skillhelper.h +++ b/server/gameserver/skillhelper.h @@ -31,6 +31,7 @@ class SkillHelper static int GetSwzbPullDistance(const MetaData::Skill* skill_meta); //野蛮冲撞 static int GetYmczBuffTime(const MetaData::Skill* skill_meta); + static int GetYmczReserveDistance(const MetaData::Skill* skill_meta); static void ProcBulletHitBuff(Bullet* bullet, Creature* c, int buff_uniid);