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.Если есть вопросы, в личку не пишите, лучше пишите на форум.
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти