From 9402eeef844b382b2ecb6a8e57f5723774b6918a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 22 May 2023 11:37:05 +0800 Subject: [PATCH] 1 --- server/gameserver/compose.cc | 15 ++++++++++----- server/gameserver/mt/MergeItem.cc | 3 +-- server/gameserver/mt/MergeItem.h | 8 ++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/server/gameserver/compose.cc b/server/gameserver/compose.cc index 674528f7..7c363ad1 100644 --- a/server/gameserver/compose.cc +++ b/server/gameserver/compose.cc @@ -55,16 +55,21 @@ bool Compose::CanAdd() void Compose::IncNum() { ++num_; + if (num_ % 3 == 0 && num_ <= 9) { + TakeOnWeapon(owner_->GetCurrWeapon()); + } } void Compose::TakeOnWeapon(Weapon* weapon) { - std::set* buffs = mt::MergeItem::GetBuffs(weapon->meta->id(), - num_); Clear(); - if (buffs) { - for (int buff_id : *buffs) { - hold_buffs_.push_back(owner_->TryAddBuff(owner_, buff_id, nullptr)); + auto merge_item_meta = mt::MergeItem::GetById(weapon->meta->id()); + if (merge_item_meta) { + std::set* buffs = merge_item_meta->GetBuffs(num_); + if (buffs) { + for (int buff_id : *buffs) { + hold_buffs_.push_back(owner_->TryAddBuff(owner_, buff_id, nullptr)); + } } } } diff --git a/server/gameserver/mt/MergeItem.cc b/server/gameserver/mt/MergeItem.cc index afe07fde..8788aecc 100644 --- a/server/gameserver/mt/MergeItem.cc +++ b/server/gameserver/mt/MergeItem.cc @@ -3,7 +3,6 @@ #include "mt/MergeItem.h" IMPL_TABLE(mt::MergeItem) -std::map> mt::MergeItem::gun_num_buff_hash_; namespace mt { @@ -12,7 +11,7 @@ namespace mt { } - std::set* MergeItem::GetBuffs(int gun_id, int num) + std::set* MergeItem::GetBuffs(int num) { return nullptr; } diff --git a/server/gameserver/mt/MergeItem.h b/server/gameserver/mt/MergeItem.h index dccec10f..36293776 100644 --- a/server/gameserver/mt/MergeItem.h +++ b/server/gameserver/mt/MergeItem.h @@ -13,14 +13,10 @@ namespace mt void Init1(); - static std::set* GetBuffs(int gun_id, int num); + std::set* GetBuffs(int num); private: - static std::map> gun_num_buff_hash_; - - std::set _add_buff_list; - std::set _remove_buff_list; - + std::map> gun_num_buff_hash_; }; }