|
Вопросы
|
|
| Foxx |
Дата: Понедельник, 20 Мая 2024, 14:16 | Сообщение # 1 |
|
Повелитель сборок
Автор темы
Рейнджер
Сообщений: 203
OffLine
|
Mr-Stalin, спрошу здесь)
В map_enter_p_proc нужно всегда проверку на загрузку делать?
Код procedure map_enter_p_proc begin if (is_loading_game == false) then begin
end end
Группа в VK: ReBuild By Foxx
|
| |
| |
| Mr-Stalin |
Дата: Понедельник, 20 Мая 2024, 20:29 | Сообщение # 2 |
|
Мистер Сталин
Солдат братства
Сообщений: 945
OffLine
|
Цитата Foxx (  ) В map_enter_p_proc нужно всегда проверку на загрузку делать? Если не надо чтобы во время загрузки из сохранения выполнялись действия в скрипте.
если без проверки то получится так, что игрок во время загрузки сохранения как бы заходит на карту.
Fallout: sfall Projects Fallout: Mods and Tools
|
| |
| |
| Foxx |
Дата: Понедельник, 20 Мая 2024, 20:39 | Сообщение # 3 |
|
Повелитель сборок
Автор темы
Рейнджер
Сообщений: 203
OffLine
|
Mr-Stalin, я просто исходники скриптов Соноры посмотрел и там в каждом вроде прописано
Группа в VK: ReBuild By Foxx
|
| |
| |
| Mr-Stalin |
Дата: Понедельник, 20 Мая 2024, 20:42 | Сообщение # 4 |
|
Мистер Сталин
Солдат братства
Сообщений: 945
OffLine
|
Foxx, ну в основном да, везде эта проверка нужна. я вроде видел в оригинальном f2 есть пару мест без проверки.
Fallout: sfall Projects Fallout: Mods and Tools
|
| |
| |
| Foxx |
Дата: Понедельник, 20 Мая 2024, 20:43 | Сообщение # 5 |
|
Повелитель сборок
Автор темы
Рейнджер
Сообщений: 203
OffLine
|
Добавлено (18 Февраля 2026, 17:27) --------------------------------------------- Mr-Stalin, привет, не подскажешь. Лечу брамина через диалог, нужно 2 стимулятора. В итоге если в инвентаре 1 и 2 в руках, то удаляются и в руках и один в инвентаре. В инвентаре же должен остаться?
Код LVar1 := obj_carrying_pid_obj(dude_obj, 40); if (rm_mult_objs_from_inven(dude_obj, LVar1, 2) < 2) then begin LVar0 := sfall_func2("critter_inven_obj2", dude_obj, 2); if (obj_pid(LVar0) == 40) then begin rm_obj_from_inven(dude_obj, LVar0); destroy_object(LVar0); end LVar2 := sfall_func2("critter_inven_obj2", dude_obj, 1); if (obj_pid(LVar2) == 40) then begin rm_obj_from_inven(dude_obj, LVar2); destroy_object(LVar2); end end
Сообщение отредактировал Foxx - Среда, 18 Февраля 2026, 17:28
Группа в VK: ReBuild By Foxx
|
| |
| |
| Mr-Stalin |
Дата: Суббота, 21 Февраля 2026, 00:13 | Сообщение # 6 |
|
Мистер Сталин
Солдат братства
Сообщений: 945
OffLine
|
Цитата Foxx (  ) Лечу брамина через диалог, нужно 2 стимулятора. В итоге если в инвентаре 1 и 2 в руках, то удаляются и в руках и один в инвентаре. В инвентаре же должен остаться? нет удалится 3 шт  Код LVar1 := obj_carrying_pid_obj(dude_obj, 40); variable removed = rm_mult_objs_from_inven(dude_obj, LVar1, 2); if (removed < 2) then begin LVar0 := sfall_func2("critter_inven_obj2", dude_obj, 2); if (obj_pid(LVar0) == 40) then begin rm_obj_from_inven(dude_obj, LVar0); destroy_object(LVar0); removed++; end if (removed < 2) then begin LVar2 := sfall_func2("critter_inven_obj2", dude_obj, 1); if (obj_pid(LVar2) == 40) then begin rm_obj_from_inven(dude_obj, LVar2); destroy_object(LVar2); end end end
так должно быть
Fallout: sfall Projects Fallout: Mods and Tools
|
| |
| |
| Foxx |
Дата: Суббота, 21 Февраля 2026, 12:14 | Сообщение # 7 |
|
Повелитель сборок
Автор темы
Рейнджер
Сообщений: 203
OffLine
|
Цитата Mr-Stalin (  ) так должно быть Спасибо, попробую 
Работает. А removed++; в скрипте, что означает?
Сообщение отредактировал Foxx - Суббота, 21 Февраля 2026, 19:16
Группа в VK: ReBuild By Foxx
|
| |
| |
| Mr-Stalin |
Дата: Суббота, 21 Февраля 2026, 20:33 | Сообщение # 8 |
|
Мистер Сталин
Солдат братства
Сообщений: 945
OffLine
|
Цитата Foxx (  ) removed++; в скрипте, что означает? +1 Подсчет, то что мы удали еще один стимулятор.
Fallout: sfall Projects Fallout: Mods and Tools
|
| |
| |
| Ветер |
Дата: Вторник, 09 Июня 2026, 09:53 | Сообщение # 9 |
|
Ветер
Житель пустошей
Сообщений: 3
OffLine
|
Прошу совета!
В сборку Fallout 2 + Restoration Project Update (by burn) + Companion Expansion пытаюсь пристроить мод Shania of Arroyo.
В Restoration Project Update (RPU) моды, как понял, добавляются через упаковку файлов в .dat и добавление этого имя.dat в папку mods и прописку в mods_order.txt. Если добавить мод как есть, то он работает, но ломает работу как минимум вышестоящего Companion Expansion, а скорее и самого RPU.
Если верно понимаю, то для правильного взаимодействия нужно прописать скрипт мода в scripts.lst (номер строки это номер скрипта), а .msg файл в scrname.msg (номер скрипта+100 ), а также изменить скрипт мода прописав в нём изменённый номер скрипта в scripts.lst (номер строки). Всё сделал, но возникает непонятный сбой работы мода, похоже, что игра не видит скрипт.
В скриптах я не понимаю, поэтому просто открывал модовый в sFall Script Editor v4.1.7.RC1, поиском искал и заменял все старые значения номера скрипта на новые (номер строки в scripts.lst), потом компилировал срипт, упаковывал файлы мода в .dat (в формате F2) с помощью DAT Explorer 2_v1.3 и проверял в игре - не работает. В настройках sFall Script Editor пробовал применять настройки - 'Use backward mode' 'Optimization - None', не помогает. Пробовал просто открыть скрипт и тут же скомпилировать ничего не меняя - мод работает (т.к. без мод изменений, то по прежнему мешает работе других модов); значит sFall Script Editor не ломает скрипт?
Подскажите, пожалуйста, что не так?
|
| |
| |
| Mr-Stalin |
Дата: Вторник, 09 Июня 2026, 14:59 | Сообщение # 10 |
|
Мистер Сталин
Солдат братства
Сообщений: 945
OffLine
|
Цитата Ветер (  ) Всё сделал, но возникает непонятный сбой работы мода, похоже, что игра не видит скрипт. Что за скрипт. А в прототипе npc тоже нужно его переустановить, номер же его поменялся.
Fallout: sfall Projects Fallout: Mods and Tools
|
| |
| |
| Ветер |
Дата: Вторник, 09 Июня 2026, 18:34 | Сообщение # 11 |
|
Ветер
Житель пустошей
Сообщений: 3
OffLine
|
Сам мод по составу простой: maps/arvillag.map Scripts/acshania.int Scripts/scripts.lst (добавлял его сам, сделав на основе файла вышестоящего мода, с учётом всех ранее внесённых скриптов) Text/English/Dialog/acshania.msg Text/English/game/scrname.msg (добавлял его сам, сделав на основе файла вышестоящего мода)
Файлов вида proto нет.
Решил спросить и у ИИ Гугла, от говорит, что дело в том, что в карту зашито не только имя скрипта, но и его номер (номер строки в прежнем scripts.lst). А карта почему-то не открывается ни DimsMapper2 v0.99.4, ни каким-то другим редактором карт (забыл уже каким), если просто бросить файлы мода в папку data корня игры. Пока он пытается написать новый глобальный скрипт, чтобы прописать в нём нпс из мода в обход карты (а саму карт удалить).
Прикрепляю файл раскомпилированного скрипта (из мода, не от гугла):
Сообщение отредактировал Ветер - Вторник, 09 Июня 2026, 18:57
|
| |
| |
| Mr-Stalin |
Дата: Вторник, 09 Июня 2026, 23:23 | Сообщение # 12 |
|
Мистер Сталин
Солдат братства
Сообщений: 945
OffLine
|
Цитата Ветер (  ) карту зашит его номер (номер строки в прежнем scripts.lst). Вот..
Fallout: sfall Projects Fallout: Mods and Tools
|
| |
| |
| Mr-Stalin |
Дата: Среда, 10 Июня 2026, 00:11 | Сообщение # 13 |
|
Мистер Сталин
Солдат братства
Сообщений: 945
OffLine
|
Цитата Ветер (  ) Пока он пытается написать новый глобальный скрипт, чтобы прописать в нём нпс из мода в обход карты (а саму карт удалить). Как сгенерирут что то рабочее скопипастни результат сюда.
Fallout: sfall Projects Fallout: Mods and Tools
|
| |
| |
| Ветер |
Дата: Среда, 10 Июня 2026, 04:23 | Сообщение # 14 |
|
Ветер
Житель пустошей
Сообщений: 3
OffLine
|
После ~15-20 попыток он выдал такое: Код procedure start; procedure map_enter_p_proc;
procedure start begin if (metarule(22, 0) == 0) then begin call map_enter_p_proc(); end end
procedure map_enter_p_proc begin variable LVar0 := 0; if (cur_map_index == 4) then begin if (global_var(150) == 0) then begin LVar0 := create_object_sid(16777231, 20315, 0, 1575); set_global_var(150, 1); end end end
Пытается угадать какой ID ей выдать, номер гекса на карте, какой код у женской фигурки, пока получился только мужчина у палатки старейшены с именем Error и такими же пунктами в диалоге (не работающем дальше первого окна диалога). Состав скрипта он подбирает под компиляцию в sFall Script Editor v4.1.7.RC1 (не все прежние варианты смогли скомпилироваться). Не уверен что он сможет продолжить - сегодня проснулся, глянул в окно чата, а там всего два его последних ответа, пока я не продолжал запросы. Снимок
Я наконец то смог открыть карту с помощью Mapper2 by Dims (обоими версиями) просто натравив его на Killapp's Restoration Project (2.3.3+) вместо Restoration Project Update (by burn). Возник вопрос - почему Script ID в нём ровно на 1 меньше чем номер его строки в 'scripts.lst', так и должно быть? То есть, если подменить номер для другого 'scripts.lst', то нужно писать его так же на еденицу меньше?
Дополню: Удалось всё же встроить мод 'Shania of Arroyo' в сборку Restoration Project Update (RPU).
Раз карту открыл DimsMapper2 в предыдущем поколении - в Restoration Project (2.3.3+), для которого 'Shania of Arroyo' был приспособлен и переведён Drobovik и Pyran, и где этот мод уже есть, то я просто перекинул в RP (2.3.3+) файл scripts.lst из RPU, изменил на карте скрипт npc, DimsMapper2 взял номер из нового scripts.lst (он действительно на 1 меньше в свойствах карты, чем номер строки скрипта в scripts.lst),сохранил карту.
Остальное сделал как в первом сообщении - изменил через sFall Script Editor в скрипте pc 'acshania.int' номера строки на новые (просто массовой заменой), в scrname.msg тоже изменил номер (номер скрипта+100 ), упаковал в .dat и кинул всё в Restoration Project Update, прописал .dat в конец списка в mods_order.txt.
Всё заработало - и 'Shania of Arroyo', и вышестоящие моды в сборке RPU! Наверное скрипт от гугла не нужно дальше развивать - он тебе интересен?
Последний вариант глобального скрипта спавна npc без карты от гугла (дальше бросил): Код procedure start; procedure map_enter_p_proc;
procedure start begin if (metarule(22, 0) == 0) then begin call map_enter_p_proc(); end end
procedure map_enter_p_proc begin variable LVar0 := 0; if (cur_map_index == 4) then begin if (global_var(150) == 0) then begin
// 16777220 — Точный Proto ID Шании из Маппера // 20896 — Точный гекс её палатки из Маппера // 0 — Уровень карты // 1575 — Номер скрипта, при котором у вас вызывалось диалоговое окно LVar0 := create_object_sid(16777220, 20896, 0, 1575);
if (LVar0 != 0) then begin // Принудительно разворачиваем её лицом (направление 3) anim(LVar0, 1000, 3); // Фиксируем спавн в глобальной переменной set_global_var(150, 1); end
end end end
Дал ИИ данные по модовому npc, взятые из редактора карты, как итог - опытный мод без карты, скрипт заспавнил npc как в моде, но её имя и строки диалога видны как Error, но, помня последовательность действий, я провёл общение вслепую и оказалось что скрипт мода работает, в свойствах ГГ появляется новое (так и должно быть согласно логике мода). Единственное что сбоит - текст (в файлах всё прописано правильно). Похоже, что к фигурке, при обычном размещении через изменённую карту, привязываются и дополнительные ссылки на текстовик .msg, а при размещении npc без карты игре нехватает таких не ведомых мне ссылок и она не поддцепляет текст диалога.
Сообщение отредактировал Ветер - Среда, 10 Июня 2026, 12:49
|
| |
| |
| Mr-Stalin |
Дата: Среда, 10 Июня 2026, 14:01 | Сообщение # 15 |
|
Мистер Сталин
Солдат братства
Сообщений: 945
OffLine
|
Цитата Ветер (  ) Похоже, что к фигурке, при обычном размещении через изменённую карту, привязываются и дополнительные ссылки на текстовик .msg, а при размещении npc без карты игре нехватает таких не ведомых мне ссылок и она не поддцепляет текст диалога. Да ничего там не привязываются, когда через маппер ставят непеся, все так же как и через скрипт, много в каких местах/модах скриптово добавляют криттеров на карту и они работают. У скрипта просто нет доступа к файлу сообщения, вобщем твой косяк в нестыковке. Мне от сюда не видать твои косяки 
Цитата Ветер (  ) Наверное скрипт от гугла не нужно дальше развивать - он тебе интересен? Не просто мне интересно было какую фигню он состряпает. Школотовский скрипт получился, видно что ии не понимает, просто каким-то копипастом из своей базы строит скрипт.
Цитата Ветер (  ) Возник вопрос - почему Script ID в нём ровно на 1 меньше чем номер его строки в 'scripts.lst', так и должно быть? Да это норма).
Fallout: sfall Projects Fallout: Mods and Tools
|
| |
| |