From 6c32d25c2c238b6a796325e14a623fe3543d5f58 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 8 Aug 2022 13:52:35 +0800 Subject: [PATCH] 1 --- server/gameserver/metadata.cc | 14 ++++++++++++++ server/gameserver/metadata.h | 1 + server/tools/protobuild/metatable.proto | 1 + 3 files changed, 16 insertions(+) diff --git a/server/gameserver/metadata.cc b/server/gameserver/metadata.cc index 1bdc042f..512831fd 100644 --- a/server/gameserver/metadata.cc +++ b/server/gameserver/metadata.cc @@ -302,6 +302,20 @@ namespace MetaData param2_list.push_back(a8::XValue(str)); } } + { + std::vector strings; + a8::Split(i->shapes(), strings, '|'); + for (auto& str : strings) { + std::vector strings2; + a8::Split(str, strings2, ':'); + shapes.push_back(std::make_tuple + ( + a8::XValue(strings2[0]).GetInt(), + a8::XValue(strings2[1]).GetInt(), + a8::XValue(strings2[2]).GetInt() + )); + } + } } int MapThing::RandDrop() diff --git a/server/gameserver/metadata.h b/server/gameserver/metadata.h index eae1a76b..7a785ae0 100644 --- a/server/gameserver/metadata.h +++ b/server/gameserver/metadata.h @@ -61,6 +61,7 @@ namespace MetaData std::vector param2_list; std::vector> preexplosion_summon; std::vector> drop; + std::vector> shapes; bool HasDrop() { return !drop.empty();}; void Init(); diff --git a/server/tools/protobuild/metatable.proto b/server/tools/protobuild/metatable.proto index 10fbecfa..9ec2ead9 100755 --- a/server/tools/protobuild/metatable.proto +++ b/server/tools/protobuild/metatable.proto @@ -76,6 +76,7 @@ message MapThing optional int32 prebattle_hide = 32; optional int32 life_time = 33; optional int32 summon_born_rad = 34; + optional string shapes = 36; } message SafeArea