From 4d3f3c43ee5fe38ff96d7506be23cf10e96a0128 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 6 Sep 2021 11:23:16 +0800 Subject: [PATCH] 1 --- server/gameserver/android.cc | 15 ++++++++------- server/gameserver/car.cc | 21 +++++++++++++-------- server/gameserver/hero.cc | 15 ++++++++------- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/server/gameserver/android.cc b/server/gameserver/android.cc index eb47b56..4ca8636 100644 --- a/server/gameserver/android.cc +++ b/server/gameserver/android.cc @@ -65,13 +65,14 @@ void Android::GiveEquip() { MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(robot_meta->i->weapon_id()); if (weapon_meta) { - weapons[GUN_SLOT1].weapon_idx = GUN_SLOT1; - weapons[GUN_SLOT1].weapon_id = weapon_meta->i->id(); - weapons[GUN_SLOT1].weapon_lv = robot_meta->i->weapon_lv(); - weapons[GUN_SLOT1].ammo = 0; - weapons[GUN_SLOT1].meta = weapon_meta; - weapons[GUN_SLOT1].Recalc(); - SetCurrWeapon(&weapons[GUN_SLOT1]); + Weapon& weapon = weapons[GUN_SLOT1]; + weapon.weapon_idx = GUN_SLOT1; + weapon.weapon_id = weapon_meta->i->id(); + weapon.weapon_lv = robot_meta->i->weapon_lv(); + weapon.ammo = 0; + weapon.meta = weapon_meta; + weapon.Recalc(); + SetCurrWeapon(&weapon); } sex = robot_meta->i->sex(); if (sex == 0) { diff --git a/server/gameserver/car.cc b/server/gameserver/car.cc index e41b98a..4fbdd60 100644 --- a/server/gameserver/car.cc +++ b/server/gameserver/car.cc @@ -35,13 +35,14 @@ void Car::Initialize() RecalcSelfCollider(); MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(hero_meta_->i->default_weapon()); if (weapon_meta) { - weapons[GUN_SLOT1].weapon_idx = GUN_SLOT1; - weapons[GUN_SLOT1].weapon_id = weapon_meta->i->id(); - weapons[GUN_SLOT1].weapon_lv = 1; - weapons[GUN_SLOT1].meta = weapon_meta; - weapons[GUN_SLOT1].Recalc(); - weapons[GUN_SLOT1].ammo = weapons[GUN_SLOT1].GetClipVolume(); - SetCurrWeapon(&weapons[GUN_SLOT1]); + Weapon& weapon = weapons[GUN_SLOT1]; + weapon.weapon_idx = GUN_SLOT1; + weapon.weapon_id = weapon_meta->i->id(); + weapon.weapon_lv = 1; + weapon.meta = weapon_meta; + weapon.Recalc(); + weapon.ammo = weapon.GetClipVolume(); + SetCurrWeapon(&weapon); } born_frameno_ = room->GetFrameNo(); SetDef(hero_meta_->i->def()); @@ -80,7 +81,11 @@ void Car::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) p->set_max_health(GetMaxHP()); p->set_oil(cur_oil_); p->set_max_oil(meta->i->max_oil()); - p->set_bullet_num(weapons[GUN_SLOT1].ammo); + if (GetCurrWeapon()) { + p->set_bullet_num(GetCurrWeapon()->ammo); + } else { + p->set_bullet_num(0); + } p->set_seat_num(meta->int_param2); FillBuffList(hum, p->mutable_buff_list()); } diff --git a/server/gameserver/hero.cc b/server/gameserver/hero.cc index b709a97..9da48e0 100644 --- a/server/gameserver/hero.cc +++ b/server/gameserver/hero.cc @@ -36,13 +36,14 @@ void Hero::Initialize() SetMaxHP(GetHP()); MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(meta->i->default_weapon()); if (weapon_meta) { - weapons[GUN_SLOT1].weapon_idx = GUN_SLOT1; - weapons[GUN_SLOT1].weapon_id = weapon_meta->i->id(); - weapons[GUN_SLOT1].weapon_lv = 1; - weapons[GUN_SLOT1].ammo = 10000; - weapons[GUN_SLOT1].meta = weapon_meta; - weapons[GUN_SLOT1].Recalc(); - SetCurrWeapon(&weapons[GUN_SLOT1]); + Weapon& weapon = weapons[GUN_SLOT1]; + weapon.weapon_idx = GUN_SLOT1; + weapon.weapon_id = weapon_meta->i->id(); + weapon.weapon_lv = 1; + weapon.ammo = 10000; + weapon.meta = weapon_meta; + weapon.Recalc(); + SetCurrWeapon(&weapon); } SetInfiniteBulletMode(); InitAI();