Полная Версия: (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
Crafty
QUOTE
но почему не 1.0 тогда? Или я версию 1.0 пропустил?
Ну была вечная версия , назовём её 1.0. Версией 1.1 она стала после добавления фиксов из твоего поста.

QUOTE
На НМА у меня в подписи твои релизы с переведенным ddraw.ini. Посмотри. Ченжлог тоже есть, но английский с русским вперемешку. Если ты теперь на английском будешь релизить, я переведу остальное до сегодняшнего дня.
Спасибо ;)
Да, ini с твоей помощью на английском будет.

QUOTE
PS: Насчет наболевшего [A]ttackCombatFix, может все-таки сделать, как предлогал товарищ Sduibek и отключить горячию клавишу А, и оставить только начало боя с клика на оружие?;)
Это не решит проблему c "infinite free running". Движок не телепат, он не знает для чего реальный игрок нажал клавишу "A" или кликнул на оружие — действительно для сражения (нажатие "A"/клик на оружие не вводит игрока в "настоящий" бой и именно поэтому можно нажать Enter и завершить бой. Настоящий бой начинается после агрессивного действия со стороны игрока — у жертвы есть переменная who_hit_me и в неё заносится кто обидчик) или эксплоита с передвижением (потому что в пошаговом режиме скрипты потенциальных противников не обрабатываются).

QUOTE
А то я тоже попробовал, и чудовато получается без возможности рвануть в бой крейзи мазафакеру на психо с голыми кулаками?) (Папа, хочу, хочу, хочу...(долго и нудно достает отца)..)
Подойти/подкрасться на расстояние удара и рвануть в бой, не? :-p
Непонятно почему такой сыр-бор из-за FakeCombatFix, отключить его (= 0) и делов-то.
Drobovik
QUOTE
А то я тоже попробовал, и чудовато получается без возможности рвануть в бой крейзи мазафакеру на психо с голыми кулаками?) (Папа, хочу, хочу, хочу...(долго и нудно достает отца)..)
Подойти/подкрасться на расстояние удара и рвануть в бой, не? :-p
Непонятно почему такой сыр-бор из-за FakeCombatFix, отключить его (= 0) и делов-то.

Понятно. Ладно, тема закрыта.
Кстати, ты github собираешься юзать или пока все через fallout.ru и дропбох?
Crafty
QUOTE
Кстати, ты github собираешься юзать
Позже.
Drobovik
Еще от немецкого товарища:
QUOTE
I have another great suggestion my friend: Can you ask if he can expand the pip boy alarm for 1 day and perhaps 2 days and 1 week?

Crafty
QUOTE
I have another great suggestion my friend: Can you ask if he can expand the pip boy alarm for 1 day and perhaps 2 days and 1 week?
Весьма непросто, разве только полностью будильник в пипбое переписать. И всё равно останется проблема отображения опций, потому что нет строчек в pipboy.msg.
Foxx
Crafty
можешь исправить в Fallout 1:

- кнопки стали черными и неактивными

скриншот
http://i70.fastpic.ru/big/2015/0706/63/7cf...f4e7e920563.png
Drobovik
После помены ddraw.ini на полностью английский пропала опция

;Set to 1 to fix the bug that caused bonus HtH damage to not be applied correctly.
BonusHtHDamageFix=1

EDIT: не пропала. Не туда смотрел
Crafty
Foxx
QUOTE
- кнопки стали черными и неактивными
Добавил фикс из F2-версии — BlackSkilldexFix (по умолчанию включён). Если проблема не исчезнет, то предоставь пожалуйста сейв игры.
Foxx
QUOTE
- кнопки стали черными и неактивными
Добавил фикс из F2-версии — BlackSkilldexFix (по умолчанию включён). Если проблема не исчезнет, то предоставь пожалуйста сейв игры.


Спасибо проблема исчезла.
Fakeman
Crafty
Если есть возможность можешь немного доработать Elevator.ini чтобы в нем была возможность указать какую картинку(frm панель лифта) использовать. Frm'ки которые прописаны в INTRFACE.LST файле, что-бы не приходилось править сам экзешник f2.
Там есть параметр Image, но это не то что нужно.
Crafty
QUOTE
Если есть возможность можешь немного доработать Elevator.ini чтобы в нем была возможность указать какую картинку(frm панель лифта) использовать. Frm'ки которые прописаны в INTRFACE.LST файле, что-бы не приходилось править сам экзешник f2.
Там есть параметр Image, но это не то что нужно.
Посмотрю ;)

Отправлено: 8 июл 15 01:30
Для F1-версии добавил SaveInCombatFix и SuperStimExploitFix.
Drobovik
Crafty
Когда будешь поставлять ченжлог в архиве?;) Текстовый файлик с тем, что поменял. Плииз. А то все сложнее следить, где и че меняется.
Crafty
Fakeman
QUOTE
Если есть возможность можешь немного доработать Elevator.ini чтобы в нем была возможность указать какую картинку(frm панель лифта) использовать. Frm'ки которые прописаны в INTRFACE.LST файле, что-бы не приходилось править сам экзешник f2.
Там есть параметр Image, но это не то что нужно.
Так-то я сделал — секция Frms в Elevators.ini с переменными Image#. Но кажется мне что вполне сработала бы замена на свои frm с указанием в Image правильного номера лифта (frm которого будут использованы).

Drobovik
QUOTE
Когда будешь поставлять ченжлог в архиве?;) Текстовый файлик с тем, что поменял. Плииз. А то все сложнее следить, где и че меняется.
Так взять твою компиляцию (readme_rus.txt) или пройтись по теме и повыдёргивать изменения с датами?
Fakeman
QUOTE
Так-то я сделал — секция Frms в Elevators.ini с переменными Image#.

СПС. Попробую. Потом напишу удачно или нет)

QUOTE
Но кажется мне что вполне сработала бы замена на свои frm с указанием в Image правильного номера лифта (frm которого будут использованы).

Нет! Я добавляю новые FRM в lst, а оригинальные frm тоже используются. Лифтов то по дефолту всего 24, а картинок то меньше.
Crafty
QUOTE
Нет! Я добавляю новые FRM в lst, а оригинальные frm тоже используются. Лифтов то по дефолту всего 24, а картинок то меньше.
А, тогда мне надо допилить чтобы больше было, сейчас 24, сделаю 50 как и количество лифтов.
Fakeman
В общем все вроде работает.
QUOTE
сделаю 50 как и количество лифтов.

Кстати я так и не вдуплил как добавлять больше чем 24 лифта, ведь скриптовая команда Elevator(x) не принимает параметр типа больше чем 23.
CODE
Внутри обработчика запроса будет произведена дополнительная проверка типа лифта и вызов его панели управления произойдет только в случае если тип лежит в диапазоне от 0 до 23.


И еще не большое требование к ddraw.ini
Делай небольшой разграничение твоих добавленных настроек от оригинальных, раньше ты писал на русском комменты, а теперь уже на забугорском, и понять где ты добавил свои настройки сложно, ибо я переношу новые настройки в свой ini. В общем добавь сепаратор чтоб не путаться :)

Кстати вот эти настройки ты добавил, или они по дефолту в сфале были?
QuestsScrollButtonsX=220
QuestsScrollButtonsY=229
Drobovik
QUOTE
Drobovik
QUOTE
Когда будешь поставлять ченжлог в архиве?;) Текстовый файлик с тем, что поменял. Плииз. А то все сложнее следить, где и че меняется.
Так взять твою компиляцию (readme_rus.txt) или пройтись по теме и повыдёргивать изменения с датами?


Можешь от readme_rus.txt исходить

QUOTE
И еще не большое требование к ddraw.ini
Делай небольшой разграничение твоих добавленных настроек от оригинальных, раньше ты писал на русском комменты, а теперь уже на забугорском, и понять где ты добавил свои настройки сложно, ибо я переношу новые настройки в свой ini. В общем добавь сепаратор чтоб не путаться :)


Можно Notepad++'ом или Winmerge'ом сравнить с оригинальным 3.6 ddraw.ini и добавить строки;)
Fakeman
Тут такой вопрос назрел, а можно ли sfall подружить с редактором bis mapper2 ? 8)
Crafty
Fakeman
QUOTE
В общем все вроде работает.
Если работает, то не буду добавлять — уж больно там хлопотно.
Но даже сейчас можно делать хитрые комбинации:
CODE
[Frms]
Image22=143|150
Image23=144|145     // Свой frm

[23]
Image=22     // Переназначить движковый лифт #24 на использование frm лифта #23, они одинаковые

[24]
Image=23     // Использовать для добавленного лифта #25 свой frm

QUOTE
Кстати я так и не вдуплил как добавлять больше чем 24 лифта, ведь скриптовая команда Elevator(x) не принимает параметр типа больше чем 23.
Полагаю что ограничение в 23 для Elevator(x) снимается (= 50) после подключения Elevators.ini.
QUOTE
Кстати вот эти настройки ты добавил, или они по дефолту в сфале были?
Добавил по твоей просьбе :-p
В ini новые команды, если они есть, добавляются в конец своей секции.
QUOTE
Тут такой вопрос назрел, а можно ли sfall подружить с редактором bis mapper2 ? 8)
Нельзя, разве только делать версию sfall для маппера.

Drobovik
QUOTE
Можешь от readme_rus.txt исходить
Ok, как прокнет ;)
Сделал, кстати, свои гиты. А то зашёл через другой комп незареганным и не могу попасть в свои форки, wtf.
Fakeman
QUOTE
В ini новые команды, если они есть, добавляются в конец своей секции.

т.е. если новые добавить не в свою секцию sfall их не увидит?

QUOTE
Можно Notepad++'ом или Winmerge'ом сравнить с оригинальным

В принципе да, это боле надежно)
Crafty
QUOTE
т.е. если новые добавить не в свою секцию sfall их не увидит?
Если, к примеру, DontTurnOffSneakIfYouRun перенести из секции [Misc] в секцию [Input], то да — не увидит.
Fakeman
QUOTE
Добавил по твоей просьбе :-p

Ну раз такое дело, может можно еще подвигать полоску отображающую количество патронов на панели интерфейса — это мой маленький каприз. :))

CODE
;Allows the use of tiles over 80*36 in size. sfall will just split and resave them at startup
;Set to 1 to check all tiles on started (slow)
;set to 2 if you provide a XLtiles.lst file in art/tiles/ containing a list of the tile ids that need checking
AllowLargeTiles=0

Может кто сможет мне внятно объяснить, что делает, и для чего эта ерунда в sfall'e?
Drobovik
Crafty
Я так понимаю последние изменения 9-го числа было просто оптимизацией кода?
Crafty
Fakeman
QUOTE
Ну раз такое дело, может можно еще подвигать полоску отображающую количество патронов на панели интерфейса — это мой маленький каприз. :))
Не-не, в создании тех кнопок я принимал участие ;) Тут же неизвестно что, и может возникнуть конфликт с High Resolution Patch — там можно с помощью ALTERNATE_AMMO_METRE изменить вид полоски. Может чуть позже, особенно если напомнишь :-p

Drobovik
QUOTE
Я так понимаю последние изменения 9-го числа было просто оптимизацией кода?
Вроде того, в основном для лучшей "читаемости" кода. Но сейчас есть небольшие изменения: из ddraw.ini удалены переменные BlackSkilldexFix и DodgyDoorsFix, а в F2-версии ещё JetAntidoteFix и SpecialUnarmedAttacksFix — это чистые багфиксы, их постоянное включение не вызывает побочных эффектов, а потому существование переменных в ini-файле бессмысленно. Теперь они перманентно включены. Надо будет ещё подобные фиксы проверить...
И в архивы добавились русские ченжлоги, у каждой версии свой ;)
Fakeman
QUOTE
и может возникнуть конфликт с High Resolution Patch

Тогды не надо.
Ибо если сдвинуть при помощи sfall'а, а кто будет сдвигать в HRP?... исходников то нет.
Drobovik
Crafty
За ченжлог — спс. Только надо там .txt расширение добавить, чтобы одним кликом открывать.

Мне кажется лучше эти опции выключить по-умолчанию в ini.

CODE
;Set to 1 to enable the new arrays behavior
;Set to 0 for backward compatibility with pre-3.4 scripts
arraysBehavior=1

;Set a number of milliseconds to idle each input loop
;Set to -1 to disable
;Set to 0 to idle only if other processes are waiting for processor time
;Set to 1 (or some higher number if needed) to prevent 100% cpu use
ProcessorIdle=1


Дабы избежать потенциальных проблем для юзеров, незнакомых с sfall'ом

Первая, потому что многие моды используют старые эреи.
Вторая, потому что могут возникнуть проблемы с Хайрез патчем. Там такая же опция есть.
Crafty
QUOTE
Только надо там .txt расширение добавить, чтобы одним кликом открывать.
Блин, я как раз .txt в .ru поменял предполагая что может повиться и .en (не моими усилиями) :-p

QUOTE
Мне кажется лучше эти опции выключить по-умолчанию в ini.
Разумно, хотя у второй опции проблем с хайрез патчем быть не должно даже если и там и там они включены.

Отправлено: 12 июл 15 08:18
Исправил невозможность продажи счётчика Гейгера и стелсбоя если ими хоть раз воспользовались.
По задумке авторов если определённые вещи хоть раз использовали, то продать их потом нельзя. Что вполне логично для, к примеру, фонарика, но для счётчика/стелсбоя спорно (и просто раздражает). При этом в F2-движке есть (а в F1 нет) кусочек кода, который должен позволить продавать использованный счётчик, но он настолько криво написан, что никогда не сработает.
Может нужна переменная для этого дела?

Для F1-версии добавил возможность подключения внешнего файла, с помощью которого можно получить доступ к таблице квестов в движке и таким образом сделать видимыми в пипбое свои квесты. Только их ещё в pipboy.msg нужно будет добавить. Но думаю это новшество может заинтересовать только Sduibek'а :)
Phobos
@Crafty,

Я так понимаю это твой репозиторий https://github.com/Ytfarc/sfall2 ?
А почему не сделать fork нашего репозитория? Так ведь проще отслеживать изменения.

В идеале можно было бы сделать так — в твоем форке будет ветка master и еще одна ветка с последней версией твоего sfall, со всеми плюшками. В свой master мог бы периодически сливать наш master и какие-то свои изменения, которые можно в merge-pull request отправлять.
То есть скажем берешь какуюто фичу из своей ветки:
1) Переключаешься на master
2) Создаешь ветку some_great_feature, мерджишь в неё только изменения относящиейся к этой фиче
3) Делаешь merge-pull request из своей some_great_feature в наш master.

Ну если есть желание конечно :) Но хотябы просто форкнуть можно (подогнав обе репы под общую структуру папок, например).
alexandert
Отличный мод-фикс, но для меня совершенно неиграбельный ибо в секции графики отсутствует фильтрация текстур. Вот это:
;Set to 1 for a linear texture filter, or 0 to disable
TextureFilter=1

Без него игра сплошные кваждратеги (((
ЗЫ. Я пользуюсь ddraw из ГлобалМода
Fakeman
QUOTE
Исправил невозможность продажи счётчика Гейгера и стелсбоя если ими хоть раз воспользовались.
По задумке авторов если определённые вещи хоть раз использовали, то продать их потом нельзя.

А цена тоже уменьшается?
По задумке наверное авторы не хотели заморачиваться со стоимостью б/у предметов при продаже, вот и выключили возможность их продавать. мое предположение.


QUOTE
Отличный мод-фикс, но для меня совершенно неиграбельный ибо в секции графики отсутствует фильтрация текстур. Вот это:
TextureFilter=1
Без него игра сплошные квадратеги

хз какие у вас там квадратики — никогда таких их не наблюдал при разрешении более 800х600. Используйте HRPatch для смены разрешения.
alexandert
to Fakeman
Скриншот с "Хайрез" патчем:
http://s019.radikal.ru/i623/1507/38/0da970ff01f0.jpg
Пара скринов из оригинальной игры:
http://s012.radikal.ru/i319/1507/52/93e97493d8e3.jpg
http://s009.radikal.ru/i310/1507/a1/0ff3eda90af8.jpg
А вот с включеным фильтром:
http://i004.radikal.ru/1507/e3/63243da15264.jpg
http://s020.radikal.ru/i700/1507/f0/4440a79adc7b.jpg
Если Вы не наблюдаете разницы в "квадратиках" то одному из нас нужно посетить окулиста.
Fakeman
QUOTE
Если Вы не наблюдаете разницы в "квадратиках" то одному из нас нужно посетить окулиста.

Фуу, быдловатая школота...

Ты бы для начало нормально настроил Sfall & HRP.
Не ну если тебе нравится играть с замыленным изображением этих квадратиков, то это твое право. У каждого свои вкусы. :)
alexandert
QUOTE
Фуу, быдловатая школота...  Ты бы для начало нормально настроил Sfall & HRP.

Во первых мне уже тридцатник. Во вторых что можно настраивать в Sfall & HRP? В первом можно только режим 8бит и ДХ9 выбирать, ну и размер окна, а второй тупо "растягивает" картинку. Ну а "замылевают" изображение ВСЕ современные игры.

Я просто высказал пожелание. Сраться со всякой
QUOTE
быдловатой школотой
не хочу. Если есть желание садить глаза убогой графикой — пожалуйста, я вам не доктор.
Fakeman
QUOTE
что можно настраивать в Sfall & HRP?

Судя по твоим скринам нужно в sfall'e вырубить растягивание картинки, и использовать только HRP.
У меня при разрешении в игре 1024x768 и разрешении монитора как у тебя 1280x1024, картинка игры выглядит намного лучше твоего скрина с HRP, да и не замыленно так сильно как при sfall'e c TextureFilter.

Crafty
В двиге F2 есть один незначительный баг.
Может замечал такое — если зайти в локацию и побегать по картам локации, то после выхода на глобал.карту маркер игрока на мировой карте немного сдвигается по диагонали в низ, и иногда так получается что сдвигается аж за пределы круга города.
В общем это на твое усмотрение фиксить это или нет.
Drobovik
Crafty
QUOTE
Только надо там .txt расширение добавить, чтобы одним кликом открывать.
Блин, я как раз .txt в .ru поменял предполагая что может повиться и .en (не моими усилиями) :-p

Ну, я имел в виду changelog.ru.txt), а потом будет changelog.en.txt

QUOTE
Исправил невозможность продажи счётчика Гейгера и стелсбоя если ими хоть раз воспользовались.
По задумке авторов если определённые вещи хоть раз использовали, то продать их потом нельзя. Что вполне логично для, к примеру, фонарика, но для счётчика/стелсбоя спорно (и просто раздражает). При этом в F2-движке есть (а в F1 нет) кусочек кода, который должен позволить продавать использованный счётчик, но он настолько криво написан, что никогда не сработает.
Может нужна переменная для этого дела?

Я думаю нужна. Тут явно пахнет несогласием некоторых игроков по этому пункту.
Crafty
Phobos
QUOTE
А почему не сделать fork нашего репозитория?
Так я сделал, но опыта работы с гитхабом же нет и выходила какая-то хрень. Помучался (добило что не смог просмотреть изменения в своём форке с другого компа незалогинившись) и удалил нафик. Потом всё же пришлось сделать как отдельные репозитории, и это работает.
QUOTE
Так ведь проще отслеживать изменения.
Да я уже такого намудрил что и не отследить — поменял конструкции вида "ds:[0x6610B8]" на "ds:[_obj_dude]" и подобные. И переименовал процедуры в исходниках на движковые названия из IDB-базы.

Не могу ответить (да и прочитать, хорошо хоть мыло пришло) на гитхабе — тестировал визуально пока менял названия, потом ещё раз уже с помощью "git log -p" (отличная штука).

Отправлено: 15 июл 15 08:16
alexandert
QUOTE
Без него игра сплошные кваждратеги (((
ЗЫ. Я пользуюсь ddraw из ГлобалМода
В ГлобалМоде очень старая версия (2.1a?). С хайрез патчем же лучше (хотя бы ради увеличенного размера карты), а без него это 640x480 растянутые до границ экрана и фильтр поэтому нужен — размазывать квадратики.

Отправлено: 15 июл 15 08:26
Fakeman
QUOTE
А цена тоже уменьшается?
Нет.
QUOTE
В двиге F2 есть один незначительный баг.
Так и задумано, и нормально что за пределы круга сдвигается — фактически границы города на карте мира ограничены не кругом, а квадратом, в котором этот круг находится.

Отправлено: 15 июл 15 08:29
Drobovik
QUOTE
Я думаю нужна. Тут явно пахнет несогласием некоторых игроков по этому пункту.
Будет CanSellUsedGeiger.
Fakeman
QUOTE
Так и задумано, и нормально что за пределы круга сдвигается

Странная какая-то задумка, интересно что курили разработчики)))
Он же сдвигается так долеко что после выхода уже в локацию не попадаешь и приходится заходить в круг, вот о чем я.
Может по задумке маркер должен был сдвигаться в центр этого квадрата, но в коде ошибка?.
Phobos
QUOTE
Мне кажется лучше эти опции выключить по-умолчанию в ini.
arraysBehavior=1

Не согласен. Массивы в старом стиле потенциально опасны и замусоривают сохраненки. И какие многие моды их используют? Из всех тех что я видел, почти никто не использует, за исключением временных массивов (temp_array), которые данная настройка не касается.

QUOTE
Так я сделал, но опыта работы с гитхабом же нет и выходила какая-то хрень. Помучался (добило что не смог просмотреть изменения в своём форке с другого компа незалогинившись) и удалил нафик. Потом всё же пришлось сделать как отдельные репозитории, и это работает.

Ну так для этого есть сообщество, мог бы спросить. Я форки юзал, проблем вроде не было, такой же репозиторий, отличие в том что он ссылается на корневой. И помоему только с форков можно делать merge-pull request, но я не уверен.

CODE
Да я уже такого намудрил что и не отследить — поменял конструкции вида "ds:[0x6610B8]" на "ds:[_obj_dude]" и подобные. И переименовал процедуры в исходниках на движковые названия из IDB-базы.

Это ты правильно сделал, я хочу это изменение перенести в нашу версию. Но вот вопрос, каков твой дальнейший план по рефакторингу? :)

PS: филосовский вопрос, а почему бы не использовать больше С++ для работы с движком фола в sfall чем ASM? (я имею ввиду юзать структуры, полученные реверсингом, работать с нормальными массивами, полями структур и т.п. вместо смещений). И вижу что были удалены некоторые Wrapper-ы движковых функций...
Crafty
Fakeman
QUOTE
Он же сдвигается так долеко что после выхода уже в локацию не попадаешь и приходится заходить в круг, вот о чем я.
Насколько далеко? Вот здесь, если кликнуть по треугольнику, я попадаю в Дыру.

Phobos
QUOTE
Но вот вопрос, каков твой дальнейший план по рефакторингу?
Что-то поменять, что-то поправить, но конкретных планов нет :-p
QUOTE
PS: филосовский вопрос, а почему бы не использовать больше С++ для работы с движком фола в sfall чем ASM?
Так я же понимаю C[++] на простейшем уровне, а ASM уже достаточно вспомнил. Мне так проще ;)
Fakeman
QUOTE
Насколько далеко?

Поэксперементируй со small & medium радиусами кружков, с large проблем вроде как не было.
Ethereal
Может кто нибудь выложить Books.ini (можно урезанный для примера) ввиде поста? Скачивать не получается с дропбокса, да и виснет он у меня почему то...

Кроме того в mechanics_overhaul_mod долго изучал новоизменённые перки, но как перенастроить их так и не понял. С "trait" получилось, а именно с "perks" — полный облом. Можно ли с помощью Сфала редактировать перки так, что бы это было можно использовать независимо от установленных модов?
Fakeman
Держи Books.ini

Crafty, может сменишь дропбох на что-то другое, у меня от тоже подвисает да и забадал он уже со своей навязчивой регистрацией!
Ethereal
Спасибо Fakeman за помощь.)

Что же на счет перков... Меня и родной баланс в большенстве случаев устраивал. Единственное, что поднял бы немного + к навыкам, но даже этого зделать пока не получается.
Phobos
Изучаю фикс для Too Many items bug. Кто-нибудь знает способ стабильного повторения бага? Хотя бы так чтобы утилита tmib.exe стабильно выдавала что файл забагован.
ЗЫ: вроде разобрался.

@Crafty,
QUOTE
Так я же понимаю C[++] на простейшем уровне, а ASM уже достаточно вспомнил. Мне так проще ;)

Не верю что можно понимать код на ASM но не понимать Си, когда этот самый машинный код получен путем компиляции Си кода.
Ты проделал колоссальную работу по описанию всех этих структур движка. Как было бы удобно, еслиб эти структуры использовались в sfall коде... Код станет очевиден для чтения, да и сама структура движка будет понятнее простым смертным, кто не может читать Assembler сходу как ты.

Я считаю больших кусков кода на ASM в принципе не должно быть в sfall, в идеале его нужно весь заменить на С++ с использованием структур/переменных/процедур движка.

QUOTE
CONFIRMED NPCs hooked on jet becomes utterly useless — stuck with 1 AP. Jet antidote doesn't work on them. Engine issue. --FIXED

Не подскажешь, где в коде эти фиксы?

Нашел вот это, но сходу не понять, что именно они фиксят:

QUOTE
// Исправление проверки наркотической зависимости
MakeCall(0x47A644, &item_d_check_addict_hook, true);

// Исправления снятия зависимости к винту у нпс
MakeCall(0x479FC5, &item_d_take_drug_hook, true);
MakeCall(0x47A3A4, &item_wd_process_hook, false);


По поводу

QUOTE
// Мерзкий баг! Если в инвентаре сопартийца есть броня такая же как на нём одета, то при
// получении уровня он теряет КБ равный значению получаемому от этой брони
HookCall(0x495F3B, &partyMemberCopyLevelInfo_hook);

Твой фикс не лечит баг. Тут на самом деле не в уровне дело. Повторяется легче:
1) даем любому напарнику 2 одинаковых брони
2) просим надеть один из комплектов
3) просим снять броню через диалог, но внезапно(!) броня не снимается
4) просим второй раз, со второго раза снимется, но статы снизятся 2 раза. Не только класс брони, но и все остальные (DT/DR и проч.)
Проверял через f2se редактор сейвов.

QUOTE
! Исправлен баг из-за которого невозможно использовать 9 строку в диалоговом варианте выбора ответов.

Почему это расценено как баг? Просто окно диалогов вмещало лишь 8 строк с ответами. Больше похоже на фичу.

QUOTE
// Ширина текста 64, а не 80
SafeWrite8(0x475541, 64);
SafeWrite8(0x475789, 64);

Что делает этот "фикс" и почему он в Bugs.cpp ?
Crafty
Ethereal
QUOTE
Может кто нибудь выложить Books.ini (можно урезанный для примера) ввиде поста? Скачивать не получается с дропбокса, да и виснет он у меня почему то...
У Drobovik'а же в Fallout Database можно скачать. Добавлю ссылку в первый пост...

Отправлено: 19 июл 15 15:59
Fakeman
QUOTE
Crafty, может сменишь дропбох на что-то другое, у меня от тоже подвисает да и забадал он уже со своей навязчивой регистрацией!
Как-то так ;):
QUOTE
I need something:
1. Free.
2. That will work for years with zero efforts from me.
3. Has high bandwidth limit.


Отправлено: 19 июл 15 16:57
Phobos
QUOTE
Не подскажешь, где в коде эти фиксы?
item_d_check_addict_hook меняет оригинальную процедуру, которая всегда использует данные игрока, на использование данных настоящих персонажей при проверки зависимостей.
item_d_take_drug_hook снимает зависимость после использования противоядия, ну а item_wd_process_hook делает зависимость к винту вечной (до принятия противоядия).
QUOTE
Твой фикс не лечит баг. Тут на самом деле не в уровне дело. Повторяется легче:
Это описание бага "множественного снятия брони сопартийца через диалог, если у него в сумке есть такая же броня". Фикс для него в correctFidForRemovedItem_hook из Inventory.cpp.
QUOTE
Почему это расценено как баг? Просто окно диалогов вмещало лишь 8 строк с ответами. Больше похоже на фичу.
Потому что движок при расчёте поместится ли строка в окне диалога считает сразу с отступом между строками, но для самой последней строки отступ не нужен (ведь больше строк не будет). Пусть $ — отступ:
CODE
╔══════╗
║1.    ║
║$     ║
║2.    ║
║$     ║
║...   ║
║8.    ║
║$     ║
║9.    ║
╚══════╝
 $

QUOTE
Что делает этот "фикс" и почему он в Bugs.cpp ?
Перерисовываемый участок обмена равен 64 пикселя, для выводимой строки с весом вместо 64 используют 80, что в определённых ситуациях (измени в INVENTRY.MSG строку #30 на что-то вроде "Вес вещей") может привести к мусору на участке обмена.

Отправлено: 19 июл 15 19:20
Исправил вывод в окне монитора количества полученных очков опыта с учётом бонуса от взятого перка 'Прилежный ученик' после убийства врагов, кражи или случайных встреч на карте.
Исправил баг превращения сопартийцев в тыкву контейнер, ну и добавил переменную CanSellUsedGeiger для контроля возможности продажи "Счетчика Гейгера"/"Невидимки" после использования.

Для F2-версии из ddraw.ini удалил переменную WieldObjCritterFix, причина аналогична удалению BlackSkilldexFix и ко.
Phobos
QUOTE
item_d_check_addict_hook меняет оригинальную процедуру, которая всегда использует данные игрока, на использование данных настоящих персонажей при проверки зависимостей.

В оригинальной функции я вижу была работа с глобальными переменными. Если не ошибаюсь, движок проверяет есть ли зависимость по значению глобальных переменных игры.
Правильно ли я понимаю, что для отслеживания зависимостей в движке предусмотрена некая структура данных для каждого персонажа? Ты сделал так что она теперь используется всегда, тогда как раньше в некоторых местах проверялись только глобальные переменные? Но они по прежнему используются?

И кстати, в чем отличие от JetAntidoteFix?

QUOTE
item_wd_process_hook делает зависимость к винту вечной (до принятия противоядия).

А зачем? В оригинале она не вечная?

QUOTE
Это описание бага "множественного снятия брони сопартийца через диалог, если у него в сумке есть такая же броня". Фикс для него в correctFidForRemovedItem_hook из Inventory.cpp.

Может стоит перенести в Bugs.cpp?

Зачем был выпилен весь предыдущий код из PartyControl.cpp? До этого хотя бы было очевидно как все это работает и человек со стороны мог что-то поменять. Теперь остались только стены ASM кода с комментариями на русском... Понятно что могло быть хуже (запутанный ASM код, 0 комментариев), но зачем удалять то что работает?

К слову о коде, в чем отличие между
QUOTE

  xor  eax, eax
  inc  eax

И простым
QUOTE

  mov eax, 1

?
Drobovik
На половину закончил перевод ченжлога на английский.

EDIT: Все, ченжлог теперь и на инглише есть.

Crafty, качай отсюда.
Crafty
Отключил фикс тыквы, надо допиливать ;(

Отправлено: 20 июл 15 19:37
Phobos
QUOTE
...Но они по прежнему используются?
На все вопросы ответ — да ;)
QUOTE
И кстати, в чем отличие от JetAntidoteFix?
Фикс для возврата true из процедуры если использовалось противоядие, чтобы оно было удалено из инвентаря.
QUOTE
А зачем? В оригинале она не вечная?
Нет, там через GVAR создавалась видимость вечности.
QUOTE
Может стоит перенести в Bugs.cpp?
Там общая процедура с армор модом, лень разбивать.
QUOTE
Зачем был выпилен весь предыдущий код из PartyControl.cpp?
Беспредельщик же ;-p
QUOTE
К слову о коде, в чем отличие между
3 байта против 5 :-p

Отправлено: 20 июл 15 19:42
Drobovik
QUOTE
Все, ченжлог теперь и на инглише есть.
Спасибо большое :)
Добавь ещё в начало файлика благодарность себе, что-то вроде "Большое спасибо Drobovik'у за перевод на английский :)"
Crafty
Допилил и включил фикс тыквы, прицепом там ещё пару багов исправил (к примеру если сопартиец валяется без сознания и в этот момент выйти в другую зону, то в ней он уже будет стоять, но через пару секунд будет анимация падения и вставания).
Drobovik
Привел ченжлоги к более профессиональному виду.
В русской версии добавил "Список изменений:" в самое начало файла.

В английской — добавил свой ник как переводичика — Made by Crafty, English translation by Drobovik и слил вместе слово Сhangelog

Crafty, перекачай архив и обнови файлики. Сегодня сделаю перевод ченжлога для sfall1.

EDIT: Закончил и с ченжлогом для sfall1. Здесь.
Ваш ответ: