From 3d7c285c446076ee322ef6a9e726c5bad8d97e3d Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 28 Feb 2023 19:32:33 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/bufffactory.cc | 3 +++ server/gameserver/creature.cc | 1 + server/gameserver/human.cc | 2 +- server/gameserver/movement.cc | 14 +++++++------- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/server/gameserver/buff/bufffactory.cc b/server/gameserver/buff/bufffactory.cc index 1f5ec6af..cc441e00 100644 --- a/server/gameserver/buff/bufffactory.cc +++ b/server/gameserver/buff/bufffactory.cc @@ -45,6 +45,7 @@ #include "buff/use_skill.h" #include "buff/invincible.h" #include "buff/modify_attr.h" +#include "buff/vertigo.h" #include "mt/Buff.h" @@ -133,6 +134,8 @@ Buff* BuffFactory::MakeBuff(const mt::Buff* buff_meta) return new InvincibleBuff(); case kBET_ModifyAttr: return new ModifyBuff(); + case kBET_Vertigo: + return new VertigoBuff(); default: return new Buff(); } diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index b4476b13..61e9b2e3 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -205,6 +205,7 @@ int Creature::AddBuff(Creature* caster, } if (buff->meta->lock_move()) { IncDisableMoveTimes(); + GetMovement()->ClearPath(); } if (buff->meta->lock_dir()) { IncDisableAttackDirTimes(); diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index bde0e454..d6e9808c 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -476,7 +476,7 @@ float Human::GetSpeed() { Buff* buff = GetBuffByEffectId(kBET_HoldShield); if (buff) { - return buff->meta->_buff_param1; + return buff->meta->_buff_param3; } } { diff --git a/server/gameserver/movement.cc b/server/gameserver/movement.cc index 1418733e..770455f3 100644 --- a/server/gameserver/movement.cc +++ b/server/gameserver/movement.cc @@ -110,16 +110,16 @@ void Movement::CalcTargetPos(float distance) point.tar_pos.GetZ() < 0) { abort(); } -#ifdef DEBUG1 +#ifdef DEBUG if (owner_->IsPlayer()) { a8::XPrintf("CalcTargetPos src_pos:%f,%f,%f tar_pos:%f,%f,%f is_hit:%d start:%f,%f,%f end:%f,%f,%f distance:%f src_distance:%f\n", { - point.src_pos.x, - point.src_pos.y, - point.src_pos.z, - point.tar_pos.x, - point.tar_pos.y, - point.tar_pos.z, + point.src_pos.GetX(), + point.src_pos.GetY(), + point.src_pos.GetZ(), + point.tar_pos.GetX(), + point.tar_pos.GetY(), + point.tar_pos.GetZ(), hit_result ? 1 : 0, start.x,