From a09b6345d27a9f041cbeec97db1421b9f13943fb Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 6 Sep 2021 13:52:40 +0800 Subject: [PATCH] 1 --- server/gameserver/human.cc | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index d5dab6f..63952f0 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3431,24 +3431,19 @@ void Human::ProcUseItem(int item_id) Weapon* Human::TakeonWeapon(MetaData::Equip* equip_meta) { + if (equip_meta->i->equip_type() != EQUIP_TYPE_WEAPON) { + return nullptr; + } + if (equip_meta->i->equip_subtype() == 1) { + return nullptr; + } + Weapon* weapon = nullptr; - if (equip_meta->i->equip_type() == EQUIP_TYPE_WEAPON) { - if (equip_meta->i->equip_subtype() == 1) { - } else { - for (int i = GUN_SLOT1; i <= GUN_SLOT2; ++i) { - if (weapons[i].weapon_id == 0) { - weapon = &weapons[i]; - weapon->weapon_idx = i; - } else if (weapons[i].meta->i->equip_subtype() == equip_meta->i->equip_subtype() && - weapons[i].meta->group_id == equip_meta->group_id){ - if (equip_meta->i->quality() > weapons[i].meta->i->quality()) { - weapon = &weapons[i]; - weapon->weapon_idx = i; - } else { - weapon = nullptr; - } - } - } + for (int idx = GUN_SLOT1; idx <= GUN_SLOT2; ++idx) { + if (weapons[idx].weapon_id == 0) { + weapon = &weapons[idx]; + weapon->weapon_idx = idx; + break; } } return weapon;