diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index fbf53ef9..e22ec67d 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -944,3 +944,8 @@ void Buff::ProcRemoveMachineGun() { RecoverHoldWeapons(); } + +void Buff::ProcReserveMove() +{ + +} diff --git a/server/gameserver/buff.h b/server/gameserver/buff.h index b651f0a5..a7168692 100644 --- a/server/gameserver/buff.h +++ b/server/gameserver/buff.h @@ -78,6 +78,7 @@ class Buff void ProcInWater(); void ProcRemoveInWater(); void ProcReserve(); + void ProcReserveMove(); void ProcMachineGun(); void ProcRemoveMachineGun(); diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 33dc857f..dec28320 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -1439,6 +1439,7 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff) break; case kBET_ReverseMove: { + buff->ProcReserveMove(); } break; case kBET_MachineGun: diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 909275ff..a2db2bfd 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1830,6 +1830,10 @@ void Human::_InternalUpdateMove(float speed) float ny = GetMoveDir().y * speed; a8::Vec2 old_pos = GetPos(); + if (HasBuffEffect(kBET_ReverseMove)) { + nx = -nx; + ny = -ny; + } #if 1 SetPos(old_pos + a8::Vec2(nx, ny)); if (!CheckCollision()) {