From 000321b26ac7d732ffa9e1b227da5bd66abe5890 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 23 Dec 2020 14:04:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/human.cc | 7 +++++++ server/gameserver/human.h | 1 + server/gameserver/playermgr.cc | 1 + server/tools/protobuild/cs_proto.proto | 4 ++++ 4 files changed, 13 insertions(+) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 8b8b33c4..08ad3aeb 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -234,6 +234,9 @@ void Human::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data if (sex != 0) { p->set_sex(sex); } + if (!user_data.empty()) { + p->set_user_data(user_data); + } p->set_vip(vip); p->set_sdmg(sdmg); p->set_kill_count(stats.kills); @@ -416,6 +419,10 @@ void Human::FillMFTeamData(cs::MFTeamData* team_data, bool is_game_over) if (sex != 0) { team_data->set_sex(sex); } + if (room->GetGasData().gas_mode == GasInactive || + room->GetFrameNo() - room->GetBattleStartFrameNo() < 4) { + team_data->set_user_data(user_data); + } } } diff --git a/server/gameserver/human.h b/server/gameserver/human.h index f035dedd..befa6c7b 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -66,6 +66,7 @@ class Human : public MoveableEntity int vip_lv = 0; int head = 0; int sex = 0; + std::string user_data; long long last_cmmove_frameno = 0; bool downed = false; bool disconnected = false; diff --git a/server/gameserver/playermgr.cc b/server/gameserver/playermgr.cc index 51ed0db8..8e1de353 100644 --- a/server/gameserver/playermgr.cc +++ b/server/gameserver/playermgr.cc @@ -76,6 +76,7 @@ Player* PlayerMgr::CreatePlayerByCMJoin(Player* hum, hum->vip_lv = msg.vip_lv(); hum->head = msg.head(); hum->sex = msg.sex(); + hum->user_data = msg.user_data(); #if 0 if (hum->atk_add > 0.9999f) { hum->atk_add = hum->atk_add / 100.0f; diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index 2213c352..b7c24e2c 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -225,6 +225,8 @@ message MFPlayerFull //一下字段只有僵尸模式才有效 optional int32 charid = 44; //人物id + + optional string user_data = 60 [default = ""]; //用户自定义数据 } //阻挡物-部分 @@ -525,6 +527,7 @@ message MFTeamData optional bool downed = 7 [default = false]; //是否倒下 optional string name = 8; //名字 optional float max_health = 9; //最大血量 + optional string user_data = 60 [default = ""]; //用户自定义数据(只同步一次) //一下字段只在结算的时候该字段才有内容 optional string account_id = 10; //账号id @@ -755,6 +758,7 @@ message CMJoin repeated MFTeamMember team_members = 51; //包括自己 optional int32 room_mode = 52; //0:吃鸡模式 1:僵尸模式 optional int32 mapid = 53; //地图id 0:随机地图 + optional string user_data = 60 [default = ""]; //用户自定义数据 } //断线重连