Как обычно запутался в элементарном. Мне нужно чтобы значение из одного датарефа в реальном времени переводилось в значение другого с оговоркой что один градусы с минусами считает другой по кругу. Хочу что-бы psi головы следило за скольжением взглядом. как это в LUA ?
p.s. первая часть это предусмотрительное отключение того что ниже будет слайдером
начал так а вот вторая функция я встрял — мозг дым жара
defineProperty(«slip»,globalPropertyf(«sim/cockpit2/gauges/indicators/sideslip_degrees»))
defineProperty(«head»,globalPropertyf(«sim/graphics/view/pilots_head_psi»))
defineProperty(«off»,globalPropertyi(«sim/cockpit2/switches/custom_slider_on[17]»))
function update()
if get(off) ~= 0 then
head_control()
end
end
function head_control()
????????????????
end
Помогите зануды ))
Пока сделал нервного пилота — рывками головой крутит, чего нет никого кто в теме? Или продавцы не скажут — покупатели не знают? Опять гуглить придётся )))
А пилот — землянин?
Нет, но он тоже нервный )) Короче сделал я его изначально дёрганным, потом нервно озирающимся, а вот теперь жду может Михаааа! Ау. Подскажи мантру на LUA чтобы он у меня головой крутил в сторону скольжения синхронно. мне до 90 +- нужно, так-как я скользить боком люблю ) А поворачивать самому голову не
охота. Возможны варианты. Например обычно человек чует что началось скольжение поворачивает голову в ту сторону а потом опять возвращает её. Я всё равно
додумаю — расшевелить авсим просто охото…
Да я не совсем понял, что тебе надо, диапазон -180..180 в 0..360 перевести? Ну так если значение положительное, пишешь как есть, а если отрицательное, то 180-значение
Upd: Тьфу! То есть 360+значение. Вообще, мог бы и пораньше спросить, а не дожидаться, пока у меня час ночи пробьет.
Сообщение отредактировано mxkv67: 21 June 2016 — 20:05
Тебе не 120 лет чтоб спать со спокойными ночами ложиться )) Шучу. Вот мой вариант припадочной головы
Так пойдет?
function head_control()
if get(slip < 0) then set(head, 360+slip) else set(head, slip)
end
Браво. Я проверю сейчас и отвечу что получилось.
Не работает, ошибок нет. Просто что-то не додумано. Смысл мне уже ясен, можно пробовать метод тыка в этом твоём ключе,но что-то пока не так. Ноль реакции на скольжение
Тут интерполяция нужна. Я бы написал что-то типа такого:
function interpolate(x, xmin, xmax, ymin, ymax)
if x< xmin then
return ymin
end
if x> xmax then
return ymax
end
return ymin + (x-xmin)/(xmax — xmin)*(ymax — ymin)
end
function head_control()
if (slip<0) then
return interpolate(slip, 0, -30, 360, 330)
end
if (slip>0) then
return interpolate(slip, 0, 30, 0, 25)
end
end
P.S. Это навскидку, нужно подумать будет ли правильно работать в отрицательных диапазонах и подхачить если что.
Сообщение отредактировано Maxxe: 21 June 2016 — 23:45
Отправлено с моего HTC6525LVW через Tapatalk
Я попробую, подскажу. Пока я чуть чуть поджёг свои мозги. Оно как заколдованное, не хочет. Причём я уже не уверен что это ошибки наши а не симулятора версии b2 . Всё равно спасибо за намёк, с интерполяцией пробовал но по другому. Сейчас твой метод прикину — подскажу.
Не не работае
Не не работает, потом and пока внизу не поставишь он не будет работать, в серединах не работает с and. Назову это прилично — не удобная архитектура )
А второе голова то где? head? оно у тебя интерполирует скольжение ну круто а нафига )) ? Надо додумать немного. У меня работает вот это безумие
[spoilerdefineProperty(«slip»,globalPropertyf(«sim/cockpit2/gauges/indicators/sideslip_degrees»))
end][/spoiler]
и я уже начал находить его полезным, правда голова как у совы — тупил тупил развернул рывком ))
Я пока не понял, что нужно получить
Если вертеть голову пилота пропорционально скольжению — то приравнять скольжению, умноженному на коэффициент по вкусу.
Если хочется ступеньчато, но не сильно резко, можно добавить сглаживание.
Сообщение отредактировано skyteacher: 22 June 2016 — 02:05
Распишу наверное, коль я правильно понял задачу.
Если просто привязать скольжение к повороту головы, то получится:
Сообщение отредактировано skyteacher: 22 June 2016 — 03:47
УУУ. Вот заразили же
Попробовал таки в симе. Вылезли еще баги, напрямую не связанные — Не включался внешний вид и не крутилась голова мышей. А также при переходе с внешнего вида (после исправления) голова повернута на 180 назад. Особо не вникал почему. А после правки мыши в крайней верхней и нижних точках обзора дрожал вид.
Пришлось дополнять костылями:
Сообщение отредактировано skyteacher: 22 June 2016 — 06:03
Не включается внешний вид — это, типа, фича. На самом деле при прописывании поворота головы принудительно включается внутренний вид, по этому перед тем как прописать надо посмотреть какой сейчас вид и если внешний, то после прописывания восстановить.
Последний твой код работает блистательно! , я его немного усложнил кнопкой отключения, но меня Михаила сообщение настораживает.
Согласись в полёте с ним чувствуешь себя живым? Так вот! Я думаю тема не помешает здесь подобная. Назвать типа «кривокодеры идут на помощь» )))
Вообще спасибо всем, по ситуации рабочий у skyteacher 1 место
рабочий с функцией голова — сова Sergey747 2 место
гениальный, но не рабочий Михаил и Маxx разделят почётное третье место если щас не выдас ко-то шедевр
Пожелание убрать реакцию на кнопки Q E клавиатуры так — как они залипают при активации кода
Да я LUA и скриптовые языки практически не знаю (но догадываюсь, что если хочешь, чтоб функция посередине закончилась, надо ставить «return», а не «end»
), мне и третье место, считай, халява 
Про retutn не догнал немного — поясни на примере вот я уже немного поправил по алфавиту, заменил некоторые повторяющиеся слова синонимами — проверил
работает + возможность отключить назначив на слайдер или сделав кнопку как у меня
defineProperty(«head», globalPropertyf(«sim/graphics/view/pilots_head_psi»))
третье место почётное — вообще первым быть вредно, это начало деградации )
В этот код можно по вкусу добавить удержание взглядом горизонта? Тогда будет законченный продукт высокого качества !
Модель где это будет реализовано в законченном варианте
я могу позже выложить — учтите у меня странные фантазии и опасный юмор
Всех соавторов могу указать в acf но я думаю они пожелают не светиться в моих граничащих с цинизмом, а посути цинизмом высмеивающие глупость шедеврах )
Позже раз уж я плагин поставил, думаю у меня в модели начнут скрипеть двери и зубы пилота ( ну это так — лирика )
Вот видео как оно у меня работает. Намеренно не делал 16:9 соотношение картинки чтоб оценить без иллюзий. У меня монитор 4:3 а растягивать для его величества ютуб не хочу, картинка получается не полноценная или растянутая. По мне вполне полезный плагин вы написали — трекир не нужен ))
Сообщение отредактировано Sergey747: 22 June 2016 — 13:45
Пусть не настораживает. Да, если что то вписать в переменные головы, то вид сбрасывается на внутренний, поэтому нужно проверять (что я и сделал).
Кнопками Q и E не пользовался, поэтому не заметил.
Нужно прописать их команды, а потом добавлять в общую кучу.(Как вариант)
Взгляд на горизонте можно держать, просто писать в тангаж головы тангаж ЛА. Выглядеть в коде будет аналогично повороту.
Сообщение отредактировано skyteacher: 22 June 2016 — 15:44
Вообще полезный код и держать им можно что угодно. скажем можно вектор тяги привязать к скорости ниже той минимальной которую удерживают крылья и чтоб он выкручивался в состояние зависания синхронно со скоростью компенсируя потерю крыльями сил для полёта — получиться некий безопасный VTOL . Можно ещё до кучи обнулять скольжения и получиться физика FSX ) Это полезные буквы так-как при наличии фантазии
можно расширить функционал plane-maker страницы с настройками совместных отклонений. Поэтому нужно его под спойлер как работающий, эффективный
и полезный. Коды можно в первое сообщение форума и закрепить на всех страницах. Чтоб каждый желающий глянул и нашёл что хотел или довести до ума
и пере сохранить если автор позволяет
функция обратной пропорциональности в LUA как её изобразить -то? где 90=0 для одного датарефа а 0=90 для другого. Типа скорость 88 то вектор 2 градуса или вектор 88 скорость 2узла. Засвербило поднять безопасность векторной тяги )
Я несколько лет назад баловался камерой, даже хотелось плагин какой то общий. Но потом перестало быть интересным и усе
Можно делать справочник с примерами, но его надо наполнять. Можно пусть в этой ветке выкладывают задания/пожелания, а остальной народ попробует это изобразить в кракозябрах луа.
Ну а вот чем я баловался + помойка, на которой вертится(у меня в облаке хранится старый хлам). Там может быть и что то лишнее, т.к. просто эксперименты.
Сообщение отредактировано skyteacher: 22 June 2016 — 17:50
Мдя. Спасибо тебе о великий движок форума, что помогаешь
droll = math.rad®
Поменял на
droll = math.rad( r )
Сообщение отредактировано skyteacher: 22 June 2016 — 17:52
Я думаю это для hard техники подходит, а следящая башка для fighters. Пожелания есть и кривокода своего уже не мало. Модератор меня фильтрует, поэтому
пожелания приходят когда он какаву на террассе допьёт или вообще не доходят когда я говорю на литературно ) Вот с пропорциями вопрос где-то встрял…
С какими пропорциями?
#26 там он очутился
Если правильно понял, то нужно, что бы векторная тяга изменяла положение в зависимости от скорости.
Ну тут уж какую зависимость хочется.
1. Можно ступеньки из if делать:
if speed > 100 then vektor = 0
elseif speed > 50 then vektor = 45
…
end
2. Можно линейно в каком то интервале скорости.
Например:
vektor = 100 — speed
if vektor < 0 then vektor = 0 end
if vektor > 90 then vektor = 90 end
Получится, что после 10 узлов вектор будет линейно уменьшаться, пока не станет равным нулю при скорости 100 узлов и выше.
3.Можно накатать таблицу соответствующих значений + функцию интерполяции. Так делали в ан-24 и як-40, настраивая мощность по высотам.
Сообщение отредактировано skyteacher: 22 June 2016 — 21:17
Линейный интересно, но там доступен только датареф отношение 0 1 ) эта строчка veсtor = 100 — speed не сработает тогда. Из неё пом и остальное не уместно. И ещё у меня 0 вектор это убранно а 1 это 180 градусов — реверс )) 0,5 тогда получается 90 висячка
Да какая разница. Я ж просто на примере. Разделите на 90 или там 180. Делов то.
Если вам нужно под конкретные цифры, тогда напишите описание подробно.
Сообщение отредактировано skyteacher: 22 June 2016 — 22:20
Забей если напрягает — у меня ступенчатый работает я попробовал и хватит. пример тебе понятен и ещё кучке, до остальных ни в жизнь не долетит что нужно
скобки и атрибуты проставлять или что скобки могут быть { } а не () )) Я так с линейным ничего и не догнал из-за этого. Знаки математика вся эта в LUA чехорда она многих пугает не логичностью хода мысли и атрибутикой о которой не слыхал дэльта например я так понимаю разница но чего с чем тёмный
лес и прочее. Поэтому писать так не примерно а точно я думаю, либо вообще не писать
под спойлером ступенчатый если спойлер сработает ))
Вот, арбузная логика — ничего не удобно, работает как часы, но лучше бы эти часы не работали — дольше пролетишь ) В процессе я реально сам забыл что хотел и собственно результат превосходит самые дурные мысли. Вопрос был что ~= если неравенство выдаёт противоположность ( я так думаю именно так мыслят программисты ) по сути ни как, просто пласкогубцы, грибы, картофель, забор = ничего не выйдет но мы костыль…
Воо! Логика предикатов не меньше, ибо я уже не могу понять чего понаписал, но модель оно настойчиво сажает давая возможность удрать. Систему назову шалтай болтай пока не встряхнул — значком будут двухсторонние стрелки со знаком весов наоборот к кверху вниз )
https://photos.googl…mPXQ312ADzrrnBF
Короче чуваки скучные вы и последний
раз наверно предлагаю додумать код под спойлером ибо истенна где-то рядом, но пока с интуицией это творение не дружит на некоторых этапах эволюции )
end
Возьму ка я первое место )) Что только не предлагали по вращалке головы и страницу формулами раскатать и пол симулятора датарефов задействовать а оно вот — коротко и ясно )
Ну да, ну да
Сообщение отредактировано skyteacher: 23 June 2016 — 21:50
Чего ну да ) Датареф старый, а в нём скольжение как в 9 ке — никакое. Я взял с 9.30 версии и поехало. Фиксики. Кто такие фиксики ну да ну да ну да
внешний вид int а не float вот у вас всё так и летает — загадочно
Поправил твой 3 ошибки + тебе нужно проверить, мне думается теперь там много лишнего в кракозябрах — он стал слишком шустрый из-за них. Другой датареф он
вообще наоборот пришлось сглаживание убрать минус — глянь
Неее от твоего отказался напрочь ! Вот мой и он меня устраивает по всем параметрам, нет в нём ничего лишнего,ошибок нет, работает лучше точнее и плавнее
твоего с фантазией — лишнее у тебя там всё — вообще много лишнего. Попробуй этот — няша а не плуг )))
defineProperty(«throttle»,globalPropertyf(«sim/cockpit2/engine/actuators/throttle_ratio_all»))
defineProperty(«vector»,globalPropertyf(«sim/cockpit2/controls/thrust_vector_ratio»))
defineProperty(«speed»,globalPropertyf(«sim/cockpit2/gauges/indicators/airspeed_kts_pilot»))
defineProperty(«radio»,globalPropertyf(«sim/cockpit2/gauges/indicators/radio_altimeter_height_ft_pilot»))
function update()
if get(out) ~= 0 then
vtol_control()
end
end
function vtol_control()
local delta = (get(throttle))
local v = (get(speed))
if get(throttle) < 0.75 and get(speed) > 100 then
set(vector, 0 + delta)
elseif get(throttle) < 0.75 and get(speed) > 100 then
set(vector, 0)
end
if get(speed) > 40 and get(speed) < 100 then
set(vector, 0.34 + v/250)
elseif get(speed) > 40 and get(speed) < 100 then
set(vector, 0.5)
end
if get(speed) < 40 and get(radio) < 400 then
set(vector, 0.5)
elseif get(speed) < 40 and get(radio) < 400 then
set(vector, 0)
end
end
Там с обзором тишина на год? Все впали в пограничные состояния?
Интересно а команды они не меняются плагином? Такие вот например
С этим форумом всё ясно, теперь проверим какие скриптологи на орге — кривокодеры
модель эту фапайте кто хочет продыбать эту мутню здесь она — обновил
Так дело в форуме? Или же нет?
Команды можно создавать или использовать симовские
Сообщение отредактировано skyteacher: 25 June 2016 — 15:00
Ни о чём вообще. Тебе спасибо? Спасибо говорят за дело, а не за путанное блеянье… Сам прочти что ответил перед зеркалом раз десять и подумай…
Отправлено с моего HTC6525LVW через Tapatalk
Вот-вот, посмотрите, что вы написали. Я где-то писал про «спасибо»?
Вот прям со всеми исходниками https://yadi.sk/d/HiDH38RmsqpgQ гляньте если не трудно. Нужно убрать фичи типа не включается внешний вид, не реагирует на кнопки Q W E я как-то исчерпался в этом смысле. Сам код в head.lua меня устраивает а вот его фичи хочу убрать. И заодно зацените плюшку которую я добавил
назвал — домашний колдун. Я бы не хотел услыхать бред и желание воспитывать, поэтому по вопросу не более. Скай мне твой подход не нравиться в принципе
всё что ты мудришь можно заменить включением галочки синема в настройках симулятора.
Если понравилось то версия выше на org обновил ссылку — устранены артефакты за голограмма — панелью (по сути я забыл придать ей свойства стекла)
Я на нём ездию по космосам нападаю и ем облака ))