From b9f5fda8915da902ef651934d4328603246fcb66 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 28 Mar 2019 11:04:24 +0800 Subject: [PATCH] 1 --- server/gameserver/building.cc | 7 +++++++ server/gameserver/metadata.h | 10 ++++++++++ server/tools/protobuild/cs_proto.proto | 12 ++++++++---- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/server/gameserver/building.cc b/server/gameserver/building.cc index 49c5d9b..f37047e 100644 --- a/server/gameserver/building.cc +++ b/server/gameserver/building.cc @@ -34,6 +34,13 @@ void Building::RecalcSelfCollider() obj.y() + obj.height()/2.0 - meta->i->tileheight()/2.0); colliders.push_back(collider); } + for (auto& obj : meta->doors) { + #if 0 + MetaData::MapThing* thing = MetaMgr::Instance()->GetMapThing(obj.id()); + if (thing) { + } + #endif + } for (auto& obj : meta->i->lootobj()) { MetaData::MapThing* thing = MetaMgr::Instance()->GetMapThing(obj.id()); if (thing) { diff --git a/server/gameserver/metadata.h b/server/gameserver/metadata.h index fd6812d..8f5718c 100755 --- a/server/gameserver/metadata.h +++ b/server/gameserver/metadata.h @@ -42,7 +42,17 @@ namespace MetaData struct Building { + struct Door + { + int door_id = 0; + const metatable::DoorObjJson* state0 = nullptr; + const metatable::DoorObjJson* state1 = nullptr; + const metatable::DoorObjJson* state2 = nullptr; + }; + const metatable::BuildingJson* i = nullptr; + + std::vector doors; }; struct Drop diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index a43a0f5..7811198 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -170,9 +170,13 @@ message MFObstacleFull optional bool dead_at_thisframe = 9; //是否当前帧死亡(播放死亡特效) optional bool is_door = 20; //是否门 - optional int32 door_relative_ori = 21; // - optional bool door_can_use = 22; // - optional int32 door_seq = 23; + //只有当is_door==ture时以下字段才有意义 + //门状态定义: 0:关 1:开 当door_old_state != door_new_state时播动画(开/关门) + optional int32 door_id = 22; //门id + optional int32 door_old_state = 23; //门前一个状态 + optional int32 door_new_state = 24; //门当前状态 + optional int32 door_house_uniid = 25; //门所属房间唯一id + } //建筑物-部分 @@ -496,7 +500,7 @@ message CMMove //use_scope视野 optional bool interaction = 9; //是否有交互 - optional int32 interaction_objid = 23; //交互的对象id + repeated int32 interaction_objids = 23; //交互的对象id列表 } //丢弃道具