Телесаинс, или как сделать кошерную вещь кривой и бесполезной

Ни для кого уже не секрет, что в телесаинс нынче введена такая заковырка, как angle_off. Почему она введена - никто не знает.

Давайте вместе вспомним в чём вся суть телесаинса.
Вытащить труп с соляр? Да пожалуйста.
Кинуть бомбу в самое сердце блоба? Легко.
Закинуть шкафчик со штурмовым отрядом СБшников к инженерам, обмазывающихся полями и эмитерами? Не проблема.
Спереть медсестричку из приёмной? Не вопрос.
Освободить ящера из пермабрига? Тоже легко, (главное чтобы кристаллы были) etc.

Посовещавшись с парой математиков, все пришли к выводу, что вычислить погрешность подъёма нереально. Практически во всех билдах стоит вот такой вот код:

/obj/machinery/computer/telescience/proc/recalibrate() teles_left = rand(30, 40) //angle_off = rand(-25, 25) power_off = rand(-4, 0) rotation_off = rand(-10, 10)

Как видите, погрешность угла закоменчена.
У нас же, я подозреваю, вот такой:

/obj/machinery/computer/telescience/proc/recalibrate() teles_left = rand(30, 40) angle_off = rand(-25, 25) power_off = rand(-4, 0) rotation_off = rand(-10, 10)

Причём, диапазон погрешности угла ну ОЧЕНЬ большой.
Если уж так хотите убрать телесаинс, но просто выпилите нафиг весь отсек. Место для вольеров с метроидами освободится хоть. (Ну или расширение лабы токсинов). Но не надо убивать главную фишку телесаинса: точная телепортация по заданным координатам. Его именно для этого и создавали.

Вычислить погрешность точно нереально? За два запуска получаешь два уравнения с двумя неизвестными - погрешность угла и погрешность силы запуска, уравнения получаются с синусом, но вольфрам вроде решает такое приближенно с достаточно хорошей точностью. Вечером смогу проверить на реальных данных и привести алгоритм решения, если сработает. Еще есть подозрения, что используя граничные значения, за четыре запуска можно найти точные погрешности.

Если получится, можешь скинуть точный алгоритм в ЛС мне?

И не забудь отписаться о результатах тут.

Полностью согласен.

Проблема то даже не в этом, а в том что дополнительные кристаллы получить нереально, они требуют максимальных значений нескольких областей и полного набора ресурсов, которых практически никогда нет, ибо шахтеры либо аутисты либо их нагибают голиафы.
А получение кристаллов из слаймов за каким то чертом выпилили.

Плюс в нашем билде нет апгрейда улучшенными капаситорами, так что максимальная мощность телепорта вдвое ниже чем на ТГ.

А получение кристаллов из слаймов за каким то чертом выпилили.
Куда это их выпилили? Блюспейс слаймы выводятся и кристалы из них должны вырезаться - если не вырезаются - то это баг и о нем нужно сообщить.

Я вченра копал. Конешно в половине раунда накапывал нормально под конецц тогошо то пейраты, то шатол, то еще что. Но очень часть и ученых нет в РнД

А чего томить, люди? Два запуска, и все ваши погрешности решены.
Первый - калибровочный с википедии, для нахождения погрешности энергии и азимута.
Второй запуск - это запуск на любую доступную координату, к примеру… Обычный стул из конференц-зала.
Запускаем, видим нашу неудачу И, самое главное, запоминаем использованный подъём.
Дальше чисто подсчитываем подъем, нужный для попадания на полученную точку, вычитаем из его подъем, который мы запоминали, и наша погрешность готова!
А дальше просто вычитаем эту погрешность из подъёма на всех последующих бросках. Продумано и проверено.

P.S. На форуме утонул мой пост с программой, которую я специально делал для этой проблемы. Может пригодится?
http://tauceti.ru/forums/index.php?topic=4375.0

Anonim, калибровочный запуск с вики не учитывает погрешность подъема. Расстояние зависит от погрешности подъема, следовательно погрешность силы запуска(энергии) будет неправильно посчитана.

Про формулы:

Тестировал на тгшном билде(для сверки значений) со включенной погрешностью, формулы вроде бы не отличаются от остальных серверов. Метод с решением двух уравнений не работает - вольфрам не решает, поэтому попробовал по-другому. Есть подозрения, что пропустил где-то ошибку в конечном результате, позже буду перепроверять. Полученные ответы почти совпадали с настоящими значениями.

Алгоритм:

Отправляем на одинаковой мощности(максимальной) маячок со значениями Elevation в 30, 45 и 60 градусов. Рассчитываем расстояния от телепорта как l30, l45, l60. Тогда погрешность угла = 0.26atan((l60-l30)/((l60-l30)/2 + l30 - l45)/2/1.7. Формула забивается в гугл, ответ в радианах. Можно сразу получить погрешность силы запуска из формулы: расстояние = (поставленная_сила + погрешность)^2sin(2погрешность_угла+2выставленный угол)/10, только выставленный угол надо перевести в радианы.

Как:

Формула про связь расстояния, силы, угла и погрешностей выводится из кода и синуса двойного угла. Эту формулу можно записать для нескольких разных углов и вычесть полученные равенства друг из друга, применив формулу разности синусов. Для углов в 60 и 30 градусов получается: l60 - l30 = 2*(сила+погрешность_силы)^2sin(2погрешность_угла)/2/10. Для углов в 45 и 30 градусов результат хуже, но в конечном итоге получается нечто похожее для косинуса двойной погрешности. Разделив уравнения друг на друга, избавляемся от погрешности силы и получаем формулу для тангенса двойной погрешности, откуда выводится ответ.

От части я согласен, может где-то есть ошибки, может недочёты, но чего же можно ожидать от обычного школяра, вроде меня. Даже признаюсь, представленные формулы понять у меня не вышло, но растолковать свою теорию я могу.

Про запуск из вики: я знаю, что он не затрагивает погрешность подъёма, потому что по неведомой магии он не действует при подъёме в 45. Этот запуск, как уже было сказано, нужен для нахождения погрешностей энергии и азимута, для запуска на подъём.

И да, я понимаю, что мой метод - это полный абсурд и бред чего-то там, но меня самого удивляет, что в 90% калибровок (в основном когда из-за погрешности телепортирует не с бешеным перелётом) оно всё-же работает. Может это просто разные способы решения? Если что, то все вычисления у меня шли через Pascal и Java. Программирую же.

При угле в 45 градусов погрешность на него прям вообще не накладывается? Точно? Ах, ещё, Погрешность угла ну довольно существенно снижает и так маленькую дальность телепортации.

Давай по порядку.
В коде нет строки, которая бы отвечала за то, что на 45 не накладывается погрешность, иначе бы уже где-то и было бы написано об этом. Но всё же, факт существования данной “аномалии” имеет место быть, или мне просто нужно вникнуть в суть кода СС-ки.
А вот про то, что погрешность уменьшает радиус, ты чуток не прав. При калибровке у подъёма может выпасть и отрицательное значение потери, что приведёт наоборот к сплошным перелётам. Лично у меня, при сильных “перелётах” начинают отказываться работать мои программы, так как они не верят, что даже при такой погрешности можно попасть в место перелёта.

Телепад же как пушка работает. Если угол вместе с погрешностью >90 градусов, то снарядик летит в сторону, обратную азимуту, не? Я не догоняю.

По логике то да, но если С такой страной погрешностью запускать не на максимальное значение (45), то действительно оно неким чудом может перелететь возможный максимум для той колибровки. Хотя это всё только теория, а проверять пока желания нету.

Кошерным телесанс будет тогда, когда в него завезут гунцовый механ с данжами и солярисом.

Но это совсем не тот телесаинс что у нас. Там вообще все просто.

А поп оводу УГЛА, он отвечает за направление и никак не влияет на дальность (разве что посредством округления).

Спешу поправить, что мы беседовали именно об угле подъёма, который в отличии от азимута, как раз влечёт на дальность, но не затрагивает направление.
И можно по подробнее про те гуновские данжи С телепада?

Вкратце, там можно с помощью телесаенса попасть на уровни, на которые похожи карты гейтвея.
Лабиринты, выживание, монстры.
Некоторые из уровней (точно солярис) могут закончить весь раунд, если запустить находящийся там ивент.

Но разве на нашем сервере такое работает? Перемещение по уровням приводит лишь к тому что мы попадаем в другой сектор или что-то путаю?