Уже около 6 раз рассказывал об этом в игре и решил написать минигайд. Многие знают, что координаты в аду равны координатам на земле поделенным на 8. Те , например, 100 клеток в аду равняется 800 клеткам на земле. Когда вы ставите портал на земле, происходит следующие: игра ищет в аду готовый портал с некоторым диапазоном в соответствии с координатами вашего портала на земле и если не находит существующего, то генерит новый, а если находит телепортировать будет к существующему (но не назад!) В первом случае внешне все будет ок, но на самом деле портал будет стоять немного криво и в будущем у вас или у вашего соседа из-за этого возникнут проблемы. Во втором случае, зайдя назад в портал в аду, вы окажитесь у соседа, который поставил портал раньше. ----- РУКОВОДСТВО Чтобы все работало как часы, необходимо чтобы координаты вашего портала в аду равнялись координатам вашего портала на земле, поделенным на 8 (исключая высоту, ее мы игнорируем) 1. Ставим портал на земле. Смотрим координаты портала, делим их на 8 и записываем. Те если ваш портал на земле стоит на координатах -800 1600, то вы должны записать -100 200 2. Заходим в портал. Оглядываемся. Если портал по виду обжитый, то не трогаем его , если он только что сгенерился, то сносим его. Затем идем на координаты ада, которые мы записали (в нашем примере -100 200) и там ставим новый портал.
Где вы раньше были? Про то, что в аду расстояние в 8 раз меньше узнал относительно недавно. Но про то как соединяются порталы узнал только сейчас! Думал там тупо бардак с ними.
Еще добавлю несколько важных нюансов: "выходной" портал выбирается каждый раз, когда игрок заходит во "входной". Т.е. даже если у вас с первого раза всё работает в обе стороны, в будущем что-то может "поломаться", если вы или другой игрок построите рядом еще один портал. У порталов существует кратковременная память, в 60 секунд, но на практике это почти ни на что не влияет. координата Y также учитывается при поиске наиболее подходящего "выходного" портала, когда их существует несколько вблизи точки назначения. Ищется ближайший портал от расчетной точки назначения, расчет ведется в Евклидовой дистанции в координатах мира назначения. Два примера: В верхнем мире построен портал с координатами (800, 64, 800), а в нижнем мире два портала: (100, 0, 100) и (100, 32, 100). Тогда оба портала из нижнего мира будут работать в один портал в верхнем мире, но из верхнего мира вы попадете только в (100, 32, 100) в нижнем мире, т.к. он ближе к расчетной точке (100, 64, 100). Построив в нижнем мире третий портал (100, 64, 100), вы из верхнего мира будете попадать только в него. Если в верхнем мире стоит портал с координатами (800, 64, 800), а в нижнем мире два портала: (100, 0, 100) и (124, 64, 100), мы из верхнего мира попадем именно в (124, 64, 100), т.к. он ближе к расчетной точке (100, 64, 100) - до него расстояние 24 метра против 64 метров до портала (100, 0, 100). На основе этого можно попробовать создавать "лифты" по аналогии с "быстрым метро" в координатах X и Z. Главное аккуратно считать и следить за новыми соседними порталами.