diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index 77a48bd..e86c598 100755 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -125,6 +125,8 @@ enum BuffEffectType_e kBET_AdPlaying = 6, //看广告中 kBET_LordMode = 7, //上帝模式 kBET_NewProtect = 8, //新手保护血量低于50% + kBET_Pull = 9, //拉人 + kBET_JumpTo = 10, //跳跃 kBET_OnceChgAttr = 11, //一次性buff kBET_End }; diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 88ba8a7..605da54 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3041,7 +3041,31 @@ void Human::ProcBuffEffect(Buff* buff) } } break; + case kBET_Pull: + { + + } + break; + case kBET_JumpTo: + { + Entity* entity = room->GetEntityByUniId(skill_target_id); + if (entity) { + if (entity->GetPos().Distance(GetPos()) <= 0.000001f) { + SetPos(entity->GetPos()); + skill_target_pos = entity->GetPos(); + } else { + move_dir = entity->GetPos() - GetPos(); + move_dir.Normalize(); + skill_target_pos = entity->GetPos(); + skill_dir = skill_target_pos - GetPos(); + skill_dir.Normalize(); + } + } + } + break; default: + { + } break; } }