diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index 6938d4d6..f11b619c 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -1603,17 +1603,6 @@ behaviac::EBTStatus HeroAgent::ThrowItem(int slot) fly_distance, 0); last_throw_item_frameno_ = owner_->room->GetFrameNo(); - switch (weapon_slot) { - case IS_FRAG: - { - owner_->TryAddBuffAndSetTime(owner_, kVertigoBuffId, mt::Param::s().frag_dinshen_time); - } - break; - default: - { - } - break; - } return behaviac::BT_SUCCESS; } } diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index 6bd16df5..217ed230 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -2968,6 +2968,19 @@ int Creature::Throw(int slot, const glm::vec3& bomb_pos, const glm::vec3& bomb_d if (slot < 0 || slot >= weapons.size()) { return 0; } + switch (slot) { + case IS_FRAG: + case IS_SMOKE: + case IS_MOLOTOR_COCKTAIL: + { + TryAddBuffAndSetTime(this, kVertigoBuffId, mt::Param::s().frag_dinshen_time); + } + break; + default: + { + } + break; + } Weapon& weapon = weapons.at(slot); if (weapon.weapon_idx != 0 && weapon.meta && diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index c510244f..4580597d 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1762,17 +1762,6 @@ void Player::UpdateThrowBomb() bomb_dir, throw_bomb->fly_distance(), 0); - switch (equip_meta->_inventory_slot()) { - case IS_FRAG: - { - TryAddBuffAndSetTime(this, kVertigoBuffId, mt::Param::s().frag_dinshen_time); - } - break; - default: - { - } - break; - } SendUnityDebugMsg(this, a8::Format("xxxxxxxx 9 throw_uniid:%d", {throw_bomb->throw_uniid()})); } }