Einheit Опубликовано 6 ноября, 2019 Поделиться Опубликовано 6 ноября, 2019 Доброго времени суток. Все в курсе, что ролевая система Фоллаута, как и большинства добропорядочных РПГ старой школы, имитирует механику настольных ролёвок с бросками кубика - это краеугольный камень цивилизации Олдскула. Но в фоллаутах сама эта ролевая система куда более комплексная, чем у прочих классических РПГ, и включает в себя вагон разных переменных, проверок и пенальти. И при том, что она гораздо более сложная, в довесок к этому она ещё и в разы менее прозрачная, чем в большинстве других классических РПГ. Как итог, ролевая система представляет собой "бронепоезд в кустах" - где-то идут проверки, что-то считается и чекается прям по-крупному, в расчёт берутся один или несколько параметров персонажа, но мы этого не видим, нас даже не уведомляют о проверке, и в лучшем случаем наблюдаем только визуализированный конечный результат, при котором либо действие оканчивается успехом, либо нет. А можно даже и постфактум ничего о проверке не узнать, и в диалоге просто не будет какой-либо реплики, условиям появления которой персонаж не соответствовал. В общем, всё довольно сложно и запутанно. Но хуже всего, что ничего не видно - всё чекается без нашего участия и зачастую понять, каким образом и что именно проверялось, в самой игре невозможно.В контексте понимания механики проверок ролевой системы Фоллаута, большинство людей делятся на две категории: Те, кто не вдаются в подробности Те, кто попытались вдаться Сабж треда, вопрос и цель поиска - полные формулы всех ключевых проверок навыков/статов/репутации при взаимодействии с персонажами/объектами для успешного выполнения тех или иных условий или для получения событий. Насколько я понимаю, все небоевые проверки содержаться в файлах формата .int в папке scripts. Сразу хотелось бы уточнить - возможно кто-то уже проделал эту работу и существует какой-нибудь информер/гайд/тред, в котором собраны формулы всех ключевых проверок навыков/статов/репутации? Если такового не существует, то расскажите плес последовательно и детально (гуманитарий, да) как и чем распаковывать .int файлы, какие строчки искать и как их правильно интерпретировать? Вот есть прямые проверки - например для появления реплики в диалоге нужен интеллект >6 и красноречие 80+. Но. Насколько я помню в игре есть и "двухслойные" проверки, в которых например сперва чекается стат харизмы, и в случае провала чекается красноречие. Как в таком случае исходя из текста скрипта узнать порядок/приоритет, что в какой последовательности проверяется?В общем, потрошим скрипты на предмет условий проверок и постараемся визуально представить их как полноценную формулу/линейное уравнение. Ссылка на комментарий
Pyran Опубликовано 6 ноября, 2019 Поделиться Опубликовано 6 ноября, 2019 *Кратко и по теме:Ролевая система Fallout - интересная и комплексная штука, похожа на системы из "настолок" где кидаются кубики. Большинство проверок скрыто от глаз игрока. Помогите разобраться в этих аспектах, и подскажите как читать скрипты. Дайте ссылку на готовую базу по проверкам, если такая имеется. Берете sFall Script Editor от Mr.Stalin и читаете нужные вам скрипты. Так же, можете перевести их в ssl и читать используя notepad++Путеводитель вам в помощь 1 Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Цитата: "Помогая другим, не забывай о себе..." Ссылка на комментарий
Mr.Sталин Опубликовано 6 ноября, 2019 Поделиться Опубликовано 6 ноября, 2019 Не думаю что вы сможете разобраться с декомпилированными скриптами где будут одни голые цифры, берите еще и исходники. Ссылка на комментарий
Di-Crash Опубликовано 6 ноября, 2019 Поделиться Опубликовано 6 ноября, 2019 Раз уж пошла такая вечеринка. Я тут искал алгоритм списания топлива с машины и нигде его не обнаружил. То-есть я обнаружил скрипт машины, но ничего похожего на списание топлива там нет (или мои глаза пора выкинуть на свалку), собственно исходя из этого вопрос, а ко всему ли коду можно получить доступ, или половина вычислений делается в коде движка и добыть его не представляется возможным? Ссылка на комментарий
Mr.Sталин Опубликовано 6 ноября, 2019 Поделиться Опубликовано 6 ноября, 2019 У машины все в движке)Менять можно тут HOOK_CARTRAVEL (hs_cartravel.int) Runs continuously during worldmap travel on car. int arg1 - vanilla car speed (between 3 and 8 "steps") int arg2 - vanilla fuel consumption (100 and below) int ret1 - car speed override (pass -1 if you just want to override fuel consumption) int ret2 - fuel consumption override 1 Ссылка на комментарий
Einheit Опубликовано 6 ноября, 2019 Автор Поделиться Опубликовано 6 ноября, 2019 *Кратко и по теме:Божественная сводка Берете sFall Script Editor от Mr.Stalin и читаете нужные вам скрипты. Так же, можете перевести их в ssl и читать используя notepad++Путеводитель вам в помощьСпасибо. Только вот переименование темы несколько дерейлит суть. Проверки вне квестов тоже относятся к данному треду, и вопрос про машину как раз в эту кассу.И проверки - они все скрытые, поэтому это уточнение несколько нерациональное. Не думаю что вы сможете разобраться с декомпилированными скриптами где будут одни голые цифры, берите еще и исходники.Если не затруднит, то опишите более развёрнуто. И желательно предметно - какие именно файлы нужно брать, где они находятся, какие именно строчки искать и как их соотносить со скриптами? _______________________Попробую распедалить свою последовательность действий, если делаю что-то неправильно, то расскажите как правильно. В первую очередь нужно научиться визуально дифференцировать строчки проверок от любых других. Это позволит сузить зону поиска, определить в какой именно части скрипта содержатся проверки, чтобы оптимизировать процесс и в дальнейшем быстро находить нужные строчки.Как образец нужен персонаж чьи проверки знаем точно. Кэмерона можно уболтать завершить храмовое испытание без боя только с тагнутым красноречием. Т.е. в диалоге с ним, репликаI disagree with you. I think that a peaceful solution to any problem is possible.появится только если красноречие было выбрано основным навыком. В папке со скриптами отыскиваем файл Кэмерона - actemvil.intЗапускаю sFall Script Editor, закидываю туда означенный файл, утилита его декомпилирует приводя в божеский вид, позволяя с ним работать.Перехожу в поиск, снимаю галку учёта регистра, вбиваю в поисковую строку "tagged". Пусто. Вбиваю искать "tag" - аналогично.Листаю скрипт, выискивая глазами слова/аббревиатуры отдалённо схожие с "tag" и "speech". Безрезультатно. Ооокей.Точно помню, что для получения скидки у Ренеско в ходе выполнения поручения Сальваторе, нужен интеллект >7.Закидываю его файл NcRenesc.int в редактор, выполняю поиск на предмет наличия в скрипте строчек со словами "intelligence" и "int". Опять ничего. Что я делаю не так? Ссылка на комментарий
Mr.Sталин Опубликовано 6 ноября, 2019 Поделиться Опубликовано 6 ноября, 2019 Если вы не знаете, а вы не знаете скриптинг фола, то в скриптах вы не чего не увидите.Почитайте про функции от которых и происходит проверка, кидаются кубики. в левой или в правой панели в sFall Script Editor можно найти короткие описание для функций, вставляете их в скрипт, наводите на них мышкой и читаете более подробно (на русский только переключись в настройках).(еще нужны базовые знания программирование, обычно в школах/универах всякие паскали проходят, этого должно хватить, не знаете почитайте на ютубе уроки по программированию любые). Закидываю его файл NcRenesc.int в редактор, выполняю поиск на предмет наличия в скрипте строчек со словами "intelligence" и "int". Опять ничего.giq_option({int iq_test}, {int msg_list}, {int msg_num}, {procedure target}, {int reaction});илиNOption({int msg_num}, {procedure target}, {int iq_test}); Поэтому искать надо ключевое слово option Ссылка на комментарий
Di-Crash Опубликовано 7 ноября, 2019 Поделиться Опубликовано 7 ноября, 2019 Проверка на интеллект в декомпилированом коде будет выглядеть как-то так: if get_critter_stat(dude_obj, 4) >= 5 then begin действие которое произойдет, если интеллект главного персонажа (dude_obj) больше или равен 5.end Статы прописаны в закладке Standart Difinitions > Stats, пока все что я юзал былы нумерованы по порядку начиная с нуля. То-есть получить силу можно так get_critter_stat(dude_obj, 0) Восприятие 1 соответственно. У машины все в движке)Менять можно тутHOOK_CARTRAVEL (hs_cartravel.int) Runs continuously during worldmap travel on car. int arg1 - vanilla car speed (between 3 and 8 "steps") int arg2 - vanilla fuel consumption (100 and below) int ret1 - car speed override (pass -1 if you just want to override fuel consumption) int ret2 - fuel consumption override По правде говоря, мне нужен был не код машины, я хотел посмотреть как там устроен счетчик времени который снимает топливо с течением времени. Пока сделал так, но не уверен за работоспособность в долговременной перспективе. К тому же, он не работает при движении по карте мира. Там есть еще процедура timed_event_p_proc, но я не понял как ее запустить на скрипте который не привязан к объекту, я так понял что self_obj возвращает именно объект к которому привязан скрипт. Ссылка на комментарий
Mr.Sталин Опубликовано 7 ноября, 2019 Поделиться Опубликовано 7 ноября, 2019 gas_sub_amount = 100if GVAR_NEW_RENO_SUPER_CAR then gas_sub_amount = (gas_sub_amount * 5) * 2 / 100if GVAR_NEW_RENO_CAR_UPGRADE then gas_sub_amount = (gas_sub_amount * 3) * 2 * 15 / 100if GVAR_CAR_UPGRADE_FUEL_CELL_REGULATOR then gas_sub_amount /= 2car_gas -= gas_sub_amount Ссылка на комментарий
Mr.Sталин Опубликовано 7 ноября, 2019 Поделиться Опубликовано 7 ноября, 2019 Там есть еще процедура timed_event_p_proc, но я не понял как ее запустить на скрипте который не привязан к объекту, я так понял что self_obj возвращает именно объект к которому привязан скрипт. В глобальных это не работает, сделал пару дней назад, но в релиз пока не вошло. Ссылка на комментарий
Magus Опубликовано 27 декабря, 2019 Поделиться Опубликовано 27 декабря, 2019 Ребят, не декомпилируйте. При этом теряется весь препроцессинг (макросы), и читаемость ухудшается на порядок. Всегда ищите оригинальный скрипт для начала. Вот если не можете найти, тогда да.Вот тут https://github.com/BGforgeNet/Fallout2_Unofficial_Patch/blob/master/scripts_src/newreno/ncrenesc.ssl ищем dude_iq. Но, к сожалению, единой системы проверок нет, скрипты писали левой ногой. Если интересует именно список, то я бы обратился к гайду Пера Джорнера. FO2tweaks: неограниченные напарники, запрет напарникам стрельбы очередями, улучшенные гранаты итп.Переводы: Fallout Fixt , Restoration Project , Dangerous Quest! Инструменты: расширение VScode с поддержкой скриптов Fallout.Информация: документация к sfall, вики по Fallout: Nevada, вики PlayItHardcore.Если есть вопросы, в личку не пишите, лучше пишите на форум. Ссылка на комментарий
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти