diff --git a/server/gameserver/mapinstance.cc b/server/gameserver/mapinstance.cc index 6c6410bd..d4664c05 100644 --- a/server/gameserver/mapinstance.cc +++ b/server/gameserver/mapinstance.cc @@ -814,6 +814,7 @@ void MapInstance::LoadHouse() } } { + //求三角形min_y max_y things_.reserve(1024 * 10); auto cb = [this] (mc::ColliderNode* node) @@ -835,7 +836,8 @@ void MapInstance::LoadHouse() tri.min_y = tri.vert0.y; tri.max_y = tri.vert0.y; for (int ii = 1; ii < 3; ++ii) { - float y = mesh_collider->mesh.vertices[i + ii].y; + int vp = mesh_collider->mesh.raw_triangles[i + ii]; + float y = mesh_collider->mesh.vertices.at(vp).y; if (y < tri.min_y) { tri.min_y = y; } diff --git a/server/gameserver/mt/MapCollider.cc b/server/gameserver/mt/MapCollider.cc index 100643e4..317918c8 100644 --- a/server/gameserver/mt/MapCollider.cc +++ b/server/gameserver/mt/MapCollider.cc @@ -37,7 +37,6 @@ namespace mt void MapCollider::Load(const std::string& filename) { - #if 0 a8::XObject xobj_root; xobj_root.ReadFromFile(MetaMgr::Instance()->GetResDir() + filename); auto xobj_nodes = xobj_root.At("nodes"); @@ -50,7 +49,6 @@ namespace mt } nodes_[node->name] = node; } - #endif } mc::ColliderNode* MapCollider::GetNode(const std::string& name)