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 = ""]; //用户自定义数据 } //断线重连