diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index fbb64c27..45d52549 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2583,9 +2583,17 @@ void Human::ProcLootWeapon(AddItemDTO& dto) } if (weapons[GUN_SLOT1].weapon_id != 0 && weapons[GUN_SLOT2].weapon_id != 0) { if (GetCurrWeapon() == &weapons[GUN_SLOT1]) { - DropWeapon(GUN_SLOT2, 1); + if (mt::Param::s().pickup_weapon_replace_type) { + DropWeapon(GUN_SLOT1, 1); + } else { + DropWeapon(GUN_SLOT2, 1); + } } else { - DropWeapon(GUN_SLOT1, 1); + if (mt::Param::s().pickup_weapon_replace_type) { + DropWeapon(GUN_SLOT2, 1); + } else { + DropWeapon(GUN_SLOT1, 1); + } } } bool switch_gun = false; diff --git a/server/gameserver/mt/Param.cc b/server/gameserver/mt/Param.cc index 83d9a79c..0a30e7ae 100644 --- a/server/gameserver/mt/Param.cc +++ b/server/gameserver/mt/Param.cc @@ -36,6 +36,7 @@ namespace mt s_.match_robot_time = GetIntParam("match_robot_time", 0); s_.match_choose_time = GetIntParam("match_choose_time", 0); s_.match_lock_time = GetIntParam("match_lock_time", 0); + s_.pickup_weapon_replace_type = GetIntParam("pickup_weapon_replace_type", 0); #if 1 s_.match_lock_time++; #endif diff --git a/server/gameserver/mt/Param.h b/server/gameserver/mt/Param.h index 870e1657..09b08679 100644 --- a/server/gameserver/mt/Param.h +++ b/server/gameserver/mt/Param.h @@ -25,6 +25,7 @@ namespace mt int newbie_room_weapon_id = 0; std::vector newbie_room_skills; std::vector newbie_room_area; + int pickup_weapon_replace_type = 0; int downed_relive_recover_hp = 0;