diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index e1a6fc5d..ff2fff68 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -633,6 +633,7 @@ void Player::ProcPrepareItems(const ::google::protobuf::RepeatedField< ::google: } 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 = second_weapon.weapon_id; weapon->weapon_lv = second_weapon.weapon_lv; diff --git a/server/gameserver/playermgr.cc b/server/gameserver/playermgr.cc index 48a30d93..4b94f611 100644 --- a/server/gameserver/playermgr.cc +++ b/server/gameserver/playermgr.cc @@ -92,6 +92,7 @@ Player* PlayerMgr::CreatePlayerByCMJoin(Player* hum, if (equip_meta && equip_meta->i->equip_type() == EQUIP_TYPE_WEAPON) { hum->weapon_configs[weapon.weapon_id()] = weapon.weapon_lv(); Weapon& spec_weapon = a8::FastAppend(hum->spec_weapons); + spec_weapon.weapon_uniid = weapon.weapon_uniid(); spec_weapon.weapon_id = weapon.weapon_id(); spec_weapon.weapon_lv = weapon.weapon_lv(); spec_weapon.ammo = weapon.ammo(); diff --git a/server/gameserver/weapon.cc b/server/gameserver/weapon.cc index fe299dcc..c91e695d 100644 --- a/server/gameserver/weapon.cc +++ b/server/gameserver/weapon.cc @@ -6,6 +6,7 @@ void Weapon::Clear() { + weapon_uniid = ""; weapon_id = 0; weapon_lv = 0; ammo = 0; @@ -16,6 +17,7 @@ void Weapon::Clear() void Weapon::ToPB(cs::MFWeapon* pb_obj) { + pb_obj->set_weapon_uniid(weapon_uniid); pb_obj->set_weapon_id(weapon_id); pb_obj->set_weapon_lv(weapon_lv); pb_obj->set_ammo(ammo); diff --git a/server/gameserver/weapon.h b/server/gameserver/weapon.h index bb4b2cb0..59998cf2 100644 --- a/server/gameserver/weapon.h +++ b/server/gameserver/weapon.h @@ -14,6 +14,7 @@ namespace MetaData struct Weapon { + std::string weapon_uniid; int weapon_idx = 0; int weapon_id = 0; int weapon_lv = 0; diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index 5bdfd6f4..1286ff70 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -200,6 +200,7 @@ message MFWeapon { optional int32 weapon_id = 1; //武器id 当weapon_id == 0时表示无装备(装备位置显示空) optional int32 weapon_lv = 2; //武器等级 + optional string weapon_uniid = 3; //武器唯一id optional int32 ammo = 4; //弹药数 optional int32 volume = 5; //弹夹容量 }