浏览代码

Fix self-visiting skipping battle on landing after flying above monster

Ivan Savenko 1 年之前
父节点
当前提交
106a3b6c8e
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      server/CGameHandler.cpp

+ 5 - 1
server/CGameHandler.cpp

@@ -1104,7 +1104,11 @@ bool CGameHandler::moveHero(ObjectInstanceID hid, int3 dst, EMovementMode moveme
 		objectToVisit = t.visitableObjects.back();
 
 	if (isInTheMap(guardPos))
-		guardian = getTile(guardPos)->visitableObjects.back();
+	{
+		for (auto const & object : getTile(guardPos)->visitableObjects)
+			if (object->ID == MapObjectID::MONSTER) // exclude other objects, such as hero flying above monster
+				guardian = object;
+	}
 
 	const bool embarking = !h->boat && objectToVisit && objectToVisit->ID == Obj::BOAT;
 	const bool disembarking = h->boat