From 43582a94e315e1b5d7a6d22521029dc4df1f6bea Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 22 May 2023 12:08:59 +0800 Subject: [PATCH] 1 --- server/gameserver/pbutils.cc | 1 + server/gameserver/weapon.cc | 12 ++++++++++++ server/gameserver/weapon.h | 1 + 3 files changed, 14 insertions(+) diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index ac636462..5157190e 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -297,6 +297,7 @@ void Weapon::ToPB(Creature* c, cs::MFWeapon* pb_obj) pb_obj->set_weapon_lv(std::max(1, weapon_lv)); pb_obj->set_ammo(ammo); pb_obj->set_volume(GetClipVolume(c)); + pb_obj->set_weapon_battle_lv(GetWeaponBattleLv(c)); } void Buff::FillMFBuff(cs::MFBuff* buff_pb) diff --git a/server/gameserver/weapon.cc b/server/gameserver/weapon.cc index 44868f3f..31f67182 100644 --- a/server/gameserver/weapon.cc +++ b/server/gameserver/weapon.cc @@ -5,6 +5,7 @@ #include "netdata.h" #include "pbutils.h" #include "human.h" +#include "compose.h" #include "mt/Equip.h" @@ -54,3 +55,14 @@ int Weapon::GetReloadTime(Creature* c) return meta ? meta->reload_time() :0; } } + +int Weapon::GetWeaponBattleLv(Creature* c) +{ + if (c) { + if (c->GetCurrWeapon() == this) { + return c->GetCompose()->GetNum() + 1; + } + } else { + return 1; + } +} diff --git a/server/gameserver/weapon.h b/server/gameserver/weapon.h index 48309bbe..3e3ae105 100644 --- a/server/gameserver/weapon.h +++ b/server/gameserver/weapon.h @@ -27,6 +27,7 @@ class Weapon int GetClipVolume(Creature* c); int GetFireRate(Creature* c); int GetReloadTime(Creature* c); + int GetWeaponBattleLv(Creature* c); private: