From d50ac0660083024f18802b0e11cef17d03c089a0 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 13 Mar 2023 16:58:26 +0800 Subject: [PATCH] 1 --- server/gameserver/buff.cc | 2 +- server/gameserver/buff/become.cc | 51 -------------------------- server/gameserver/buff/become.h | 12 ------ server/gameserver/buff/bepull.cc | 44 ---------------------- server/gameserver/buff/bepull.h | 12 ------ server/gameserver/buff/bufffactory.cc | 11 ------ server/gameserver/buff/reverse_move.cc | 13 ------- server/gameserver/buff/reverse_move.h | 12 ------ server/gameserver/constant_export.h | 30 +++++++-------- server/gameserver/creature.cc | 3 +- server/gameserver/human.cc | 10 +++++ 11 files changed, 27 insertions(+), 173 deletions(-) delete mode 100644 server/gameserver/buff/become.cc delete mode 100644 server/gameserver/buff/become.h delete mode 100644 server/gameserver/buff/bepull.cc delete mode 100644 server/gameserver/buff/bepull.h delete mode 100644 server/gameserver/buff/reverse_move.cc delete mode 100644 server/gameserver/buff/reverse_move.h diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index eae7271e..6c277323 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -167,7 +167,7 @@ bool Buff::NeedSync(Human* hum) bool Buff::FreezeOperate() { - return meta->buff_effect() == kBET_Become && !hold_weapons_.empty(); + return false; } void Buff::RecoverHoldWeapons() diff --git a/server/gameserver/buff/become.cc b/server/gameserver/buff/become.cc deleted file mode 100644 index 77408dfb..00000000 --- a/server/gameserver/buff/become.cc +++ /dev/null @@ -1,51 +0,0 @@ -#include "precompile.h" - -#include "buff/become.h" - -#include "creature.h" - -#include "mt/Buff.h" -#include "mt/Equip.h" - -void BecomeBuff::Activate() -{ - hold_curr_weapon_idx_ = caster_.Get()->GetCurrWeapon()->weapon_idx; - if (caster_.Get()->IsHuman() && meta->_buff_param2 > 0.01) { - std::vector strings; - a8::Split(meta->buff_param2(), strings, ':'); - for (size_t i = 0; i < strings.size(); ++i) { - int weapon_id = a8::XValue(strings[i]); - const mt::Equip* weapon_meta = mt::Equip::GetById(weapon_id); - if (weapon_meta && i < caster_.Get()->weapons.size()) { - int weapon_idx = weapon_meta->GetWeaponIdx(); - if (weapon_idx >= 0 && weapon_idx < caster_.Get()->weapons.size()) { - Weapon* weapon = &caster_.Get()->weapons[weapon_idx]; - hold_weapons_.push_back(*weapon); - - weapon->weapon_id = weapon_meta->id(); - weapon->meta = weapon_meta; - weapon->skill_meta = skill_meta; - weapon->Recalc(); - weapon->ammo = weapon->GetClipVolume(owner); - if (i == 0) { - caster_.Get()->SetCurrWeapon(weapon); - } - } - } - } - caster_.Get()->MarkSyncActivePlayer(__FILE__, __LINE__, __func__); - caster_.Get()->SyncAroundPlayers(__FILE__, __LINE__, __func__); - } -#ifdef DEBUG1 - caster_.Get()->SendDebugMsg(a8::Format("ProcBecome buff:%d hold_curr_weapon_idx:%d", - { - meta->buff_id(), - hold_curr_weapon_idx_ - })); -#endif -} - -void BecomeBuff::Deactivate() -{ - RecoverHoldWeapons(); -} diff --git a/server/gameserver/buff/become.h b/server/gameserver/buff/become.h deleted file mode 100644 index b2b00172..00000000 --- a/server/gameserver/buff/become.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include "buff.h" - -class BecomeBuff : public Buff -{ - public: - - virtual void Activate() override; - virtual void Deactivate() override; - -}; diff --git a/server/gameserver/buff/bepull.cc b/server/gameserver/buff/bepull.cc deleted file mode 100644 index 2ffb0c12..00000000 --- a/server/gameserver/buff/bepull.cc +++ /dev/null @@ -1,44 +0,0 @@ -#include "precompile.h" - -#include "buff/bepull.h" - -#include "creature.h" - -#include "mt/Buff.h" - -void BePullBuff::Activate() -{ - if (caster_.Get() == owner) { - A8_ABORT(); - } - if (caster_.Get()->GetEntitySubType() == EST_Android) { - float target_distance = caster_.Get()->GetPos().Distance2D2(owner->GetPos()); - if (target_distance <= 0.000001f) { - owner->SetPos(caster_.Get()->GetPos()); - owner->target_pos = caster_.Get()->GetPos(); - } else { - if (target_distance <= meta->_buff_param3) { - owner->SetPos(caster_.Get()->GetPos()); - owner->target_pos = caster_.Get()->GetPos(); - } else { - glm::vec3 move_dir = owner->GetPos().CalcDir(caster_.Get()->GetPos()); - GlmHelper::Normalize(move_dir); - owner->SetMoveDir(move_dir); - owner->target_pos = owner->GetPos(); - owner->target_pos.AddGlmVec3(owner->GetMoveDir() * (target_distance - meta->_buff_param3)); - } - } - } else { - GlmHelper::Normalize(caster_.Get()->skill_dir_); - owner->target_pos = caster_.Get()->GetPos(); - owner->target_pos.AddGlmVec3(caster_.Get()->skill_dir_ * caster_.Get()->skill_distance_); - glm::vec3 move_dir = owner->GetPos().CalcDir(owner->target_pos); - GlmHelper::Normalize(move_dir); - owner->SetMoveDir(move_dir); - } -} - -void BePullBuff::Deactivate() -{ - -} diff --git a/server/gameserver/buff/bepull.h b/server/gameserver/buff/bepull.h deleted file mode 100644 index bbdbdfba..00000000 --- a/server/gameserver/buff/bepull.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include "buff.h" - -class BePullBuff : public Buff -{ - public: - - virtual void Activate() override; - virtual void Deactivate() override; - -}; diff --git a/server/gameserver/buff/bufffactory.cc b/server/gameserver/buff/bufffactory.cc index 364c9b24..1cbc0b9a 100644 --- a/server/gameserver/buff/bufffactory.cc +++ b/server/gameserver/buff/bufffactory.cc @@ -9,8 +9,6 @@ #include "buff/autoshot.h" #include "buff/batch_add.h" #include "buff/beatback.h" -#include "buff/become.h" -#include "buff/bepull.h" #include "buff/berecycle.h" #include "buff/callfunc.h" #include "buff/camouflage.h" @@ -35,7 +33,6 @@ #include "buff/remove_car.h" #include "buff/rescuer.h" #include "buff/reverse.h" -#include "buff/reverse_move.h" #include "buff/select_target_with_self_pos.h" #include "buff/sprint.h" #include "buff/summon_hero.h" @@ -62,10 +59,6 @@ std::shared_ptr BuffFactory::MakeBuff(const mt::Buff* buff_meta) return std::make_shared(); case kBET_BeatBack: return std::make_shared(); - case kBET_Become: - return std::make_shared(); - case kBET_BePull: - return std::make_shared(); case kBET_BeRecycle: return std::make_shared(); case kBET_CallFunc: @@ -104,8 +97,6 @@ std::shared_ptr BuffFactory::MakeBuff(const mt::Buff* buff_meta) return std::make_shared(); case kBET_Passenger: return std::make_shared(); - case kBET_Pull: - return std::make_shared(); case kBET_PullToWalkable: return std::make_shared(); case kBET_RemoveCarBuff: @@ -114,8 +105,6 @@ std::shared_ptr BuffFactory::MakeBuff(const mt::Buff* buff_meta) return std::make_shared(); case kBET_Reverse: return std::make_shared(); - case kBET_ReverseMove: - return std::make_shared(); case kBET_SelectTargetWithSelfPos: return std::make_shared(); case kBET_Sprint: diff --git a/server/gameserver/buff/reverse_move.cc b/server/gameserver/buff/reverse_move.cc deleted file mode 100644 index effebae8..00000000 --- a/server/gameserver/buff/reverse_move.cc +++ /dev/null @@ -1,13 +0,0 @@ -#include "precompile.h" - -#include "buff/reverse_move.h" - -void ReverseMoveBuff::Activate() -{ - -} - -void ReverseMoveBuff::Deactivate() -{ - -} diff --git a/server/gameserver/buff/reverse_move.h b/server/gameserver/buff/reverse_move.h deleted file mode 100644 index 9f025937..00000000 --- a/server/gameserver/buff/reverse_move.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include "buff.h" - -class ReverseMoveBuff : public Buff -{ - public: - - virtual void Activate() override; - virtual void Deactivate() override; - -}; diff --git a/server/gameserver/constant_export.h b/server/gameserver/constant_export.h index 990eafec..1bfd1f1d 100644 --- a/server/gameserver/constant_export.h +++ b/server/gameserver/constant_export.h @@ -32,44 +32,44 @@ A8_DECLARE_ENUM(SpecBuffId_e, A8_DECLARE_ENUM(BuffEffectType_e, kBET_Begin = 0, - kBET_ChgAttr = 1, //改变属性 + kBET_UnUse1 = 1, kBET_TurnOver = 2, //翻滚 - kBET_Car = 3, //骑乘 + kBET_UnUse3 = 3, kBET_Invincible = 4, //无敌 kBET_Camouflage = 5, //伪装 kBET_Immune = 6, //免疫 kBET_CallFunc = 7, //调用功能 kBET_NewProtect = 8, //新手保护血量低于50% kBET_BePull = 9, //拉人(被拉方) - kBET_JumpTo = 10, //跳跃 + kBET_UnUse10 = 10, kBET_OnceChgAttr = 11, //一次性buff - kBET_Pull = 12, //拉人(主动方) + kBET_UnUse12 = 12, kBET_ModifyAttr = 13, kBET_PlayShotAni = 14, //播放射击动画 kBET_Vertigo = 15, //眩晕 - kBET_DecHp = 16, //扣血 + kBET_UnUse16 = 16, kBET_PullDone = 17, //拖拽到目的地 kBET_DelayAddBuff = 18, //延迟加buff - kBET_PlayEffect = 19, //播放特效(客户端表现用) - kBET_CliEffect2 = 20, //僵尸被动光环毒物(客户端表现用) - kBET_CliEffect3 = 21, //僵尸被动光环地震(客户端表现用) - kBET_CliEffect4 = 22, //被拖拽(客户端表现用) + kBET_UnUse19 = 19, + kBET_UnUse20 = 20, + kBET_UnUse21 = 21, + kBET_UnUse22 = 22, kBET_HunLuan = 23, //混乱,在烟雾弹中不自动瞄准 kBET_Fly = 24, //飞行中 kBET_Jump = 25, //跳伞中 kBET_IntervalAddBuff = 26, //持续掉血 //kBET_LastAddHp = 27, //持续加血 - kBET_OnceAddHp = 28, //加血 + kBET_UnUse28 = 28, kBET_SummonHero = 29, //召唤英雄 //kBET_SummonHero = 30, //向前跳跃 - kBET_Shield = 31, //减伤护盾 + kBET_UnUse31 = 31, kBET_Hide = 32, //隐身 - kBET_CrazyMode = 33, //暴走模式 - kBET_ShockWave = 34, //冲击波 + kBET_UnUse33 = 33, + kBET_UnUse34 = 34, kBET_Sprint = 35, //冲刺 kBET_SummonObstacle = 36, //召唤物件 kBET_FlashMove = 37, //瞬间移动 - kBET_Become = 38, //变身 + kBET_UnUse38 = 38, kBET_ShotCharge = 39, //射击蓄力 kBET_SelectTargetWithSelfPos = 40, //已自己坐标为中心范围内选取目标,并且批量添加buff kBET_EventAdd = 41, //even添加buff @@ -106,7 +106,7 @@ A8_DECLARE_ENUM(BuffEffectType_e, kBET_CondAdd = 71, // kBET_Dive = 72, //下潜模式 kBET_Reverse = 73, //人物反向 - kBET_ReverseMove = 74, //人物反向移动 + kBET_UnUse74 = 74, kBET_MachineGun = 75, //机枪 kBET_HoldShield = 76, //手持盾牌 kBET_InRescue = 77, //被救援中(被就方) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index f622b90b..e4923cee 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -1755,8 +1755,7 @@ void Creature::SummonHero(Buff* buff, bool Creature::FreezeOperate() { - Buff* buff = GetBuffByEffectId(kBET_Become); - bool freeze = buff && buff->FreezeOperate(); + bool freeze = false; if (!freeze) { freeze = GetBuffByEffectId(kBET_Vertigo) || GetBuffByEffectId(kBET_Driver) || diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 224b7cc2..94aab1dc 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -659,10 +659,12 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string& killer_name, i #endif #endif { + #if 0 Buff* buff = GetBuffByEffectId(kBET_Shield); if (buff) { dec_hp = std::max((float)1.0, dec_hp - buff->meta->_buff_param2); } + #endif } if (HasBuffEffect(kBET_Invincible)) { return; @@ -956,9 +958,11 @@ void Human::DoGetOn(int obj_uniid) if (downed) { return; } + #if 0 if (HasBuffEffect(kBET_Become)) { return; } + #endif switch (entity->GetEntityType()) { case ET_Loot: { @@ -1500,7 +1504,11 @@ void Human::DeadDrop() if (a8::HasBitFlag(status, CS_DeadNoDrop)) { return; } +#if 1 + if (true) { +#else if (!(HasBuffEffect(kBET_Become) && GetBuffByEffectId(kBET_Become)->FreezeOperate())) { +#endif #ifdef NEW_WEAPON_SYS #else for (auto& weapon : weapons) { @@ -3316,9 +3324,11 @@ void Human::DoDive() HasBuffEffect(kBET_Passenger)) { return; } + #if 0 if (HasBuffEffect(kBET_Become)) { return; } + #endif if (HasBuffEffect(kBET_Camouflage) ) { RemoveBuffByEffectId(kBET_Camouflage); }