diff --git a/HarmonySrc/Possession.cs b/HarmonySrc/Possession.cs index c87cee3..0ddd3b7 100644 --- a/HarmonySrc/Possession.cs +++ b/HarmonySrc/Possession.cs @@ -2171,9 +2171,12 @@ namespace NecromancerTome // Блок под прицелом - лучом по сетке блоков, как ищет персонаж (PlayerMoveController: Voxel.Raycast, те же // маски). Физический луч дверь не видел (тест 13.10: «двери не открываются, даже подсказки нет») - коллайдеры // дверей не на тех слоях. Луч - с уровня головы зомби по взгляду: от третьего лица камера за спиной. + // Луч - в МИРОВЫХ координатах, как GetLookRay у персонажа (тест 13.10: в координатах сцены - «блока нет» на + // каждое E: они сдвинуты на Origin.position). Vector3 fwd = cam.forward; - Vector3 head = _z.getHeadPosition() - Origin.position; - Vector3 from = cam.position + fwd * Mathf.Max(0f, Vector3.Dot(head - cam.position, fwd)); + Vector3 camW = cam.position + Origin.position; + Vector3 head = _z.getHeadPosition(); + Vector3 from = camW + fwd * Mathf.Max(0f, Vector3.Dot(head - camW, fwd)); if (!Voxel.Raycast(_world, new Ray(from, fwd), UseReach, -555266077, 69, 0f)) { Debug.Log("[NecromancerTome] Possession: E - под прицелом в " + UseReach + " м блока нет");