Полная Версия: (sfall) дополнения
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25
Foxx
Crafty у тебя по умолчанию CanSeeAndHearFix=1 включена.
Заметил, что с ней в Неваде наблюдается проседание fps в некоторых локациях. Могут с ней еще какие-нибудь проблемы выскочить или это не опасно))

Вот сохранка и если зайти в стриптиз-бар Мамаши, то сразу видно.
https://yadi.sk/d/M0fvuK9H3EAjQv
Crafty
QUOTE (Foxx)
Заметил, что с ней в Неваде наблюдается проседание fps в некоторых локациях.
Есть такая пичалька, причина пока непонятна :(

QUOTE (Foxx)
Могут с ней еще какие-нибудь проблемы выскочить или это не опасно))
Пара-другая баксов из кармана может периодически пропадать :-p
Paptimus
А встречался, кто с багом в нью-рино после принятия в семью не обновляется ассортимент магазинов? Например, в оружейном магазине спал несколько месяцев и ничего.
Phobos
@Crafty:
QUOTE
Вот потому на практике и не срабатывает, что обработчик call_offset_v* понимает только int параметры. Но его можно научить дополнительно понимать и string (просто в вызываемую функцию он будет передавать указатель на неё). Конечно эта "учёба" актуальна если у компилятора скриптов нет жёстких ограничений (он может компилировать такой код).

С компиляцией не должно быть проблем. Компилятор знает лишь 2 вещи про каждый опкод — сколько значений взять из стека (число аргументов) и сколько положить (1 или 0). Тип ему по парабану — это дело обработчика. Я бы рекомендовал взять из текущей develop ветки моей класс OpcodeContext и связанный с ним код. Но тогда придется использовать непонятный С++ :D
Можно просто посмотреть как реализована в текущей 3.8 ветке функция SetArray, например (она там на милом сердцу ASM). Второй и третий параметр — любого типа.

Особенность со строками — в обработчик (после вызова interpretGetString) попадет указатель на строку (по сути const char*). Использовать этот указатель можно только внутри обработчика, т.к. вскоре эта строка из памяти может исчезнуть. Если нужно её хранить, рекомендуется делать копию...
Wozrogdenec
QUOTE
А встречался, кто с багом в нью-рино после принятия в семью не обновляется ассортимент магазинов? Например, в оружейном магазине спал несколько месяцев и ничего.
Насколько помню — даже в обычной версии важно находиться в другой локации, чтобы обновлялся ассортимент магазинов.
Разве нет?
Crafty
QUOTE (Novarain)
BTW, I saw you changed some names of engine functions/constants in the last couple of sfall2 updates. Did you also change them in IDA pro databases? If yes, could you update the files in the database download?

QUOTE (Phobos)
Не мог бы ты все-таки скинуть описания структур которые используешь в своей базе IDA Pro?

Знаю, что самой базой делиться не собираешься, но может хотя-бы с этим поможешь. Попытка не пытка :)
Перезалил, хз что ожидаете там увидеть — отличие от старой заключается в требовании иды 6.8 и добавленной пятёрки-другой частичных структур. Не помню менял ли имена.
Phobos
QUOTE
Перезалил, хз что ожидаете там увидеть — отличие от старой заключается в требовании иды 6.8 и добавленной пятёрки-другой частичных структур. Не помню менял ли имена.

Спасибо. Ожидаем увидеть высшую точку в реверсе движка игры :) Точнее, собранное все в одном месте. Если собрать коллективные знания всех кто когда-либо реверсил движок, наверное там уже не осталось белых пятен)))
Такие вещи надо держать в доступе, чтобы в случае чего ничего не пропало безвозвратно)
Foxx
Crafty, тебе и передохнуть не дают;)
Fakeman
QUOTE
- Из секции [Input] удалена переменная DebugEditorKey.

Зачем удалили обработку вызова внешнего отладчика? Верните!
в ini можно eё не вносить, если вам так мешают лишние записи в конфиге.

Исходников больше не будет?
Crafty
QUOTE (Fakeman)
Зачем удалили обработку вызова внешнего отладчика? Верните!
в ini можно eё не вносить, если вам так мешают лишние записи в конфиге.
Хлопотно было делать, функционал же убогонький...

QUOTE (Fakeman)
Исходников больше не будет?
Зачем тебе исходники на ассемблере?
Fakeman
CODE
Хлопотно было делать, функционал же убогонький...

Не понял насчет хлопотно делать, Кого делать?)
По этой кнопке вызывался внешний редактор где можно было посмотреть/изменить содержимое Gvar/Mvar/Sfallvar и массивов.

QUOTE
Зачем тебе исходники на ассемблере?

Я их выгружаю на GitHub :)
Crafty
QUOTE (Fakeman)
Не понял насчет хлопотно делать, Кого делать?)
Всё переписал (ну почти всё, потому и under construction) на ассемблере.

QUOTE (Fakeman)
По этой кнопке вызывался внешний редактор где можно было посмотреть/изменить содержимое Gvar/Mvar/Sfallvar и массивов.
Срамота, а не редактор.

QUOTE (Fakeman)
Я их выгружаю на GitHub :)
Какая-то странная суета :-p
Fakeman
QUOTE
Всё переписал (ну почти всё, потому и under construction) на ассемблер

Отвечу твоей цитатой: "Какая-то странная суета © Crafty"
в чем смысл то этого переписывания?)

Скидываю на гит-хаб потому, что там удобно смотреть какие изменения ты проводил, ты же ленивый вот и приходится за тебя это делать)

QUOTE
Срамота, а не редактор.

А другого и не надо, посмотрел проверил и закрыл.
Crafty
QUOTE (Fakeman)
в чем смысл то этого переписывания?)
Нужно было как-то убивать время :-p
Wiper
Crafty
привет друже :) Спасибо за работу. в f2 (в прошлых версиях sfall2) проигрывался звук после выполнения квеста или повышения уровня, а сейчас его нет. так задумано или баг? Спасибо.
Crafty
QUOTE (Wiper)
в f2 (в прошлых версиях sfall2) проигрывался звук после выполнения квеста или повышения уровня, а сейчас его нет.
А при каких условиях? Проверил повышение уровня в чистом F2 — звук есть.
Wiper
Сразу после храма испытаний, когда чуз получает 300 ед. опыта и после выполнения задания хакунина (на грядке убить сорняки).
Зы: хотел узнать, как лучше погрузится в атмосферу фола))) т.е имеется английская версия и 1С, патч от киллапа и RP. Как лучше это совместить? :)
Foxx
Crafty

Что-то не так с Sfall2 1.7.37 от 24.04.17 при сохранении на Fallout 2, Nevada и Olympus 2207 вылет.
Crafty
QUOTE (Foxx)
при сохранении с установленным InventoryFilter вылет.
Поправил.
Foxx
Crafty

Благодарствую.
Crafty
QUOTE (Wiper)
Зы: хотел узнать, как лучше погрузится в атмосферу фола))) т.е имеется английская версия и 1С, патч от киллапа и RP. Как лучше это совместить? :)
Дак если нет проблем с языком, то версию на свой выбор, сверху RP. Вот Foxx'а спроси, он в теме ;) Или у Pyran'а, на nuclear-city.com :-p

QUOTE (Foxx)
Благодарствую.
Не вечер, будут ещё ;)

Отправлено: 28 апр 17 19:26
На данный момент не сделаны AllowLargeTiles, Use32BitHeadGraphics, AllowDShowSound и проигрывание .avi-мувиков. Все, кроме первого, очень потенциальные клиенты на пока-пока.
Аргументированные возражения? ;)
Fakeman
QUOTE
AllowLargeTiles

Не нужная штука, для чего делали непонятно.

QUOTE
.avi-мувиков

так оно не проиграет их как надо.

QUOTE
Use32BitHeadGraphics

реализация немного того) да и не работает оно.
Crafty
QUOTE (Fakeman)
QUOTE
AllowLargeTiles
Не нужная штука, для чего делали непонятно.
Предлагаешь и это тоже, того? ;)
Не смотрел ещё, может оказаться странно-прикольной штукой, вроде UseFileSystemOverride.

QUOTE (Fakeman)
QUOTE
.avi-мувиков
так оно не проиграет их как надо.
Возможно я бы довёл до ума.

QUOTE (Fakeman)
QUOTE
Use32BitHeadGraphics
реализация немного того) да и не работает оно.
Как и у тех же .avi-мувиков основной недостаток — требование 4 или 5 режима (dx9). А бошки так ещё и требуют специфичный формат.

Пару слов о AllowDShowSound — в текущем виде "почти ничего" не делает и требует очень серьёзной доработки.
"Почти ничего" — может искать альтернативные форматы (mp3/wav/wma) только для музыкальных файлов (потому что там используется полный путь) и запускать их в цикле перемотки без какого-либо способа остановки. При этом требуется оригинальный .acm-файл в том же каталоге и он тоже будет запущен.
Практически это выглядит так: AllowDShowSound=1, в \sound\music\ добавляются 2 mp3-файла с нужной музыкой и переименовываются в 07desert.mp3 (музыка в главном меню) и 17arroyo.mp3 (музыка перед входом в храм). Запускается F2, в главном меню одновременно играют 07desert.acm и 07desert.mp3. Старт новой игры (07desert.mp3 продолжает играть), начинают играть 17arroyo.acm и 17arroyo.mp3. Заход в храм и возврат назад — играют 07desert.mp3, 17arroyo.mp3 и новые 17arroyo.acm/17arroyo.mp3.
Fakeman
QUOTE
Не смотрел ещё, может оказаться странно-прикольной штукой, вроде UseFileSystemOverride.

чего такого прикольного в UseFileSystemOverride
AllowLargeTiles это обрезает frm тайлов которые не вмещаются в размер 36х80.
для нубо-мододелов которые не могут обрезать тайл по размеру возможно и сгодится)

QUOTE
требование 4 или 5 режима (dx9). А бошки так ещё и требуют специфичный формат.

а чего плохого в 4/5 режиме у меня всегда всегда вкл.
формат да плохо, что нужно патчить оригинальные фрм.

QUOTE
Возможно я бы довёл до ума.

Это было бы очень полезно!
Foxx
QUOTE (Fakeman)
а чего плохого в 4/5 режиме у меня всегда всегда вкл.

Мне больше DX9 в HiRes патче нравится.
Мне кажется он как-то лучше и стабильней работает :)
Fakeman
Знаю есть баг когда включаешь дх9 в сфале то не показываются splash картинки при загрузке.
Foxx
QUOTE ("Fakeman")
есть баг когда включаешь дх9 в сфале то не показываются splash

Плюс нет эффекта затемнения при загрузке, лечении и т.п. А также часто бывает белый экран с голосом диктора, во время смерти.
Crafty
QUOTE (Fakeman)
чего такого прикольного в UseFileSystemOverride
Виртуальная файловая система, позволяет создавать копию файла и изменять её под свои требования. Движок при обращении к файлу будет получать данные этой копии, но изменять её не сможет — все изменения возможны только скриптово.
Из-за недоделанности некоторые вещи невозможны — нельзя использовать файлы, которые сохраняются в сейвах, к примеру, сделать копию pro'шника сопартийца, заморозив рост его уровней и прокачивая его самому.
По идее можно менять графику (добавив свой штрих в виде подписи) и тому подобное. Практического применения (если сравнивать с усилиями для создания физ.копии и виртуальной) придумать не могу, а потому странно-прикольная штука.
Здесь есть кривоватый пример практического использования.

QUOTE (Fakeman)
AllowLargeTiles это обрезает frm тайлов которые не вмещаются в размер 36х80.
QUOTE (Fakeman)
а чего плохого в 4/5 режиме у меня всегда всегда вкл.
А у меня нет :-p И с технической точки зрения он не сделан, вообще.

QUOTE (Fakeman)
Это было бы очень полезно!
Погоди, я как раз и не хочу заниматься исправлением лабораторных работ, которые будут использоваться только в теории.
Есть же конвертор из avi в mve.

QUOTE (Foxx)
А также часто бывает белый экран с голосом диктора, во время смерти.
Мышкой поводи ;) Для более быстрой проверки в главном меню можешь нажать N не трогая мышь.
Fakeman
QUOTE
Погоди, я как раз и не хочу заниматься исправлением лабораторных работ, которые будут использоваться только в теории.
Есть же конвертор из avi в mve.

Зачем нам mve с 256 цветами, ты что не заметил в какое говно перевращаются ролики после конвертации в мве.
Foxx
Надо черно-белые ролики конвертировать — тогда они не совсем в "говно" превращаются ))

А если по делу, то конвектор avi-mve еще и разрешение выше 640х480 не поддерживает, а это большой минус :(
Wiper
Crafty
Привет! У тебя осталась версия sfall2 1.7.36?
Crafty
QUOTE (Fakeman)
Зачем нам mve с 256 цветами, ты что не заметил в какое говно перевращаются ролики после конвертации в мве.
Под доведением до ума подразумевалось исправление краша при выходе из игры после проигрывания avi-мувика, а не создание avi-плеера с поддержкой 0 режима помимо 4 и 5.
Мне вот будет фиолетово как круто выглядит avi-мувик если я его не вижу, потому что не пользуюсь 4-5 режимом (и другим не советую, разве что ради специфичных условий или такой острой необходимости в оконном режиме).

QUOTE (Foxx)
А если по делу, то конвектор avi-mve еще и разрешение выше 640х480 не поддерживает, а это большой минус :(
Сколько там сделали avi-мувиков с момента появления возможности их использования?

QUOTE (Wiper)
У тебя осталась версия sfall2 1.7.36?
Могу попробовать вытащить в дропбоксе, но зачем?

Отправлено: 1 мая 17 01:31
QUOTE
Из-за недоделанности некоторые вещи невозможны — нельзя использовать файлы, которые сохраняются в сейвах, к примеру, сделать копию pro'шника сопартийца, заморозив рост его уровней и прокачивая его самому.
Неудачный, кстати, пример. В данном случае нельзя будет сделать виртуальную копию базового pro'шника, но прокачивать с помощью виртуальных копий уровней можно. Вот для примера использование виртуальной копии pro'шника для Сулика — при получении первого уровня он получит +1 к оригинальному для первого уровня значению силы , gl_Sulik.ssl:
CODE
procedure start;

procedure start
begin
 variable file,str;
 if game_loaded and fs_find("proto\\CRITTERS\\00000310.pro")==-1 then begin
  file:=fs_copy("proto\\CRITTERS\\00000310.pro","proto\\CRITTERS\\00000310.pro");
  fs_seek(file,0x30);
  str:=fs_read_int(file);
  fs_seek(file,0x30);
  fs_write_int(file,str+1);
 end
end
Fakeman
QUOTE
Под доведением до ума подразумевалось исправление краша при выходе из игры после проигрывания avi-мувика, а не создание avi-плеера с поддержкой 0 режима помимо 4 и 5.

Оно же в отдельном виндовском окне проигрывается, смысл над этим заморачиваться и исправлять ошибку, если это изначально убого реализовано, не думаю что этим кто то захочет воспользоваться.

Отправлено: 1 мая 17 04:27
Фигня какая-то с прошками, можно же и без всякой виртуальности править прошки в игре.
Зачем это извращение с виртом?))
Ethereal
QUOTE
Фигня какая-то с прошками, можно же и без всякой виртуальности править прошки в игре.
Зачем это извращение с виртом?))


Эта возможность и без того есть в игре. Чит с перекаченными химией партийцами до сих пор живёт и процветает. Просто не надо "прошки" распихивать по всяким "ПатчДатам" и "ДатаФолдерам". Победить этот чит, без серьёзных изменений в движке, не получится. А без них можно наворотить много всего, что приведёт непонятно к чему.

Кроме того есть и другой путь. Создание спец-химикатов, которые навсегда увеличивают параметры и равномерное распределение их по разным нычкам. А вирт — реально извращение.

А вот отображение статов и умений у партийцев напрашивается давно. Можно, конечно, через режим боя, при управлении напарниками, но хотелось бы их видеть в характеристиках при диалоге. Скажем дополнительная кнопочка, или строка в диалоге, которая выводит в экран характеристик и при закрытии его — возвращает обратно в диалог.
Fakeman
QUOTE
А вот отображение статов и умений у партийцев напрашивается давно.

Давно бы изучил скриптинг и осуществил свою мечту. Ну ничего же сложного.
Вот даже крафти который только ассемлер понимает)) и то знает как написать скрипт.
Crafty
QUOTE (Fakeman)
Фигня какая-то с прошками, можно же и без всякой виртуальности править прошки в игре.
Не вникал в причины возникновения UseFileSystemOverride.
QUOTE (Fakeman)
Зачем это извращение с виртом?))
Хоть какой-то пример. Описание же крайне скудное и её назначение было туманным.
QUOTE (Ethereal)
А вирт — реально извращение.
Чего пристали с прошками — это простой и наглядный пример.
Crafty
QUOTE
Под доведением до ума подразумевалось исправление краша при выходе из игры после проигрывания avi-мувика, а не создание avi-плеера с поддержкой 0 режима помимо 4 и 5.
Случайно как-то (в 4 режиме показывает через раз) сделалось. Восстановил AllowDShowSound, потому что теперь помимо переключения поиска альтернативных муз.файлов (проигрывание которых всё так же в плачевном состоянии) эта переменная ещё и отвечает за переключение поиска avi-файлов (в 0 режиме не ахти видок из-за 8 бит) вместо mve.
Tim
Здравствуйте.
У меня такие вопросы.

Столько всего нахакали... неужели невозможно сделать шрифт в игре больше?
Это совсем непосильная задача?

Второй, возможно и не по теме.
НПС мод, спутники меняют броню... для Фола2 уже столько разных анимаций нарисовано... ведь как минимум для Яна можно же сделать волосатого мужика...
И для Tycho лысого...

Может кто-то это уже сделал?
Спасибо.

П.С. Еще баг.

Если включить управление НПС, то если во время боя зайти к Яну в инвентарь, то его модель меняется на модель игрока и такой и остается...
Crafty
QUOTE (Tim)
Если включить управление НПС, то если во время боя зайти к Яну в инвентарь, то его модель меняется на модель игрока и такой и остается...
Да, спасибо, хз как попало. Подправил.
Fakeman
QUOTE
Столько всего нахакали... неужели невозможно сделать шрифт в игре больше?
Это совсем непосильная задача?

Нельзя в некоторых местах будет вылезать за края, да еще и возможно краши появятся. На 1 размер думаю можно поднять, если шрифт перерисовать. +1 тебе погоду даст?)
Tim
Честно, я бы потерпел если бы вылезало за края... В Аркануме область под текст увеличивается хаком и шрифт 18 можно без проблем сделать...

Жаль в Фоле не так...
Fakeman
что-то 38 как-то совсем не рабочая версия.
краш при запуске с подключенным perk.ini,
краш при использовании шейдерных функций.
Crafty
QUOTE (Fakeman)
что-то 38 как-то совсем не рабочая версия.
Подкинь инишки, у меня всё ok.
Fakeman
На трейте вылет.
CODE
[t9]
StatMod=0|-1|1|-1|2|-1|3|-1|4|-1|5|-1|6|-1|24|15|25|15|26|10|27|15|28|15|30|15|31|17|32|20

Crafty
QUOTE (Fakeman)
На трейте вылет.
Всё так же ok ;-p
Fakeman
Хорошо потестируй, найди в чем отличее 37 и 38 версии и исправь ошибки.

upd: добавь NoHardcode=1
Crafty
QUOTE (Fakeman)
upd: добавь NoHardcode=1
Другое дело, ty ;)
Crafty
QUOTE (Fakeman)
А в combat_is_starting_p_proc это как делается, проверить если криттер видит гг вошедшего в бой выполнить для криттера функцию аттаск, или как то по другому?
Угу, только через attack_setup. С несколькими дополнительными действиями — на время включить состояние боя, чтобы obj_can_see_obj видел дальше (конечно можно использовать свой аналог проверки видимости, вроде того что я ранее для hs_withinperception приводил) и attack_setup установил "обидчика". Потом вернуть состояние боя (хоть это в принципе и не обязательно  — движок всё равно его чуть позже включит). Вот так проверил сейчас на Смитти, dcSmitty.ssl:
CODE
procedure combat_is_starting_p_proc begin
 variable combat_state := read_int(0x510944);
 write_int(0x510944, combat_state bwor 1);
 if obj_can_see_obj(self_obj, dude_obj) then attack_setup(self_obj, dude_obj);
 write_int(0x510944, combat_state);
end

Убежать всяко можно.

Или так:
CODE
procedure combat_is_starting_p_proc begin
 variable source, target, perception, distance;
 source := self_obj;
 target := dude_obj;
 if source and target then begin
  perception := get_critter_stat(source, 1); // STAT_pe
  distance := perception * 2;
  if call_offset_r2(0x412BEC, source, target) then begin // can_see_(source, target)
   distance := perception * 5;
   if read_int(target+0x26) bwand 2 then distance := distance / 2; // target.flags3 & TransGlass_?
  end
  if sneak_success then begin
   distance := distance / 4;
   if has_skill(target, 8) > 120 then distance := distance - 1; // SKILL_SNEAK
  end else if using_skill(target, 8) then distance := distance * 2 / 3; // SKILL_SNEAK
  if call_offset_r2(0x48BBD4, target, source) <= distance and obj_blocking_line(source, tile_num(target), 1) == target then write_int(source+0x54, target); // Теперь гг обидел source
 end
end
Fakeman
Ясно-понятно, учтем)

Есть одна скриптовая проблемка, если к примеру требуется скриптово изменить координаты входа на карту то при заходе игрока на такую карту в map_enter_proc нельзя будет получить эти координаты dude-tile, т.е. нам всегда возвращаются стартовые координаты указанные в карте.
Я так полагаю что в начале при заходе игрока помещает на стартовые координаты, а потом уже после enter_proc перемещает его на наши указанные координаты, потому как в map_update_proc мы уже можем получить перемещенные коoрдинаты, но это событие иногда не подходит под некоторые задачи, мне как то из-за этого пришлось целый огород в скрипте городить чтобы добиться цели, и то с косяками.
Можно это как-то подфиксить чтобы перемещало сразу) ?
Crafty
QUOTE (Fakeman)
Можно это как-то подфиксить чтобы перемещало сразу) ?
Покажи пример коротенький, а то не улавливаю (override_map_start и set_map_start не подходят?).
Ваш ответ: