diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 90b5ec0c..ed465a82 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1259,7 +1259,7 @@ void Human::DeadDrop() 0, false); - const mt::Equip* gem_stone_meta = mt::Equip::GetGemStone(); + const mt::Equip* gem_stone_meta = mt::Equip::GetYellowStone(); if (gem_stone_meta) { Position drop_pos = GetPos(); room->DropItem(drop_pos.ToGlmVec3(), gem_stone_meta->id(), gemstone, 1); diff --git a/server/gameserver/mt/Equip.cc b/server/gameserver/mt/Equip.cc index ee97b881..08f426a5 100644 --- a/server/gameserver/mt/Equip.cc +++ b/server/gameserver/mt/Equip.cc @@ -5,7 +5,9 @@ IMPL_TABLE(mt::Equip) std::map mt::Equip::slot_hash_; -const mt::Equip* mt::Equip::gem_stone_ = nullptr; +const mt::Equip* mt::Equip::yellow_stone_ = nullptr; +const mt::Equip* mt::Equip::blue_stone_ = nullptr; +const mt::Equip* mt::Equip::purple_stone_ = nullptr; namespace mt { @@ -327,12 +329,24 @@ namespace mt void Equip::StaticPostInit() { - gem_stone_ = GetById(GEMSTONE_ID); + yellow_stone_ = GetById(YELLOW_STONE_ID); + blue_stone_ = GetById(BLUE_STONE_ID); + purple_stone_ = GetById(PURPLE_STONE_ID); } - const Equip* Equip::GetGemStone() + const Equip* Equip::GetYellowStone() { - return gem_stone_; + return yellow_stone_; + } + + const Equip* Equip::GetBlueStone() + { + return blue_stone_; + } + + const Equip* Equip::GetPurpleStone() + { + return purple_stone_; } } diff --git a/server/gameserver/mt/Equip.h b/server/gameserver/mt/Equip.h index 2e8e5fa1..c8c92787 100644 --- a/server/gameserver/mt/Equip.h +++ b/server/gameserver/mt/Equip.h @@ -10,7 +10,9 @@ namespace mt "equip@equip.json", "id") public: - static const int GEMSTONE_ID = 31001; + static const int YELLOW_STONE_ID = 31001; + static const int BLUE_STONE_ID = 31003; + static const int PURPLE_STONE_ID = 31004; int lock_time = 0; //0,0,0,0,后座力,是否取消定身 @@ -44,11 +46,15 @@ namespace mt bool Match(EventAddBuff_e event, int val, int val2) const; static const Equip* GetByIdBySlotId(int slot_id); static void AdjustMuzzlePos(); - static const Equip* GetGemStone(); + static const Equip* GetYellowStone(); + static const Equip* GetBlueStone(); + static const Equip* GetPurpleStone(); static void StaticPostInit(); private: - static const mt::Equip* gem_stone_; + static const mt::Equip* yellow_stone_; + static const mt::Equip* blue_stone_; + static const mt::Equip* purple_stone_; static std::map slot_hash_; std::map>> _gun_muzzle_position_hash_; }; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 604dd1df..f8147dda 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -525,7 +525,7 @@ void Room::DropItemEx(const glm::vec3& born_pos, const glm::vec3& pos, int item_ { const mt::Equip* equip_meta = mt::Equip::GetById(item_id); int group_num = equip_meta->group_num(); - if (item_id == mt::Equip::GEMSTONE_ID && group_num <= 0) { + if (item_id == mt::Equip::YELLOW_STONE_ID && group_num <= 0) { group_num = 1; } if (equip_meta && group_num > 0 && item_count > 0) {