From 6cb39117bc34d07a73c089f7431e1576984c9101 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 7 Sep 2022 12:51:52 +0800 Subject: [PATCH] 1 --- server/gameserver/player.cc | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 02b43295..9404e83c 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -56,6 +56,39 @@ void Player::Initialize() &xtimer_attacher.timer_list_); #endif #endif + { + if (GetCurrWeapon()) { + MetaData::Equip* bullet_meta = MetaMgr::Instance()->GetEquip(GetCurrWeapon()->meta->i->use_bullet()); + if (bullet_meta) { + int add_num = GetInventory(bullet_meta->i->_inventory_slot()); + add_num = GetCurrWeapon()->GetClipVolume(); + GetCurrWeapon()->ammo = add_num; + } + } + for (auto& spec_weapon : spec_weapons) { + MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquip(spec_weapon.weapon_id); + if (item_meta) { + if (item_meta->i->equip_subtype() != 1) { + int weapon_idx = GUN_SLOT1; + if (weapons[weapon_idx].weapon_id != 0) { + weapon_idx = GUN_SLOT2; + } + if (weapons[weapon_idx].weapon_id == 0) { + Weapon* weapon = &weapons[weapon_idx]; + weapon->weapon_uniid = spec_weapon.weapon_uniid; + weapon->weapon_idx = weapon_idx; + weapon->weapon_id = spec_weapon.weapon_id; + weapon->weapon_lv = spec_weapon.weapon_lv; + weapon->meta = item_meta; + weapon->Recalc(); + weapon->ammo = weapon->GetClipVolume(); + SetCurrWeapon(&weapons[GUN_SLOT1]); + } + } + } + } + need_sync_active_player = true; + } } void Player::Update(int delta_time)