From 413e8b769eb32b173556036e1e8fc01f55b7fb4f Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 2 Jan 2023 12:49:22 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/jumpto.cc | 9 ++++----- server/gameserver/buff/use_skill.cc | 3 +-- server/gameserver/creature.cc | 15 ++++++--------- server/gameserver/creature.h | 8 +++----- server/gameserver/human.cc | 4 ++-- server/gameserver/human.h | 4 ++-- server/gameserver/player.cc | 2 +- 7 files changed, 19 insertions(+), 26 deletions(-) diff --git a/server/gameserver/buff/jumpto.cc b/server/gameserver/buff/jumpto.cc index 472ddce3..cc0afcf3 100644 --- a/server/gameserver/buff/jumpto.cc +++ b/server/gameserver/buff/jumpto.cc @@ -14,22 +14,21 @@ void JumpToBuff::Activate() float target_distance = entity->GetPos().Distance2D2(owner->GetPos()); if (target_distance <= 0.000001f) { owner->SetPos(entity->GetPos()); - owner->skill_target_pos_ = entity->GetPos(); + owner->target_pos = entity->GetPos(); } else { if (target_distance <= meta->_param3) { owner->SetPos(entity->GetPos()); - owner->skill_target_pos_ = entity->GetPos(); + owner->target_pos = entity->GetPos(); } else { glm::vec3 move_dir = owner->GetPos().CalcDir(entity->GetPos()); GlmHelper::Normalize(move_dir); owner->SetMoveDir(move_dir); owner->skill_dir_ = owner->GetMoveDir(); - owner->skill_target_pos_ = owner->GetPos(); - owner->skill_target_pos_.AddGlmVec3(owner->GetMoveDir() * (target_distance - meta->_param3)); + owner->target_pos = owner->GetPos(); + owner->target_pos.AddGlmVec3(owner->GetMoveDir() * (target_distance - meta->_param3)); } } } - owner->target_pos = owner->skill_target_pos_; } void JumpToBuff::Deactivate() diff --git a/server/gameserver/buff/use_skill.cc b/server/gameserver/buff/use_skill.cc index 541c7357..7983e422 100644 --- a/server/gameserver/buff/use_skill.cc +++ b/server/gameserver/buff/use_skill.cc @@ -18,8 +18,7 @@ void UseSkillBuff::Activate() skill->meta->skill_id(), owner->GetUniId(), owner->GetAttackDir(), - 0, - owner->target_pos + 0 ); } } diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 052aaed1..f0bcba8d 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -770,8 +770,8 @@ bool Creature::CanUseSkill(int skill_id) void Creature::DoSkill(int skill_id, int target_id, const glm::vec3& skill_dir, - float skill_distance, - const Position& target_pos) + float skill_distance + ) { Skill* skill = GetSkill(skill_id); if (skill && CanUseSkill(skill_id)) { @@ -793,10 +793,9 @@ void Creature::DoSkill(int skill_id, }, &xtimer_attacher); } - DoSkillPreProc(skill_id, target_id, target_pos); + DoSkillPreProc(skill_id, target_id); ResetSkill(); skill_target_id_ = target_id; - skill_target_pos_ = target_pos; skill_dir_ = skill_dir; skill_distance_ = skill_distance; curr_skill_ = skill; @@ -829,7 +828,6 @@ void Creature::DoSkill(int skill_id, if (entity && entity->IsCreature(room)) { Creature* c = (Creature*)entity; std::set target_list; - skill_target_pos_ = c->GetPos(); SelectSkillTargets(CurrentSkill(), c->GetPos(), target_list); if (!CurrentSkill()->meta->_phases.empty() && CurrentSkill()->meta->_phases[0].time_offset <= 0) { @@ -863,7 +861,7 @@ void Creature::DoSkill(int skill_id, RemoveBuffByEffectId(kBET_Camouflage); } GetTrigger()->UseSkill(skill); - DoSkillPostProc(true, skill_id, target_id, target_pos); + DoSkillPostProc(true, skill_id, target_id); if (IsHuman()) { ++AsHuman()->stats.use_skill_times; } @@ -879,11 +877,11 @@ void Creature::DoSkill(int skill_id, } } -void Creature::DoSkillPreProc(int skill_id, int target_id, const Position& target_pos) +void Creature::DoSkillPreProc(int skill_id, int target_id) { } -void Creature::DoSkillPostProc(bool used, int skill_id, int target_id, const Position& target_pos) +void Creature::DoSkillPostProc(bool used, int skill_id, int target_id) { } @@ -892,7 +890,6 @@ void Creature::ResetSkill() curr_skill_ = nullptr; curr_skill_phase = 0; skill_dir_ = GlmHelper::ZERO; - skill_target_pos_ = Position(); skill_param1 = 0.0f; playing_skill = false; } diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index e100a01e..dba29089 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -173,8 +173,7 @@ class Creature : public MoveableEntity void DoSkill(int skill_id, int target_id, const glm::vec3& skill_dir, - float skill_distance, - const Position& target_pos + float skill_distance ); void ResetSkill(); Skill* CurrentSkill(); @@ -297,8 +296,8 @@ protected: private: virtual void AddBuffPostProc(Creature* caster, Buff* buff); - virtual void DoSkillPreProc(int skill_id, int target_id, const Position& target_pos); - virtual void DoSkillPostProc(bool used, int skill_id, int target_id, const Position& target_pos); + virtual void DoSkillPreProc(int skill_id, int target_id); + virtual void DoSkillPostProc(bool used, int skill_id, int target_id); void ProcSkillPhase(const mt::SkillPhase* phase); void TriggerOneObjectBuff(Skill* skill, Creature* target, BuffTriggerType_e trigger_type); @@ -366,7 +365,6 @@ private: size_t curr_skill_phase = 0; Skill* curr_skill_ = nullptr; int skill_target_id_ = 0; - Position skill_target_pos_; float skill_distance_ = 0.0f; std::map> skill_hash_; std::map> passive_skill_hash_; diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 991f7a45..a43984ab 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2230,7 +2230,7 @@ void Human::DoGetOnWithCar(Car* car) car->GetOn(this); } -void Human::DoSkillPreProc(int skill_id, int target_id, const Position& target_pos) +void Human::DoSkillPreProc(int skill_id, int target_ids) { if (action_type == AT_Reload || action_type == AT_UseItem @@ -2239,7 +2239,7 @@ void Human::DoSkillPreProc(int skill_id, int target_id, const Position& target_p } } -void Human::DoSkillPostProc(bool used, int skill_id, int target_id, const Position& target_pos) +void Human::DoSkillPostProc(bool used, int skill_id, int target_id) { if (used) { ++stats.skill_times; diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 170eec6a..d2a0098e 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -432,8 +432,8 @@ private: int real_killer_id, const std::string& real_killer_name); virtual void AddBuffPostProc(Creature* caster, Buff* buff) override; virtual void OnBuffRemove(Buff& buff) override; - virtual void DoSkillPreProc(int skill_id, int target_id, const Position& target_pos) override; - virtual void DoSkillPostProc(bool used, int skill_id, int target_id, const Position& target_pos) override; + virtual void DoSkillPreProc(int skill_id, int target_id) override; + virtual void DoSkillPostProc(bool used, int skill_id, int target_id) override; void FillMFSettlement(cs::SMGameOver* msg, cs::MFSettlement* settlement); protected: diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index f94bf5d6..116350ca 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -552,7 +552,7 @@ void Player::UpdateSwitchSeat() void Player::UpdateUseSkill() { - DoSkill(use_skill_id, skill_target_id, skill_dir, skill_distance, Position()); + DoSkill(use_skill_id, skill_target_id, skill_dir, skill_distance); use_skill = false; }