From 54b7efe873f5b529c4015484ea6d9573e41f87aa Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 20 Feb 2023 17:22:42 +0800 Subject: [PATCH] 1 --- server/gameserver/mt/Grasp.cc | 24 ++++++++++++++++++++++-- server/gameserver/mt/Grasp.h | 7 ++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/server/gameserver/mt/Grasp.cc b/server/gameserver/mt/Grasp.cc index 9d2f2d2f..01f97b09 100644 --- a/server/gameserver/mt/Grasp.cc +++ b/server/gameserver/mt/Grasp.cc @@ -3,13 +3,25 @@ #include "mt/Grasp.h" IMPL_TABLE(mt::Grasp) -std::map>> mt::Grasp:: hero_weapon_hash_; +std::map> mt::Grasp:: hero_weapon_hash_; namespace mt { void Grasp::Init1() { + buff1_meta = mt::GraspBuff::GetById(graspbuff_id1()); + if (graspbuff_id1() && !buff1_meta) { + abort(); + } + floor2_buff_meta = mt::GraspBuff::GetById(graspbuff_id1_floor2()); + if (graspbuff_id1_floor2() && !floor2_buff_meta) { + abort(); + } + buff2_meta = mt::GraspBuff::GetById(graspbuff_id2()); + if (graspbuff_id2() && !buff2_meta) { + abort(); + } } void Grasp::Init2() @@ -25,11 +37,19 @@ namespace mt { auto itr = hero_weapon_hash_.find(a8::MakeInt64(meta->hero_id(), meta->weapon_id())); if (itr != hero_weapon_hash_.end()) { + auto itr2 = itr->second.find(meta->hero_lv()); + if (itr2 == itr->second.end()) { + itr->second[meta->hero_lv()] = GraspBuffs(); + } + itr2 = itr->second.find(meta->hero_lv()); + if (itr2 == itr->second.end()) { + abort(); + } } }); } - std::vector* Grasp::GetGrasp(int hero_id, int hero_lv, int weapon_id) + GraspBuffs* Grasp::GetGrasp(int hero_id, int hero_lv, int weapon_id) { auto itr = hero_weapon_hash_.find(a8::MakeInt64(hero_id, weapon_id)); if (itr != hero_weapon_hash_.end()) { diff --git a/server/gameserver/mt/Grasp.h b/server/gameserver/mt/Grasp.h index 449d8d8b..75d77930 100644 --- a/server/gameserver/mt/Grasp.h +++ b/server/gameserver/mt/Grasp.h @@ -2,10 +2,11 @@ #include "mt/macro.h" #include "mtb/Grasp.h" -#include "mtb/GraspBuff.h" +#include "mt/GraspBuff.h" namespace mt { + typedef std::vector> GraspBuffs; DECLARE_ID_TABLE(Grasp, mtb::Grasp, "grasp@grasp.json", @@ -20,10 +21,10 @@ namespace mt const mt::GraspBuff* floor2_buff_meta = nullptr; const mt::GraspBuff* buff2_meta = nullptr; - static std::vector* GetGrasp(int hero_id, int hero_lv, int weapon_id); + static GraspBuffs* GetGrasp(int hero_id, int hero_lv, int weapon_id); private: - static std::map>> hero_weapon_hash_; + static std::map> hero_weapon_hash_; }; }