diff --git a/server/gameserver/netdata.cc b/server/gameserver/netdata.cc index c1281a20..9d16b5ec 100644 --- a/server/gameserver/netdata.cc +++ b/server/gameserver/netdata.cc @@ -279,6 +279,32 @@ private: void DtoInit(Creature* c) { + { + auto rand_attr = hero_dto->At("rand_attr"); + if (rand_attr && rand_attr->IsArray()) { + for (int i = 0; i < rand_attr->Size(); ++i) { + auto attr = rand_attr->At(i); + if (attr && attr->IsObject()) { + int attr_id = a8::XValue(attr->Get("attr_id", "0")); + float val = a8::XValue(attr->Get("val", "0")).GetDouble(); + } + } + } + } + { + auto chip_page = hero_dto->At("chip_page"); + if (chip_page && chip_page->IsObject()) { + std::vector keys; + chip_page->GetKeys(keys); + for (auto& key : keys) { + auto attr = chip_page->At(key); + if (attr && attr->IsObject()) { + int attr_id = a8::XValue(attr->Get("attr_id", "0")); + float val = a8::XValue(attr->Get("val", "0")).GetDouble(); + } + } + } + } } private: