diff --git a/server/gameserver/mt/Grasp.cc b/server/gameserver/mt/Grasp.cc index 2f026f7c..9d2f2d2f 100644 --- a/server/gameserver/mt/Grasp.cc +++ b/server/gameserver/mt/Grasp.cc @@ -3,14 +3,13 @@ #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() { - } void Grasp::Init2() @@ -18,7 +17,19 @@ namespace mt } - std::vector* Grasp::GetGrasp(int hero_id, int hero_lv, int weapon_id) + void Grasp::StaticPreInit() + { + Traverse + ( + [] (const mt::Grasp* meta, bool& stop) + { + auto itr = hero_weapon_hash_.find(a8::MakeInt64(meta->hero_id(), meta->weapon_id())); + if (itr != hero_weapon_hash_.end()) { + } + }); + } + + std::vector* 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 b2fb51d8..449d8d8b 100644 --- a/server/gameserver/mt/Grasp.h +++ b/server/gameserver/mt/Grasp.h @@ -14,15 +14,16 @@ namespace mt void Init1(); void Init2(); + void StaticPreInit(); const mt::GraspBuff* buff1_meta = nullptr; 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 std::vector* GetGrasp(int hero_id, int hero_lv, int weapon_id); private: - static std::map>> hero_weapon_hash_; + static std::map>> hero_weapon_hash_; }; }