From 22f375673a11f1ea5aef43d6e93d365856a42993 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 3 Apr 2019 17:32:20 +0800 Subject: [PATCH] 1 --- server/gameserver/player.cc | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 6b931ae..24a0d43 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -193,15 +193,42 @@ void Player::Shot() bullet->Initialize(); room->AddBullet(bullet); } - switch (curr_weapon->meta->i->_inventory_slot()) { + int slot_id = curr_weapon->meta->i->_inventory_slot(); + switch (slot_id) { case 5: { //手雷 + if (inventory[slot_id] > 0) { + --inventory[slot_id]; + } else { + int weapon_idx = curr_weapon->weapon_idx; + *curr_weapon = Weapon(); + curr_weapon->weapon_idx = weapon_idx; + if (weapons[SMOKE_SLOT].weapon_id != 0) { + curr_weapon = &weapons[SMOKE_SLOT]; + } else { + curr_weapon = &weapons[0]; + } + } + need_sync_active_player = true; } break; case 6: { //烟雾弹 + if (inventory[slot_id] > 0) { + --inventory[slot_id]; + } else { + int weapon_idx = curr_weapon->weapon_idx; + *curr_weapon = Weapon(); + curr_weapon->weapon_idx = weapon_idx; + if (weapons[FRAG_SLOT].weapon_id != 0) { + curr_weapon = &weapons[FRAG_SLOT]; + } else { + curr_weapon = &weapons[0]; + } + } + need_sync_active_player = true; } break; }