Полная Версия: (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
Fakeman
сами багов понаделают а потом жалуются)
негры/пони/рыжие_соски — был бы от этого всего толк, кроме бегающей картинки. не понимаю я этот мод.
Foxx
QUOTE
сами багов понаделают а потом жалуются)
негры/пони/рыжие_соски — был бы от этого всего толк, кроме бегающей картинки. не понимаю я этот мод.

Просто когда одной и той же мордой 20 раз играешь начинает надоедать, вот и экспериментируешь. Негры были от создателей Olymus, думал что качественно сделаны как у них в игре. Оказалось нет, в комбинезоне убежища вроде ещё ничего, но в броне сплошные чёрные пиксели.
Fakeman
Ты на себе тоже эксперименты проводишь? сколько уже живешь с одной и той же мордой, лет 20)))))

QUOTE
но в броне сплошные чёрные пиксели.

а ты что хотел выражение его черного лица увидеть когда он в броне)))
Foxx
QUOTE
а ты что хотел выражение его черного лица увидеть когда он в броне)))

Да и ещё текстуры 4К не помешали бы)))
Кстати можешь скинуть твои "ddraw.ini" к Nevada и Olympus.
Fakeman
я уже в них давно не играю, в олимпе стандартный который с игрой шел.
в неваде давно уже заменен стандартным из архива сфала.
я тебе могу просто настройки выписать которые я всегда ставлю
CODE
NumSoundBuffers=32
AnimationsAtOnceLimit=120
DisplayKarmaChanges=1
DialogueFix=1
ExtraSaveSlots=1
SpeedInterfaceCounterAnims=1
CorpseLineOfFireFix=1
BonusHtHDamageFix=1
RemoveCriticalTimelimits=1
MotionScannerFlags=4 (читерной подсветкой по шифту не пользуюсь)
SuperStimExploitFix=1
ObjCanSeeObj_ShootThru_Fix=1
DontTurnOffSneakIfYouRun=1
NPCsTryToSpendExtraAP=3 — это я не знаю вроде как не работает, но поставил 3 :)
StackEmptyWeapons=1

остальное вроде как по дефолту.
Foxx
Crafty можешь глянуть баг:
Дополнительная способность "Прилежный ученик"
Каждый уровень способности увеличивает на 5% прибавку к общей сумме очков опыта каждый раз, когда персонажу начисляется новый опыт.
Баги
В Fallout 2 из-за недоработки скриптовых макросов бывает баг сообщения: при получении опыта не боевым способом в лог выводится базовое значение опыта, то есть без надбавки, хотя реальное количество полученного опыта надбавку содержит.
Fakeman
QUOTE
Баги
В Fallout 2 из-за недоработки скриптовых макросов бывает баг сообщения: при получении опыта не боевым способом в лог выводится базовое значение опыта, то есть без надбавки

Это не баг. т.е. в самих скриптах так заложено, что на экран выводится базовое значение — это уже никак не исправить, иначе будет дублироваться сообщение.
CODE
даем игроку X опыта
give_exp_points(X)
а здесь просто надпись на экране.
display_msg("Вы получили:" + X + " единиц опыта")

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

Чето похоже Crafty опять по плану на полгода пропал :)
Последнее действие:2 апр 2016
хотя нет, в тихоря там что-то обновляет, уже 1.6.16.0 версию слепил.
CODE
! Отключена поддержка hs_inventorymove до лучших времён...

Интересно чего это значит, не будут работать скрипты с этим хуком?
вот это новость...
Foxx
QUOTE
Чето похоже Crafty опять по плану на полгода пропал :)

Ошибок в Fallout'e не осталось, вот он и пропал :)
Garvan
QUOTE
Это что за локация? бар в рэйнбоу и ты замочил там негра на входе?

Точно! И в других локациях такая же фигня была, я потом эту игру бросил и новую начал — невозможно играть стало. Но надо сказать я попеременно аж три сфала юзал в этой игре (все выяснял какой не глючит на случайныХ встречах) ,так что возможно тем и вызвал такие баги.

Fakeman
CODE
! Исправлено использование вложенных сумок в окне торговли.
! Исправлен краш при попытке открыть сумку/рюкзак в окне торговли.

Еще есть какой-то баг с сумками в лотке торговли, но не могу вспомнить, может конечно это один из этих исправленных.
Crafty
Fakeman
QUOTE
CODE
В FID существа используются все поля. ID1 определяет Suffix1, ID2 - Suffix2, ID3 - ExtSuffix.

При ID2 равном 0x1B (27 - ANIM_electrify), 0x1D (29 - ANIM_burned_to_nothing), 0x1E (30 - ANIM_electrified_to_nothing), 0x37 (55 - ANIM_electrify_sf), 0x39 (57 - ANIM_burned_to_nothing_sf), 0x3A (58 - ANIM_electrified_to_nothing_sf), 0x21 (33 - ANIM_fire_dance), 0x40 (64 - called shot interface picture) происходит изменение Индекса в LST-файл.
Индекс меняется на первое число, стоящее после строки с корнем имени файла.

Можно это изменить(хакнуть), чтобы двиг менял индекс но при условии, если такого фрм-файла нет ??? хотя бы для 0x40 (NA — called shot interface picture).
очень надо :)
хз о чём речь :-p

Отправлено: 8 мая 16 18:39
Garvan
QUOTE
Присоединяюсь к просьбе. В модах этот баг может стать критичным для прохождения- как в моем случае.
Постараюсь (эх, не забыть бы).

Отправлено: 8 мая 16 19:57
Foxx
QUOTE
Хотелось бы узнать это баг игры или нет?
Когда начинается бой, то в 1 раунде процент попадания по противнику выше, чем во 2 раунде. Проверил Fallout 1 & 2 и Fallout Nevada.
Скрины уже не доступны, впрочем я успел их увидеть раньше.

В бою неиспользованные очки действия превращаются в очки класса брони из расчёта 1 ОД = 1 КБ и это характерно для всех персонажей (но для ГГ при взятом перке "HtH Evade"|"Блок удара" и соответствующих условиях расчитывается по-другому). "Класс брони — вероятность того, что броня отразит атаку. К примеру, класс брони бандита составляет 15 единиц, а шанс попадания у рейнджера 65%. Итоговая вероятность того, что рейнджер попадёт в бандита, составляет всего 50%" ©

Процент попадания в первом раунде выше, поскольку противник не в бою и его ОД не превратились в КБ. Начиная со второго раунда неиспользованные ОД уже в деле.
Однако в F2-движке обнаружился интересный (и серьёзный) баг: изменили порядок инициализации и вместо обновления ОД конкретного персонажа в начале хода этого персонажа (так сделано в F1-движке) происходит обновление ОД для всех персонажей в начале каждого цикла боя, что даёт персонажам скрытый бонус к классу брони и как следствие уменьшает шанс попадания по ним. И это применительно и к ГГ, если у его противников значение реакции больше (они ходят раньше).

Отправлено: 8 мая 16 20:13
Fakeman
QUOTE
QUOTE
! Отключена поддержка hs_inventorymove до лучших времён...
Интересно чего это значит, не будут работать скрипты с этим хуком?
вот это новость...
Было бы из-за чего переживать :-p Вообще очень не рекомендую использовать hs_invenwield и hs_inventorymove с оригинальным sfall — они там недоделаны: первый позволит прокачивать статы собутыльникам, а второй в принципе не способен работать с сумками/рюкзаками и ещё кое-что по-мелочи.
Fakeman
QUOTE
хз о чём речь :-p

я думал ты движок досконально знаешь, как свои 5 пальцев :)
тогда введу тебя немного в курс дела, хотя оно мне уже и не надо.
CODE
0x40 (NA — called shot interface picture).

это фрм картинка(таргет) для криттеров в интерфейсе режима прицеливания.
если в critter.lst после имени криттера(FID) записано некое значение, то картинка таргета будет браться от другого криттера на который указывает это значение т.е. на индекс в lst, и вне зависимости существует ли для нашего криттера своя собственная картинка.
вот к примеру для harobe,11(игрок в робе) будет брать эти фрм файлы от hmjmps,11 (фрм костюм убежища 13), думаю понятно расписал.
CODE

Idx FID Name
0  reserv
1  hapowr,21,1
2  harobe,11,1
3  hfcmbt,11,1
4  hfjmps,11,1
5  hflthr,11,1
6  hfmaxx,11,1
7  hfmetl,11,1
8  hmbjmp,11
9  hmbmet,11
10 hmcmbt,11,1
11 hmjmps,11,1


QUOTE
Вообще очень не рекомендую использовать hs_invenwield и hs_inventorymove с оригинальным sfall — они там недоделаны

а зачем отключать, можно было бы и так оставить, пусть бы работало как есть.

Отправлено: 9 мая 16 01:10
QUOTE
Однако в F2-движке обнаружился интересный (и серьёзный) баг: изменили порядок инициализации и вместо обновления ОД конкретного персонажа в начале хода этого персонажа (так сделано в F1-движке) происходит обновление ОД для всех персонажей в начале каждого цикла боя, что даёт персонажам скрытый бонус к классу брони и как следствие уменьшает шанс попадания по ним.

Однако не понятно изменили они относительно какого движка? потому как в F1-движке так-же в 1 раунде процент попадания по противнику выше, чем во 2 раунде. Поэтому однако я подозреваю у тебя там есть некий третий движок пре-альфа первого фоллаута?))
Crafty
По случаю праздника новая версия ;)

Общие изменения для F1/F2 — версий:
* Теперь FreeWeight показывает "свободный вес у владельца-персонажа/свободный размер сумки" для открытых вложенных сумок.
! Исправлено несколько недоработок связанных с кнопками "Взять всё"/"Положить всё" (и вложенными сумками).
! Исправлено пропадание предметов в инвентаре при попытке поместить их во вложенную сумку если игрок перегружен.
+ На экране снаряжения игрока показывается "свободный вес у владельца-персонажа/свободный размер сумки" в открытой вложенной сумке.
! Исправлены используемые движком функции получения одетой брони и оружия в руках игрока если в инвентаре открыта вложенная сумка.
! Исправлен вывод в окно монитора сообщения при попадании в случайную цель если она не является персонажем и у неё есть скрипт, а в F2-версии также вызов damage_p_proc при промахах если цель не_персонаж.
* При UseScrollWheel=1 можно прокручивать окно монитора (хоть и не так эффективно как это делает HRP).
! Исправлено использование вложенных сумок в окне торговли.
! Исправлен [потенциальный] краш при попытке открыть сумку/рюкзак в окне торговли.

Изменения в F2-версии:
- Из ddraw.ini удалена переменная GainStatPerkFix (теперь эффект включения постоянный).
* Подправлен hs_inventorymove и добавлена обработка события при перетаскивании предмета во вложенную сумку.
* Теперь hs_keypress может возвращать сканкод новой клавиши, которая будет обработана движком вместо оригинальной.
! Исправлен краш при клике по пустому месту в инвентаре при курсорном использовании предмета из основного рюкзака.
! Исправлен мой баг в обработчике расчёта статов при использовании переменной DerivedStats.
- Удалена обработка переменной ModifiedIni из ddraw.ini, а функция modified_ini возвращает фальшивое значение (в качестве альтернативы можно использовать функцию get_ini_setting).
+ Добавлено изменение из sfall:
>Fixed potential undefined behavior and crashes in sfall arrays (From Vennor)
! Исправлена неправильная инициализация очков действия в начале каждого хода, что приводило к добавлению скрытого бонуса к классу брони у противников и из-за этого уменьшался шанс попадания по ним.

Отправлено: 9 мая 16 13:08
QUOTE
Однако не понятно изменили они относительно какого движка?
F1.

QUOTE
потому как в F1-движке так-же в 1 раунде процент попадания по противнику выше, чем во 2 раунде.
"Процент попадания в первом раунде выше, поскольку противник не в бою и его ОД не превратились в КБ. Начиная со второго раунда неиспользованные ОД уже в деле." ©
Начни игру в F1 за Max Stone, напади на крысу (у неё 5 ОД), шанс попадания 89%, отбеги на 5 гексов и дождись когда она подбежит к тебе использовав все свои ОД — снова 89%, отбеги на 4 — 88%, на 3 — 87%.
Начни игру в F2 за Narg, напади на муравья (тоже 5 ОД), шанс попадания 50%, отбеги на 5 гексов — 45%, на 4 — 45%, на 3 — 45%.

QUOTE
Поэтому однако я подозреваю у тебя там есть некий третий движок пре-альфа первого фоллаута?))
Да, есть ещё F1-демо-версия :-p
Fakeman
QUOTE
Начни игру в F1 за Max Stone

А теперь все ясно, и я давно не играл в F1.

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

блин... это че теперь сложность игры уменьшилась(

QUOTE
! Исправлен краш при клике по пустому месту в инвентаре при курсорном использовании предмета из основного рюкзака.

а еще оно сквозь него клацает, замечал, да? :P
Foxx
Блин, посмотреть исправления и складывается впечатление, что сумки/рюкзаки самая забагованная вещь в Fallout :)
Fakeman
Если вдруг заглянешь сюда.
Общество просит вывести функции ReadInt/WriteInt и Calloffset... из под AllowUnsafeScripting, для совместимости :)

И можно ли прикрутить для кнопкок ExtraSave свои кастомные изображения?
зы: по мне зелененькие стрелочки вписывались и смотрелись лучше.
Crafty
QUOTE
Общество просит вывести функции ReadInt/WriteInt и Calloffset... из под AllowUnsafeScripting, для совместимости :)
Сделал, но пока не могу какое-то время залить F2-версию :-p

QUOTE
И можно ли прикрутить для кнопкок ExtraSave свои кастомные изображения?
Не, да и смысл. Проще было бы использовать изображения (стрелочки) игры.

QUOTE
зы: по мне зелененькие стрелочки вписывались и смотрелись лучше.
Да ладно, объёмные круче. Или именно зелёный и жёлтый цвет стрелочек при нажатии? Сделал, посмотри в F1-версии (хотя от зелёного бы отказался и оставил серый, и жёлтый при нажатии).

Довольно давно (ну в доступной для скачивания версии это уже есть) частично исправил это:
QUOTE
Особая случайная встреча "Проход в скале" она же "Пещера в горе" — при выходе с локации оказываешься довольно далеко от нее и прямо в скале — двигаться невозможно.

Оставил sfall 3.4 (который по умолчанию активирован в папке с игрой) загрузил ближайшее сохранение — зашел на локацию, вышел — и оказался точно зеленом кружочке.

При заходе в "город" сохраняются координаты входа с мировой карты, которые будут использованы при выходе. Если "город" содержит субзоны, то при переходе между ними перезаписываются координаты входа с мировой карты на оригинальные world_pos этого "города" из data\CITY.TXT.

Из-за рамки изображения карты (wmapbox.frm) движок хитро корректирует координаты позиции "города" на мировой карте, но для маленького "города" коррекция неправильная и если в этом городе была прогулка по субзонам, то выход из города может иметь пичальку.
Сейва со случайной встречей "Проход в скале" она же "Пещера в горе" у меня не было, создавать было лень. Но был сейв из Невады с Харрельсоном (потом ещё и "Танкер в пустыне" прокнул), на них и проверял.
Fakeman
QUOTE

Не, да и смысл.
Да ладно, объёмные круче. Или именно зелёный и жёлтый цвет стрелочек при нажатии? Сделал, посмотри в F1-версии (хотя от зелёного бы отказался и оставил серый, и жёлтый при нажатии).

ты мне просто в коде ткни где это меняется, а я уже сам решу есть ли в этом смысл.
Объемные какие-то они недоразвитые) как в 90-х годах, чето аж виндовс 3.11 вспоминается)
Ethereal
Crafty Можно ли по средствам "NPC Armor" мода прикрутить отоброжение новой брони ("bos Enviro armor" и т.д.)? И вообще есть ли возможность заставить отображатся на напарниках новую броню (Боевая\Силовая броня Мод-5 и т.д.), исходя из настроек отображения самой брони, не вмешиваясь скрипты напарников?
Bitner
Уважаемый Crafty привет.
Не знаю, задавали тут этот вопрос по поводу бага анимации смерти в некрополисе после вторжения мутантов.
Реально ли его исправить?
http://i.imgur.com/xfqT174.jpg
Crafty
Ethereal
QUOTE
Можно ли по средствам "NPC Armor" мода прикрутить отоброжение новой брони ("bos Enviro armor" и т.д.)? И вообще есть ли возможность заставить отображатся на напарниках новую броню (Боевая\Силовая броня Мод-5 и т.д.), исходя из настроек отображения самой брони, не вмешиваясь скрипты напарников?
Нет (нужно наверное переписать для поддержки других пидов...), да и без специально нарисованных анимаций это была бы не слишком "честная игра" — напарники смогут использовать оружие, которое не должны использовать.

Bitner
QUOTE
Не знаю, задавали тут этот вопрос по поводу бага анимации смерти в некрополисе после вторжения мутантов.
Реально ли его исправить?
AnimationsAtOnceLimit проблему не решает?
Наткнулся в своё время на описание:
QUOTE
I know you're familiar with the 'bug' where slain towns people are frozen in their death animation (after a town is captured by super mutants) when the player first arrives at an invaded town. Could this be due to the limit on the number of concurrent animations that can be played on a map at any given time? For fallout 2, I think it's around ~30.
Поэтому перенёс AnimationsAtOnceLimit из F2 в F1-версию. Подкинь сейв (с списком что установлено).
Foxx
Crafty
QUOTE
AnimationsAtOnceLimit проблему не решает?

Не решает (хотя там сейчас их намного меньше стоит), проверил, на: F1 от 1С, патчи от teamx 1.2 & 1.3.5, NPC mod 3.5, High Resolution Patch v.4.1.8 и твой sFall 1.7.4.
http://i77.fastpic.ru/big/2016/0802/1b/c9b...6ca5dec611b.jpg
Можешь сам легко проверить, установи в файле VAULT13.GAM, в переменной NECROPOLIS_INVADED_DATE :=1;
И пробежись до Некрополя.

Crafty
QUOTE
Нет (нужно наверное переписать для поддержки других пидов...), да и без специально нарисованных анимаций это была бы не слишком "честная игра" — напарники смогут использовать оружие, которое не должны использовать.

Ethereal (из сообщений с nuclear-city), как раз хотел их мульти оружейным навыкам научить.
Ethereal
Я уже устал спорить на эту тему. Ну что с того, что Майрон может носить гранатомёт, если у него навык в нулях? Игрок сам пожалеет, что дал его Майрону. К тому же, при опции "управления напарниками", в бою можно узреть, какими навыками те владеют и уж исходя из этого подбирать оружие. Никогда не поверю, что человек умеющий стрелять из винтовки не справится с пистолетом или ПП! А вот прописывать напарникам одинаковое владение всем оружием — вот это читерство уже. Так, что ограничители по анимации считаю ненужной глупостью.
Legend
QUOTE
Ну что с того, что Майрон может носить гранатомёт, если у него навык в нулях?

50% же.
Ethereal
QUOTE
50% же.


Ставим -100% и наслаждаемся критическими промахами. :) К тому же 50% — это не серьёзно.
Моддинг он такой... допилить можно всё, были бы идеи и желание.
Ну, пачти всё. :D
Crafty
Bitner, Foxx
QUOTE
Реально ли его исправить?
Да, исправил ;)

При входе в Некрополис срабатывает скрипт hotelmap.int, в котором есть такой код:
CODE
procedure start
begin
if (script_action == map_enter_p_proc) then begin
.....
 if ((global_var(NECROPOLIS_INVADED) == 1) and (metarule(METARULE_IS_LOADGAME, 0) == 0)) then begin
  kill_critter_type(16777230, 1);
  kill_critter_type(16777521, 1);
  kill_critter_type(16777322, 1);
  kill_critter_type(16777232, 1);
Если верить BIS_help.html второй параметр у kill_critter_type — death_frame (идентификатор изображения останков), но это ошибка. Правильнее назвать его death_type и он может быть равен 0, 1 или любому другому значению. Если равен 0 — то изображения останков не будет, трупик будет удалён с карты. При любом значении отличном от 0 и 1 для изображения останков будет использоваться ANIM_fall_back_sf.
При 1 и уровне насилия в настройках игры равном "Максимум крови" для каждого персонажа будет браться типа случайная анимация смерти из движковой таблицы с проверкой есть ли такая анимация для заданного персонажа. Если анимации нет или уовень насилия не равен "Максимуму крови", то используется ANIM_fall_back, а должна использоваться "single-frame death animations (the last frame of knockdown and death animations)". Вот для гулей нет ANIM_fall_back, поэтому при слабом уровне насилия все они умирают стоя. Но и при "Максимум крови" некоторые всё равно умирают стоя, потому что в движковой таблице указана анимация, которая тоже не поддерживается гулями (если не вру — ANIM_charred_body_sf) и используется ANIM_fall_back, которой как уже сказано нет. Сейчас вместо ANIM_fall_back будет ANIM_fall_back_sf.
Foxx
Crafty
QUOTE
Да, исправил ;)

Сейчас проверил, действительно работает. Спасибо.

А можно как-нибудь вернуть рамочку вокруг персонажа, при выборе внешности. Мне кажется сейчас выглядит как то недоделано.
http://i79.fastpic.ru/big/2016/0803/9f/f1a...6c84b3e7d9f.jpg
Fakeman
Grafty, можешь глянуть еще небольшой баг, если во время боя выполнить анимацию объекта командой anim() то при окончании анимации объекта игра как бы зависает — бесконечно крутятся часики. (баг присутствует именно в боевом режиме).
Для справки.
CODE
anim(ObjectPtr who, int anim, int direction)
воспроизводит заданную анимацию для заданного объекта в заданном направлении


Баг можно протестировать на любой двери повесив скрипт с таким содержанием
CODE
procedure damage_p_proc begin
      anim(self_obj, 0, 0);
end

и во время боя ударить кулаком по двери. :)

QUOTE
Если верить BIS_help.html второй параметр у kill_critter_type

Тут как бы есть примечание: Команда НЕ анимирует смерть криттера и НЕ обновляет экран.
Bitner
QUOTE
Да, исправил ;)

Круть. Спасибо большое. В моде Restoration Mod вторжение не только в некрополис но и в другие города и фикс работает там также.
Не знаю по теме ли вопрос. В F2, например, при отравлении появлялась табличка с красными буквами над журналом событий (там, где оповещении о новом уровне). В F1 ничего не появляется. Это только в F2 реализовали?
Ещё вопрос про бартер F1. В F2 новый взятый предмет появляется первым в списке что удобнее. Однако в F1 новый предмет появляется последним. Там невозможно ничего с этим сделать?
Paptimus
А есть лимит на дальность исполнения приказов? Если кликнуть через всю карту герой не побежит.

Fakeman
В HRP есть path finding на 40000 нодов, что этого не хватает?
Foxx
Bitner
QUOTE
Ещё вопрос про бартер F1. В F2 новый взятый предмет появляется первым в списке что удобнее. Однако в F1 новый предмет появляется последним. Там невозможно ничего с этим сделать?

Это можно сделать через "High Resolution Patch". В файле "f1_res.ini" в переменной "INV_ADD_ITEMS_AT_TOP" поставить 1.
Bitner
Не знал что в f2_res.ini столько всего вкусного есть. Думал там только настройки с разрешением. Спасибо.
Crafty
Foxx
QUOTE
А можно как-нибудь вернуть рамочку вокруг персонажа, при выборе внешности. Мне кажется сейчас выглядит как то недоделано.
Нет. Вопрос привычки :-p
Была задумка добавлять рамочку используя art\intrface\WMSCREEN.FRM, но в F1 её нет, а только для F2 было лень делать (и без того есть что ещё доделать в хиромоде как в F2, так в F1-версиях), да и слишком она "толстая"...

Fakeman
QUOTE
если во время боя выполнить анимацию объекта командой anim() то при окончании анимации объекта игра как бы зависает — бесконечно крутятся часики. (баг присутствует именно в боевом режиме).
Озадачил меня ;)
Исходя из всего, баг именно в том, что в функции anim забыли сделать проверку на бой. В остальных аналогичных функциях (к примеру, reg_anim_func, reg_anim_animate и т.д.) есть проверка и если бой идёт, то функции не срабатывают — в бою может работать только движковая анимация, а скриптовой фигушки.

Но кое-чего подправил и в принципе можно теперь anim использовать (пока только если AnimationsAtOnceLimit отключён)... В отладочной версии (всяко нужно ещё изучить этот вопрос подробнее), в ней же включил вызов damage_p_proc при промахах если цель не_персонаж (для удобства тестирования). И не стоит использовать anim больше одного раза, хотя вот так прокатывает:
CODE
anim(self_obj, 0, 0);
anim(source_obj, 21, 0);

Ну и о всяких сопутствующих деяниях забывать не стоит, вроде:
CODE
call destroy_p_proc();
destroy_object(self_obj);

QUOTE
Тут как бы есть примечание: Команда НЕ анимирует смерть криттера и НЕ обновляет экран.
Поэтому и должна использоваться "single-frame death animations (the last frame of knockdown and death animations)".

Bitner
QUOTE
В F2, например, при отравлении появлялась табличка с красными буквами над журналом событий (там, где оповещении о новом уровне). В F1 ничего не появляется. Это только в F2 реализовали?
В F1 тоже есть, может плохо травят :-p
Fakeman
QUOTE
Исходя из всего, баг именно в том, что в функции anim забыли сделать проверку на бой. В остальных аналогичных функциях (к примеру, reg_anim_func, reg_anim_animate и т.д.) есть проверка и если бой идёт, то функции не срабатывают — в бою может работать только движковая анимация, а скриптовой фигушки.
Но кое-чего подправил и в принципе можно теперь anim использовать (пока только если AnimationsAtOnceLimit отключён)...

reg_anim_animate — это цепочки с анимациями, и понятно что в бою такие анимации ни к чему.
А почему это завязано на AnimationsAtOnceLimit?
Кстати вспомнил, я когда сидел скриптил с анимацией у меня получалось так, что после анимации часики убирались, только я уже не помню как я это делал, и это не совсем было стабильно.
Crafty
QUOTE
reg_anim_animate — это цепочки с анимациями, и понятно что в бою такие анимации ни к чему.
Анимация из таких цепочек и складывается.
CODE
anim(self_obj, 0, 0);
абсолютно (в случае не_персонажа) идентичен
CODE
reg_anim_begin();                           // reg_anim_func(REG_ANIM_BEGIN, RB_UNRESERVED);
reg_anim_animate(self_obj, 0, 0);
reg_anim_end();                             // reg_anim_func(REG_ANIM_END, 0);

QUOTE
А почему это завязано на AnimationsAtOnceLimit?
Используется движковая область памяти, а если AnimationsAtOnceLimit включён, то он переопределяет движковую область памяти на другую область (большего размера). Соответственно, нужно подправить моё исправление, чтобы использовалась другая область.
Ethereal
;Choose the damage formula used to calculate combat damage.
;Don't set this to anything other than 0 unless another mod you're using explicitly tells you to!
;0 — Fallout default
;1 — Glovz's Damage Fix
;2 — Glovz's Damage Fix with Damage Multiplier tweak
;5 — Haenlomal's Yet Another Ammo Mod.

А можно конкретней, чем эти варианты отличаются? И... есть предложение вынести настройки формулы урона в "ini" файл.

Кстати, при моде управления напарниками, убитые ими гекко не дают шкур. Кроме того, если апнутся в бою (получив опыт с квеста), то напарники после него то же апаются, получая, очки навыков и здоровья согласно своим статам. Не проверял, но может ещё и перек.
А вообще, можно прописать партийцем переки?
Fakeman
QUOTE
А можно конкретней, чем эти варианты отличаются? И... есть предложение вынести настройки формулы урона в "ini" файл.

Формулой расчетов.
вот примерный код формулы.
CODE
opCSubCJmp:
mov edx,0x1; // set the new armorDR value to 1
mov ebp,edx; // set the temp value
opASubCJmp:
mov edx,ebx; // set temp value
imul edx,ebp; // multiply the ND value by the armorDR value
cmp edx,0x64; // compare the temp value to 100
jl opASubDJmp; // if the temp value is less than 100 then goto opASubDJmp
mov ebp,0x0; // set and store the quotient value to 0
beginDivEJmp:
add ebp,0x1; // add 1 to the quotient value
sub edx,0x64; // subtract 100 from the temp value
cmp edx,0x64; // compare the remainder value to 100
jge beginDivEJmp; // if the remainder value is greater or equal to 100 then goto beginDivEJmp
cmp edx,0x33; // compare the remainder value to 51
jl aCheckDivEJmp; // if the remainder value is less than 51 goto aCheckDivEJmp
add ebp,0x1; // add 1 to the quotient value
aCheckDivEJmp:
sub ebx,ebp; // subtract the damage resisted value from the ND value
jmp cJmp; // goto cJmp
opASubDJmp:
cmp edx,0x33; // compare the remainder value to 51
jl cJmp; // if the remainder value is less than 51 goto cJmp
sub ebx,0x1; // subtract 1 from the ND value
jmp cJmp; // goto cJmp

Какую из из этих настроек ты хочешь вынести в Ini? :)
Crafty
Fakeman
QUOTE
А почему это завязано на AnimationsAtOnceLimit?
Отвязал, плюс изменил способ на более правильный и безопасный, но у него есть ограничения — anim(...) можно использовать только один раз и не с source_obj.

Ethereal
QUOTE
А можно конкретней, чем эти варианты отличаются? И... есть предложение вынести настройки формулы урона в "ini" файл.
Варианты Glovz'а обсуждаются здесь, YAAM Haenlomal'а описан в его YAAM_ReadMe.rtf. В ини вынести желания нет (в силу сложности реализации), но можешь сделать свой скриптовый вариант с помощью hs_combatdamage. Сам я этим вопросом ещё не занимался.

QUOTE
Кстати, при моде управления напарниками, убитые ими гекко не дают шкур. Кроме того, если апнутся в бою (получив опыт с квеста), то напарники после него то же апаются, получая, очки навыков и здоровья согласно своим статам.
Ty, гляну.
По шкуркам гекко так и задумано даже без контроля — если убивает ГГ с перком, то шкурку дают. ZCGECKO.SSL:
CODE
.....
/* This procedure gets called only on the death of this NPC. Special things like
  incrementing the death count for reputation purposes and Enemy Counters are placed
  in here. */
procedure destroy_p_proc begin
  variable item;

  //if ((obj_pid(self_obj) == PID_GECKO_SMALL) or (obj_pid(self_obj) == PID_TOUGH_GECKO_SMALL)) then
  //     item := create_object(PID_GECKO_PELT,0,0);
  //else
  //     item := create_object(PID_GOLDEN_GECKO_PELT,0,0);

  if (has_trait(TRAIT_PERK,dude_obj,PERK_gecko_skinning_perk)) then begin
      item := create_object(PID_GOLDEN_GECKO_PELT,0,0);
      add_obj_to_inven(self_obj,item);
  end
end
.....
Конечно можно обойти...

QUOTE
Не проверял, но может ещё и перек.
А вообще, можно прописать партийцем переки?
Эк ты заумно перки назвал ;) Прописать можно, у них есть предназначенная для этого таблица. С помощью critter_add_trait(...). Но это будет иметь смысл только с используемыми в бою перками и включённым контролем собутыльников.
Fakeman
QUOTE
но у него есть ограничения — anim(...) можно использовать только один раз
Спасибо.
А один раз это как — один раз в бою, или один раз до след загрузки, или один раз вообще?)
Ethereal
Crafty
QUOTE
Конечно можно обойти...


Очень хотелось бы. А то мне с двадцати гекконов две-три шкуры достаётся. :D

Crafty
QUOTE
Но это будет иметь смысл только с используемыми в бою перками и включённым контролем собутыльников.


Ну да. Наблюдательность при контроле необходима. Ну и по одному индивидуальному на брата. Контроль всё равно не нужен только при боях на ринге.

Кстати, неплохо было бы ввести визуальные отличия интерфейса напарников от ГГ. Значёк какой в углу, или цветовую гамму немного иную. Синий счётчик ОД у напарников например. Просто играю с контролем без блокировки сохранений\загрузок и иногда сложно определить кем управляешь. Приходится разное оружие носить.
Bitner
Привет Crafty
Ты не изучал природу такого бага в f2 связанного с локацией "хайвеймен без топлива" на последних 2 рядах клеток мировой карты?
Смысл в том, что когда у хайвеймена заканчивается топливо, то не появляется сама локация. Любопытно, но только на двух последних рядах. На 3 ряде уже этого бага нет.
http://i.imgur.com/ViYVd2f.jpg
Сейв
https://www.dropbox.com/s/s8fgquxrjf0qw8u/SLOT01.rar?dl=0
Ethereal
У меня тут получилось клонировать оружие у Маркуса, когда пытался снять с него огнемёт в бою и заставить бить руками. Это уже баг. Сначала пытался оружие переключить, но ногами он бить не умеет. Тогда решил перекинуть в другой слот оружие. Открыл инвентарь и перекинул - он опять с огнемётом оказался! Открываю инвентарь опять — огнемёт стоит промеж слотов. Снимаю его и ещё один остаётся в правом слоте. Снимаю опять — теперь Маркус с двумя огнемётами в инвентаре. О_о
Попробуйте повторить эту комбинацию с Гаус Миниганом!

P.S. Чем дальше, тем страньше.
Fakeman
QUOTE
У меня тут получилось клонировать оружие у Маркуса, когда пытался снять с него огнемёт в бою и заставить бить руками. Это уже баг.

Управление напарниками в бою это один большой баг сознательно кем-то был введен. Это дело бы пофиксить )
Crafty
Fakeman
QUOTE
А один раз это как — один раз в бою, или один раз до след загрузки, или один раз вообще?)
Один раз при каждом срабатывании damage_p_proc и (уточнение) для "ObjectPtr who" не должна быть уже зарегистрирована движковая анимация. Поэтому и не получится использовать с source_obj или даже self_obj, если для последнего движок добавил анимацию (например это персонаж, для которого движок добавил анимацию ANIM_dodge_anim после анимации удара/выстрела для source_obj).
При попадании в деревянную дверь можно было бы проигрывать анимацию (если бы она существовала) отлетания щепок, а для металлической дрожания/прогибания. И при уничтожении проигрывать анимацию разрушения, ну вроде твоего варианта для деревянной двери с Nuclear City.
Я вот так баловался с locked дверью (diPenDor и diRomDor):
CODE
if (roll_vs_skill(source_obj, 3, 0) == 3) then begin
 call destroy_p_proc();
 destroy_object(self_obj);
end
else if (obj_is_locked(self_obj)) then begin
      obj_unlock(self_obj);
      anim(self_obj, 0, 0);
     end
     else begin
      obj_lock(self_obj);
      anim(self_obj, 0, 1);
     end

Ethereal
QUOTE
QUOTE
По шкуркам гекко так и задумано даже без контроля — если убивает ГГ с перком, то шкурку дают.
Очень хотелось бы. А то мне с двадцати гекконов две-три шкуры достаётся. :D
Твоя правда — неважно кто убивает, главное чтобы у ГГ был взят перк. Исправил, и "Наблюдательность" от ГГ при контроле тоже теперь наследуется (и в F1-версии), поскольку вполне уместный и безобидный перк.
QUOTE
Кстати, неплохо было бы ввести визуальные отличия интерфейса напарников от ГГ. Значёк какой в углу, или цветовую гамму немного иную. Синий счётчик ОД у напарников например. Просто играю с контролем без блокировки сохранений\загрузок и иногда сложно определить кем управляешь. Приходится разное оружие носить.
Посмотрю, что можно будет сделать. Пока через экран персонажа смотри ("C"), ОД не тратятся, а если хиромод включён, так и тушка будет.
QUOTE
Это уже баг.
Это хз, подходящего сейва у меня нет.

Bitner
QUOTE
На 3 ряде уже этого бага нет.
Забавно, погляжу. Хотя там скрипт может такой быть (RNDDSRT). Сама машина без топлива появилась в районе Арройо.
Ethereal
Crafty
CODE
Это хз, подходящего сейва у меня нет.


У меня ещё раз получилось клонировать оружие, по описанной выше системе. А сейвы мои всё равно ни у кого не пойдут, ибо добавил в игру груду разнопланового шмотья, которого ни у кого нет.

QUOTE
Твоя правда — неважно кто убивает, главное чтобы у ГГ был взят перк. Исправил, и "Наблюдательность" от ГГ при контроле тоже теперь наследуется (и в F1-версии), поскольку вполне уместный и безобидный перк.


Можно было бы ещё собакам и Горису, "бонус движения" второго уровня добавить, для баланса. Причём независимо от ГГ. А то рукопашники стрелкам сильно проигрывают в полезности.
Bitner
QUOTE
Забавно, погляжу. Хотя там скрипт может такой быть (RNDDSRT). Сама машина без топлива появилась в районе Арройо.

В арройо все нормально. Машина без топлива не появляется только на предпоследнем и последнем ряде на мировой карте. Может лимит какой? Все же 4 локации 13, 15, военная база и нкр в одном ряде.
Fakeman
QUOTE
Один раз при каждом срабатывании damage_p_proc
и (уточнение) для "ObjectPtr who" не должна быть уже зарегистрирована движковая анимация.

А почему именно из обработчика damage_p_proc а если аним делать из другого обработчика, как с этим там дела, так же?
и уточнение что-то не понял > не должна быть уже зарегистрирована ???
Я правда еще не тестил как оно теперь работает после твоих махинаций, руки пока не добрались.

А с explosion(int where, int elevation, int damage) — произвести взрыв.
можно такую же операцию проделать?.
Ethereal
Кстати, ещё одна деталь, без "мода управления" карма не двигается ни в какую сторону, когда напарники убивают врагов. С управлением — вся карма идёт ГГ. Я понимаю зачем это сделано, но теперь набить 1000+ кармы, не заходя в города — раз плюнуть. Предлагаю, по средствам sfall-а, заблокировать всю плюсовую карму в случайных встречах, что бы кучу скриптов не переделывать, а минусовую оставить, дабы не было резона караваны грабить. Или заблокировать получение плюсовой кармы, когда управляешь напарником.
Fakeman
Во я наконец таки вспомнил нужную вещь которую надо пофиксить, это заблочить возможность менять уровень сложности в уже начатой игре.


QUOTE
Или заблокировать получение плюсовой кармы, когда управляешь напарником.

дельное предложение!
Ваш ответ: