???
Математика на уровне МГУ

Показано с 1 по 25 из 1429

Тема: il-2Config - настройщик графики и прочего в Ил-2

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    55
    Сообщений
    535

    Ответ: il-2Config, или конец тайны conf.ini.

    Цитата Сообщение от FilippOk
    [устало] Нет. На оси Х всегда та ось джоя, которую ты прописал на неё в игре.
    Т.е. там может быть что угодно: от тримаков до закрылков. Чтобы посмотреть, что там, достаточно сунуться в settings.ini, как три страницы назад (!!) написал папа LSA.
    Последний раз повторю. Ось Х в conf.ini - это не крен в игре, т.е. не орган управления самолета (тангаж, руль высоты т.д.), это ось джойстика (РУС влево-вправо). Поэтому назначить ось Х на управление рулем направления или, к примеру, триммер можно, а вот назначить ось Х на качалку/педали/крутилку т.е. другую ось джойстика, нельзя.
    Мы с тобой просто под словом ОСЬ разных вещи понимаем.
    Т.е. в моем понимании, ось Х - это AXE_X JoystickDevice0 (именно это и означает ось Х в conf.ini), а качалка это AXE_RZ JoystickDevice0 или AXE_Z JoystickDevice0.
    А в твоем понимании, судя по всему, ось Х это aileron
    В твоем посте 321 был такой вопрос:
    Скажи, а если назначить в игре на управление креном качалку, то ось Х в conf.ini всё равно останется осью Х на джойстике?
    Ответ на него - ДА!!!
    Назначая крен на качалку, ты тем самым прописываешь в settings.ini
    AXE_RZ JoystickDevice0=aileron
    Но ось AXE_RZ JoystickDevice0 соответствует оси 1RZ в conf.ini но никак не 1X.
    Именно это и
    написал папа LSA.
    Всё, не хочу больше об этом слышать, вопрос закрыт.
    Понял, умолк.
    Каждый останется при своем мнении
    Ну и вдобавок, это для программы не принципиально.
    Угу. А вот наша программка при таком раскладе упадёт в крэш-даун.
    Блин, я о двух осях не подумал. Бум посмотреть.
    Ну, судя по скриншоту 2.5, остановились все таки на "Ил2-стик"овом варианте. Там крэша не будет.
    Из-за этой "стандартности" для того, чтобы выцепить оттуда 10 параметров, пришлось проверять (3*8)*2=48 строк в разных вариантах.
    Я правильно понимаю, что проблема связана с этим:
    Фикус в том, что тут не просто ini-шка: имя параметра может быть как
    AXE_RZ JoystickDevice0=rudder
    так и
    JoystickDevice0 AXE_RZ=rudder.
    Тогда может не перебором строки сравнивать, а применить системный подход, который сработает вне зависимости от порядка параметров?
    Черт, не писал ничего уже сто лет, функции позабывал, посему попробую словами алгоритм описать.
    ===================================
    1) Считываем очередную (1...х) строчку: AXE_RZ JoystickDevice0=rudder
    2) Определяем первое вхождение знака "равно" (pos)
    3) Считываем подстроку от pos+1 до конца строки.
    4) Делаем ей TRIM (обрезаем ведущие и конечные пробелы)
    (пп.2-4 это одна строка кода.)
    Вуа-ля, что регулируем (rudder) определили. Запоминаем в переменной (control)

    5) Определяем первое вхождение подстроки "JoystickDevice" (pos)
    6) Считываем cимвол[pos + 14] (длина строки "JoystickDevice"). Получаем номер девайса (0). Запоминаем. (Joy_ID)
    Это еще строка кода.

    7) Определяем первое вхождение подстроки "AXE_" (pos)
    8) Считываем 2 символа исходной строки, начиная с позиции pos+4. Если второй символ - пробел или равно, долой его. Если не пробел или равно, значит ось двухбуквенная. Запомнили название оси (axe)

    9) Сформировали название оси для выпадающего списка:
    control + " (Ось " + axe + " на устройстве #" + Joy_ID + ")"
    (В идеале отрезаем еще ведущий минус (если есть) и делаем табличное преобразование "rudder" -> "Руль направления")
    Итого имеем:
    "Руль направления (Ось RZ на устройстве #0)"

    10) Сформировали название оси джоя, которую надо регулировать в conf.ini:
    "1" + axe + IIF(Joy_ID="0";"";Joy_ID)
    Результат: "1RZ"

    Вроде все. На первый взгляд более громоздко, зато не ошибемся если к примеру между параметрами окажется не 1 пробел, а два или три. Да и последовательность
    AXE_RZ JoystickDevice0=rudder
    JoystickDevice0 AXE_RZ=rudder.
    роли играть не будет.
    Да не ноль там... А пробел+0, да с вариантами, когда может быть два пробела перед 0.
    Сделай TRIM() для убирания ведущих/конечных пробелов
    Надо было тебя послать подальше ещё в начале, не было бы геморроев. Теперь поздно, прилип.
    - Не гони меня, Иван-Царевич - молвил серый волк. - Я тебе еще пригожусь (с)
    На тебе в подарок внешний вид версии 2.5.
    Ура-а-а, спасибки!!!
    С удовольствием приму в дар работающую версию 2.5

    Но 5 копеек снова вставлю
    ИМХО нужно убрать картинку ИЛ-2 Штурмовик из окошка с графиком.
    Или как вариант, убрать график.
    Вместе они не смотрятся...
    Крайний раз редактировалось Oleg_BS; 17.05.2006 в 14:57.
    Чукча не писатель, чукча - читатель.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •