Полная Версия: (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
QUOTE (Fakeman)
GVAR 491 GVAR_MODOC_SHITTY_DEATH — для каких целей она обрабатывается.
Чтобы воспроизвести озвучку смерти (https://yadi.sk/i/U86ZQt8hvKAHQ) во время взрыва в туалете Модока.
QUOTE (Fakeman)
У тебя в Changelogе не все исправления и добавления написаны. Не хватает.
Исправление obj_can_see_obj и obj_can_hear_obj
Исправление неправильной инициализации очков действия в начале каждого хода.
Эти я точно видел))
Crafty
QUOTE (Fakeman)
Вопрос, можно ли увеличить скорость внутри-игрового времени в игре, без увеличения скорости анимации и п.р. или на этих тиках в движке завязано все-и-вся ?
Речь об этом? Если правильно улавливаю смысл, то увеличивать через переменную скорость "течения" времени? Это возможно, но с побочным эффектом (хотя это нормально) — все timed_event_p_proc тоже будут работать быстрее (к примеру, Вик чаще болтает флоатами).

QUOTE (Fakeman)
И почини пути Шейдеров — не работают после правки путей, видать не находит путь master_patches=data
Ага, ty ;) Не те проверки поставил и до master_patches дело даже не доходило.

QUOTE (Fakeman)
это что движковая гвара? — для каких целей она обрабатывается.
Foxx нашёл причину и решение (с помощью правки enddeath.txt) крашей в Неваде после смерти ГГ.
Сама гвара после смерти ГГ в Модоке из-за взрыва туалета используется для проигрывания конкретного финала и для этого он должен быть определён в enddeath.txt, а в Невадовском его нет.

QUOTE (Fakeman)
какие такие sound files, такие разве есть?
Не вникал...

QUOTE (Fakeman)
Не в курсе для чего эти???
QUOTE
QUOTE
UseFileSystemOverride=0, в Olympus включена, а в других модах нет. Каково её назначение?
"Нипанятная" хрень, не изучал, при беглом взгляде — вместо движковых функций работающих с файлами использует функции винды. Опять же при беглом взгляде не советую включать если включён хиромод (позже исправлю это в хиромоде как и планировалось).

AlwaysReloadMsgs — по коду убивает проверку загружен ли файл c сообщениями для скрипта в память (В F2 файлы загружаются один раз на карту, а потом обрабатываются из памяти ©), таким образом постоянно перезагружая содержимое файла при каждом обращении к нему. Полагаю что было сделано для отладки нужного msg-файла без перезагрузки игры после его изменения.
А вообще почекай форум nma по ключевым словам, правда иногда сложновато найти нужную инфу.

QUOTE (Fakeman)
у тебя кстати их нет в конфиге.
Есть, намедни как раз стало интересно все ли переменные, что обрабатываются dll'кой, есть в ini. Вот этих нет:
QUOTE
MainMenuCreditsOffsetX
MainMenuCreditsOffsetY
MainMenuOffsetX
MainMenuOffsetY
Test_ForceFloats
Fakeman
QUOTE (Crafty)
Если правильно улавливаю смысл, то увеличивать через переменную скорость "течения" времени? Это возможно, но с побочным эффектом (хотя это нормально) — все timed_event_p_proc тоже будут работать быстрее

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

И еще я могу там в коде использовать регистр edx в нем не храниться полезных данных?
CODE
jz   notCombat
shl  eax, 1                               // eax = восприятие * 2
notCombat:

я попробовал на *3, и что-то многовато) думаю надо множить на ~2.5
Crafty
QUOTE (Fakeman)
Сколько не пытался так, и не увидел и не понял в чем конкретно заключается твой фикс, они как бегали на расстояние ВС х 2 х 2.5 = гексов через стенки так и продолжают.
Так не настолько изменяет механику, что сразу видно. Вот потому и попробуй hs_withinperception с оригинальным аналогом (расскоменти отладочный display_msg, а "return result" закомментирй или измени на "return original") и CanSeeAndHearFix=1.
Я, кстати, в obj_can_hear_obj добавлю принудительную установку слепоты перед вызовом is_within_perception_ с восстановлением после. А то всё равно у меня пригорает от названия и результата, если source зрячий.

QUOTE (Fakeman)
Можешь на словах описать как должны стоять НПЦ, кто на кого должен смотреть, через стену или нет, чтоб хотя бы на живом примере увидеть это.
Ставишь ГГ и двух врагов с одной team_num — врага (target1) который смотрит на ГГ, за ним второго (target2) и он смотрит на target1. Между ними Wall без LightThru и расстояние между врагами равно восприятию target2 умноженному на 2 и плюс ещё пару гексов (если у target2 восприятие равно 10, то 10*2+2=22). Стреляешь в target1 и смотришь на реакцию target2 при разном значении CanSeeAndHearFix. Ну или в Реддинге к королеве ванаминго сходи.

QUOTE (Fakeman)
У тебя в Changelogе не все исправления и добавления написаны. Не хватает.
Забываю, иногда не вижу смысла, а чаще не могу подобрать короткую формулировку и чтобы было понятно. Ну и лень конечно :-p

QUOTE (Fakeman)
Исправление сдвига положения курсора ГГ на глобальной карте, при выходе из локации.
Не до конца доделано — можно портануться в маленькую локацию с несколькими зонами, походить там и выйдя на глобальную всё равно словить неправильную позицию курсора. Не проверял, теория.

QUOTE (Fakeman)
Что-то там со скриптовой анимацией Amin в бою.
Штука прикольная, но откровенно говоря бесполезная...

QUOTE (Fakeman)
Исправление минусовых очков SPECIAL при создании персонажа.
Нужно доделать из-за set_stat_max/set_pc_stat_max. Опять же, как его описать, при том что в обычной игре нельзя добиться минусовых очков.

QUOTE (Fakeman)
Кстати вот это зачем в ТRACE поместил, вроде нормальный баг исправляет.
// Исправление вызова damage_p_proc при промахах если цель не_персонаж
QUOTE
#ifndef TRACE
Наоборот, в релизной версии исправляет, а в отладочной нет — для какой-то отладки парой страниц назад.

QUOTE (Fakeman)
К этой бы тоже переменную замутил. Вроде не сложно.
// Исправление видимости предмета только в активной руке игрока для critter_inven_obj
Нет смысла, только загрузит игрока. Скриптеру же сейчас проще напрямую узнавать предметы в руках через:
CODE
call_offset_r1(0x471B70, ObjectPtr who); // inven_right_hand_
call_offset_r1(0x471BBC, ObjectPtr who); // inven_left_hand_

QUOTE (Fakeman)
Кстати combat_is_starting_p_proc очень даже пригодился мне.
Так крутая штука на самом деле. Если нормально скрипты окружающим сделать. ГГ тыкнул на бой (случайно или не очень), а окружающие нпс если ГГ в их радиусе видимости/cлышимости могут карму/репутацию понижать, что-то говорить, убегать или сами атаковать. Или шериф какой может арестовать и в тюрьму посадить, за дерзость ;)

QUOTE (Fakeman)
это что сфалл головы PNG формата поддерживает?!!!
или что он такое делает с этими PNG файлами.
Мопед не мой :-p

QUOTE (Fakeman)
это ты о какой переменной — нет вроде такой.
Ну добавлю что-то вроде TimeScale.

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

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

QUOTE (Fakeman)
И еще я могу там в коде использовать регистр edx в нем не храниться полезных данных?
Можешь иногда.

QUOTE (Fakeman)
я попробовал на *3, и что-то многовато) думаю надо множить на ~2.5
CODE
jz   notCombat
shr  eax, 1
lea  eax, [eax+ebp*2]
notCombat:

или

  if combat_is_initialized then distance := perception * 2.5;
Fakeman
QUOTE
Ставишь ГГ и двух врагов с одной team_num — врага...Стреляешь в target1 и смотришь на реакцию target2 при разном значении CanSeeAndHearFix.

Ну я так и делал и никакой разницы не увидел!
вот даже записал Тест
Все поставил как ты написал, нпц в чер.кожанках вс=5, у синего вс=7
когда стреляю верхний в кожанке бежит.
и кстати вон та "баба в кожанке" у нее тоже вс=5 и почему тот мужик который стоит к нам задом(вернее боком, но даже если его четко задом повернуть к гг) реагирует на бой, а она стоит, между ГГ и ними 12+ гексов почему так?

CODE
shr  eax, 1
lea  eax, [eax+ebp*2]

Да ты просто гений ассемблера)
я то пересылал в edx потом сдвигал в право, и прибавлял.

QUOTE
QUOTE (Fakeman)
Что-то там со скриптовой анимацией Amin в бою.
Штука прикольная, но откровенно говоря бесполезная...

Мне кажется я тебя зря тогда дергал по этому поводу, так как сфал вроде как (не тестировал) может воспроизводить анимацию во время боя. :P

QUOTE
Foxx нашёл причину и решение (с помощью правки enddeath.txt)

да этот файл странный какой-то, то что там описано о его формате параметров никак не реагирует — грубо говоря он своей жизнью живет.
Crafty
QUOTE (Fakeman)
Ну я так и делал и никакой разницы не увидел!
вот даже записал Тест
Все поставил как ты написал, нпц в чер.кожанках вс=5, у синего вс=7
когда стреляю верхний в кожанке бежит.
и кстати вон та "баба в кожанке" у нее тоже вс=5 и почему тот мужик который стоит к нам задом(вернее боком, но даже если его четко задом повернуть к гг) реагирует на бой, а она стоит, между ГГ и ними 12+ гексов почему так?
Есть же hs_withinperception.ssl, расширь отладочные сообщения, добавь дополнительные проверки и увидишь что и как.
К примеру, добавь проверку боя, проверку на пиды конкретных персонажей или чтобы выводились сообщения только для персонажей в радиусе 50 гексов:
CODE
if combat_is_initialized and ((call_offset_r2(0x48BBD4, dude_obj, source) <= 50) or (call_offset_r2(0x48BBD4, dude_obj, target) <= 50)) then
display_msg(obj_name(source)+":"+perception+"->"+obj_name(target)+":"+call_offset_r2(0x48BBD4, target, source));

QUOTE (Fakeman)
да этот файл странный какой-то, то что там описано о его формате параметров никак не реагирует — грубо говоря он своей жизнью живет.
Всё с ним в порядке, смерть от GVAR 491 — особый случай и параметры игнорируются.
Fakeman
QUOTE
Всё с ним в порядке, смерть от GVAR 491 — особый случай и параметры игнорируются.

Я то понял, что с 491 игнорятся параметры, но я обнулял эту гвару пробовал добавлять новые строчки с другими гварами и 0 реакции на них.
Не очень понятно как движок работает с данными этого файла.

QUOTE
Есть же hs_withinperception.ssl,

что ж придется)
Crafty
QUOTE (Fakeman)
Не очень понятно как движок работает с данными этого файла.
При загрузке игры создаётся массив с данными файла enddeath.txt в виде структур. При смерти ГГ этот массив обрабатывается со всеми проверками — определена ли gvar и >= ли она значению value, проверяются, если определены, worldAreaKnown и worldAreaNotKnown, а потом проверка уровня. Если удачно, то структуре ставится флажок использования, а значение % шанса добавляется к счётчику (назовём его maxChance, перед обработкой массива он равен 0).
После обработки всего массива кидается кубик (random(0, maxChance)) и результат используется для выбора структуры с флажком использования.

К примеру после обработки с флажком использования остались только 5 структур, которые соответствуют:
QUOTE
-1, 0, -1, -1, 0, 20, nar_4
-1, 0, -1, -1, 0, 20, nar_5
-1, 0, -1, -1, 0, 20, nar_6
-1, 0, -1, -1, 0, 20, nar_dth1
-1, 0, -1, -1, 0, 20, nar_dth2
maxChance равен 100 (20+20+20+20+20), а результат кубика допустим 67. В результате будет использован nar_dth1.
Foxx
QUOTE (Crafty)
maxChance равен 100 (20+20+20+20+20), а результат кубика допустим 67. В результате будет использован nar_dth1.
А maxChance в сумме должен обязательно равняться 100 или без разницы?
Fakeman
Ясно-понятно, но "заставка" смертей бывает, что и не появляется и довольно часто, это типа бросок кубика попал на 0% ?)

QUOTE
А maxChance в сумме должен обязательно равняться 100 или без разницы?

нет это сумма всех %
CODE
а значение % шанса добавляется к счётчику, назовём его maxChance

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

по hs_withinperception, я могу поменять эти функции на скриптовые, или есть какие-то особенности?
CODE
call_offset_r2(0x48BBD4, target, source) //obj_dist_(target, source)  на tile_distance_objs
call_offset_r0(0x42E3F4) then begin // is_pc_sneak_working  на using_skill(dude_obj,SKILL_SNEAK)

И что проверяет вот этот call, flag Sneak ?
call_offset_r1(0x42E2F8, 0) // is_pc_flag_(Sneak_)


QUOTE (Cafty)
Нет смысла, только загрузит игрока. Скриптеру же сейчас проще напрямую узнавать предметы в руках через:CODE
call_offset_r1(0x471B70, ObjectPtr who); // inven_right_hand_
call_offset_r1(0x471BBC, ObjectPtr who); // inven_left_hand_

Это же небезопасные функции ;p
Crafty
Усложним задачку :-p
К примеру после обработки с флажком использования остались только 8 структур, которые соответствуют:
QUOTE
-1, 0, -1, -1, 0, 20, nar_4
-1, 0, -1, -1, 0, 20, nar_5
-1, 0, -1, -1, 0, 20, nar_6
-1, 0, -1, -1, 0, 20, nar_dth1
-1, 0, -1, -1, 0, 20, nar_dth2
-1, 0, -1, 16, 0, 40, nar_dth3
-1, 0, -1, 16, 0, 40, nar_dth4
-1, 0, -1, 16, 0, 40, nar_dth5
Чему равен maxChance и какой файл будет проигрываться если бросок кубика равен 133?

QUOTE
obj_dist_(target, source)  на tile_distance_objs
obj_dist_, в отличии от tile_distance_objs, уменьшает на 1 расстояние если у target установлен MultiHex и ещё на -1 если у source тоже установлен MultiHex.

QUOTE
is_pc_sneak_working  на using_skill(dude_obj,SKILL_SNEAK)
using_skill(dude_obj,SKILL_SNEAK) это тоже самое что и is_pc_flag_(Sneak_) (не хотел тратить время на поиск скриптовых аналогов когда делал hs_withinperception.ssl, было проще через call_offset_*). Но это не то же самое что is_pc_sneak_working_.
Включённая скрытность не означает что она работает. Где-то было описание, но я не найду. В F1 скрытность сделана так — нажимаешь 1 и она включается, при этом идёт проверка на скилл (аналог roll_vs_skill) и результат заносится в переменную, которую возвращает is_pc_sneak_working_ и используется в is_within_perception_ (а в F2 ещё в том же roll_vs_skill при проверке на воровство, добавляя +30 к воровству если скрытность работает). После чего, пока включена скрытность, каждую минуту будет происходить проверка на рабочее состояние. В F2 посложнее — проверка через минуту если предыдущий результат >= ROLL_SUCCESS, в противном случае там зависимость от скилла — чем выше скилл, тем чаще будет следующая проверка при неудаче в последней проверке (если скилл <= 80, то через минуту, а при скилле > 250 через 10 секунд).
Давно баловался и делал чтобы индикатор скрытности менял цвет с зелёного на красный и наоборот при рабочем/нерабочем состоянии скрытности. Но больно читерно и можно эксплоитить, потому что нет штрафа на включение/выключение скрытности.

PS. Описание using_skill в BIS_help неверное — using_skill(dude_obj, SKILL_SNEAK) и только так, любой другой who или skill всегда вернёт false/0. Также использование в скриптах roll_vs_skill(dude_obj, SKILL_SNEAK, 0) лишено смысла, потому как может не соответствовать текущему [не]рабочему состоянию скрытности используемому движком. Кстати, как оказалось, скриптовый аналог is_pc_sneak_working_ в sfall добавили в версии 3.5 — sneak_success (но он не очень правильный...).
Fakeman
QUOTE
Чему равен maxChance и какой файл будет проигрываться если бросок кубика равен 133?

maxChance=220
nar_dth3
CODE

-1, 0, -1, -1, 0, 20, nar_4            //0(1)-20
-1, 0, -1, -1, 0, 20, nar_5            //21-40
-1, 0, -1, -1, 0, 20, nar_6            //41-60
-1, 0, -1, -1, 0, 20, nar_dth1        //61-80
-1, 0, -1, -1, 0, 20, nar_dth2        //81-100
-1, 0, -1, 16, 0, 40, nar_dth3        //101-140
-1, 0, -1, 16, 0, 40, nar_dth4        //141-180
-1, 0, -1, 16, 0, 40, nar_dth5        //...220

Ну что я правильно понял?)
Crafty
QUOTE (Fakeman)
Ну что я правильно понял?)
Ага ;)
Fakeman
Тогда почему не всегда появляется картинка со смертью?

Честно говоря реализация у этого .txt не очень, потому как получается что нельзя сделать еще одну специальную "смерть" как от 491 гвары с определенными условиями, вернее она будет но рандомно.

Ладно, замути нам фишку.
Я на гитхабе видел предложение для сфала, чтобы была возможность узнать какие патроны заряжены в оружие находящиеся в активной руке не заходя в инвентарь, выводить инфу можно в инф.окно по клику бинокля на ГГ.
полезно для случаев когда в руках есть два одинаковых ствола с разными патронами.
Crafty
QUOTE (Fakeman)
Тогда почему не всегда появляется картинка со смертью?
Хз, к тому же не помню у себя такого, а изучать (пустяковый же недостаток, если он действительно есть) — только время терять :-p

QUOTE (Fakeman)
Ладно, замути нам фишку.
Там вроде разговор шёл о выводе типа патронов в кнопку активного предмета, где картинка с оружием (кому охота тыкать биноклем в ГГ?). Есть это в списке на будущее, но времени нет.
Foxx
Crafty, я так понял скрипты типа gl*.int и hs_*.int — нельзя запаковывать к примеру в patch001.dat?
Fakeman
Нет. Сфалл неумеет копашится а архивах.
В олимпе кстати их случайно запаковали, и если лежали скрипты в дата и в пач.дат разные версии то каким-то странным образом это начинало глючить, мне их тогда приходилось вырезать из олимповского patch.dat.

QUOTE
Там вроде разговор шёл о выводе типа патронов в кнопку активного предмета, где картинка с оружием (кому охота тыкать биноклем в ГГ?

Не стои засорять лишней информацией картинку с оружием — там все органично реализованно :)
Кому надо тот тыкнет — жизнь заставит.
Можно для бинокля придумать ноткей)
Foxx
QUOTE (Fakeman)
Нет. Сфалл неумеет копашится а архивах.
Спасибо. Но это относится только к скриптам или sFall еще с какими-нибудь данными работает?

Просто хотел попробовать файлы RP в patch.dat засунуть, но побаиваюсь))
Fakeman
Все что относится к сфалу — не надо паковать.
Рсх картинки тоже.
РП паковать в ратн.дат не работоспособная идея, онли в мастер.дат пакуй.
Foxx
QUOTE (Fakeman)
Все что относится к сфалу — не надо паковать. Рсх картинки тоже.
Знать бы еще, что к нему относится — знаю только шейдеры и скрипты))
А sFall скрипты должны обязательно называться gl_****, hs_**** или могут писаться слитно gl****, hs**** (без _ )

Кстати PCX-картинки я паковал и они нормально себя ведут.
Fakeman
gl**** Добавление тут нижнего подчеркивания дает человеку понять что это скрипт точно относится к сфаллу, есть скрипты которые начинаются с gl но не относящиеся к нему, и такие обычно состоят из имени не больше 8 букв.(dos имена)
hs_name.int — их вообще нельзя переименовывать.
Crafty
QUOTE (Foxx)
я так понял скрипты типа gl*.int и hs_*.int — нельзя запаковывать к примеру в patch001.dat?
Нельзя, для поиска используются системные (виндовые) функции вместо движковых и поэтому содержимое .dat-файлов не учитывается. Нужно будет переписать это дело... Готово :)

QUOTE (Foxx)
QUOTE (Fakeman)
Все что относится к сфалу — не надо паковать.
Знать бы еще, что к нему относится — знаю только шейдеры и скрипты))
gl*.int и hs_*.int скрипты в scripts\, avi-мувики в art\cuts\, mp3-wma-wav файлы для проигрывания звуков, всё в shaders\ и art\stex\, добавленные говорящие бошки в art\heads\.

QUOTE (Fakeman)
Рсх картинки тоже.
Их можно, для загрузки используются движковые функции.

QUOTE (Fakeman)
РП паковать в ратн.дат не работоспособная идея, онли в мастер.дат пакуй.
После этого (нужно ещё в ченжлоге отразить факт изменения цепочки каталогов/dat-файлов) не вижу препятствий для использования правильного patch###.dat, конечно будет нужен sfall2 ;)

QUOTE (Fakeman)
есть скрипты которые начинаются с gl но не относящиеся к нему, и такие обычно состоят из имени не больше 8 букв.(dos имена)
А какие не относятся и начинаются с gl? Это фейл всяко. Решил и эту проблему.
Fakeman
QUOTE
не вижу препятствий для использования правильного patch###.dat

patch.dat они ж имеют приоритет перед data папкой, поэтому некоторые моды к рп будут не правильно работать.
Crafty
QUOTE (Fakeman)
patch.dat они ж имеют приоритет перед data папкой, поэтому некоторые моды к рп будут не правильно работать.
Ты пропустил момент, что теперь цепочка каталогов/dat-файлов вместо оригинального:
CODE
patch###.dat -> master_patches -> critter_dat -> master_dat
выглядит так:
CODE
master_patches -> patch###.dat -> critter_dat -> master_dat
Foxx
QUOTE (Crafty)
avi-мувики в art\cuts\, art\stex\, добавленные говорящие бошки в art\heads\.
Это относится если только в скриптах типа gl*.int и hs_*.int они прописаны? Так как в Неваде я все это паковал и оно работает, даже добавленные неговорящие бошки.
А, что за папка STEX, ни разу не встечал?

QUOTE (Crafty)
конечно будет нужен sfall2 ;)
Я на стандартный забил, когда твоя версия только появилась. В последних версиях там в основном твои исправления — в 3.7.4 добавили возможность изменения цепочки каталогов)
Fakeman
Stex -shader texture.
Avi-format таких в неваде и нету
Mp3 музыка есть в олимпе (1 штука)
Еще ini файлы есть как пользовательские так и стандартные.

А вот про головы я непонял, как это их нельзя паковать, есть какие-то не стандартные? Чуть раньше задавал вопрос про heads png, но я так понял по коду что сфалл конвертирует фрм в пнг и делает что-то там с палитрой — это наверное работает когда включена опция Head32-bit, но что-то я какого-либо улучшения графикидля голов не замечаю.
Foxx
QUOTE
Avi-format таких в неваде и нету

Их по моему нигде нету. О надо попробовать стандартные ролики в HD-авишки переделать))
Fakeman
Ну да, я сам вот только что узнал , что можно ави использовать))))
Ты попробуй в неваде удалить ролик mve а в место него avi подсунуть, только не стартовые ролики, попробуй с роликом со входом убежища 8.
Еще помнишь ты удалял кучу wav вот если удалить не их а асм?) я читал что сфалл если находит другой формат то воспроизводит его.

По хорошему для сфалла не хватает хорошего мануала по его возможностям работы с ресурсами. Авторы его забыли написать. :)
Foxx
QUOTE (Fakeman)
попробуй с роликом со входом убежища 8
Не сработало. Может там нужны какие-нибудь требования к AVI :(

Crafty наверное знает секрет и нам расскажет)))

QUOTE
Еще помнишь ты удалял кучу wav вот если удалить не их а асм?)

Не прокатила фишка, в колонках тишина))
Fakeman
Ну значит это для роликов которые непосредственно указываются функциями в скриптах.
Попробуй еще со звуками и музыкой в формате wav/mp3/wma

Отправлено: 11 окт 16 15:43
QUOTE
Не сработало. Может там нужны какие-нибудь требования к AVI :(

Во, пробуй)
CODE
>In dx9 mode, avi movies will be used in preference to .mve's if they exist

А для звука надо вот эту фигню включить. только файл LST не удаляй.
CODE
;Set to 1 to automatically search for alternative formats when fallout tries to play an acm
AllowDShowSound=0


To Crafty
вот откуда он берет файлы для всплывающих флоатеров, и какой у них формат имени должен быть?
CODE

if (GetPrivateProfileIntA("Sound", "AllowSoundForFloats", 0, ini)) {
 HookCall(0x42B7C7, &combatai_msg_hook);
 HookCall(0x42B849, &ai_print_msg_hook);
}
static void __declspec(naked) ai_print_msg_hook() {
__asm {
 pushad
 cmp  edx, _target_str
 jne  attacker
 lea  eax, targetSnd
 jmp  end
attacker:
 lea  eax, attackerSnd
end:
 mov  ebx, [eax]
 test bl, bl
 jz   skip
 call gsound_play_sfx_file_
skip:
 popad
 jmp  text_object_create_
}
}
//Yes, I did leave this in on purpose. Will be of use to anyone trying to add in the sound effects
if (GetPrivateProfileIntA("Sound", "Test_ForceFloats", 0, ini)) {
 SafeWrite8(0x42B772, 0xEB);

сделали какие-то возможности добавления звуковых эффектов, а ни черта про них не написали. *facepalm*

QUOTE (Foxx)
в 3.7.4 добавили возможность изменения цепочки каталогов)
поразительно, какой-то шпион сливает им инфу)
Foxx
QUOTE
>In dx9 mode, avi movies will be used in preference to .mve's if they exist
Если в sFall включить dx9 mode, то они воспроизводятся — в отдельном окне + сразу ошибка и вылет: http://i83.fastpic.ru/big/2016/1011/de/71a...1d465f1c2de.jpg
Пробовал и с HiRes и без него, в окне, на полный экран, при стандартном разрешении, прописывал в ddraw.ini. Результат тот же самый.

QUOTE
А для звука надо вот эту фигню включить AllowDShowSound=0
Я с начала с ней и пробовал, потом без неё, переносил wav/mp3 в папку DATA. Все равно не работает.

Похоже эти функции для разработчиков sFall, а не для обычных пользователей))
Fakeman
QUOTE
Похоже эти функции для разработчиков sFall, а не для обычных пользователей

не, похоже просто не работает, так как там написано что:
CODE
;This does not effect the play_sfall_sound and stop_sfall_sound script functions

попробуй на оригинальном версии так 3.6 (до изменение путей)
может надо не удалять файлы, а просто подменить другим в ДАТА и проверить изменится звук или нет.
по коду там звуковой файл воспроизводится средствами виндовоза типа в фоновом режиме.

QUOTE
Если в sFall включить dx9 mode, то они воспроизводятся — в отдельном окне

понятно — без полезная фишка.
а может это у тебя так, винда то семарка, надо на хп попробовать.
Foxx
Забил на это дело. Пусть крутые мододелы разбираются)))
Fakeman
Ты хотел сказать программеры?))) пусть ошибки фиксят, в ХП так же вылет.
а было бы здорово если бы ави проигрывались не в окне!
Foxx
QUOTE (Fakeman)
Ты хотел сказать программеры?)))
Не, имел ввиду именно мододелов — которые захотят реализовать данные фичи у себя в модах. Пусть они разбираются или узнают у программеров (какие форматы нужны и как их сжимать, куда файлы запихивать и т.д.). Может эти "приблуды" работают, просто у меня кривые руки и я не могу их реализовать))

Хотел поискать, что-нибудь на GitHub — но там, черт ногу сломит.
Fakeman
QUOTE
Хотел поискать, что-нибудь на GitHub — но там черт ногу сломит.
гитхаб это не поисковик)))) это же для программаторов))
Phobos
А по какому принципу работает новый параметр TimeScale? Я так понимаю он меняет скорость прироста игрового таймера в тиках (т.е. скрипты которые зависят от проверок времени не сломаются по идее)?

А можно у вас попросить последнюю версию базы для IDA Pro? :)
Fakeman
Phobos, сделай для Sfall Script Editor поддержку чтобы скрипт открывался через контекстное меню видовс, а то редактор не запускается через такой способ. Люди очень жалуются)

QUOTE (Phobos)
А по какому принципу работает новый параметр TimeScale? Я так понимаю он меняет скорость прироста игрового таймера в тиках (т.е. скрипты которые зависят от проверок времени не сломаются по идее)?

По идее все тики так и остались.
CODE
ну вот в чем и вопрос, хотел чтобы время шло быстрее а все тики остались такими-же.
Crafty: Так и будет.

Интересно как это отразится на времени, т.е. физически ограничение составляет 13 лет с копейками, а при TimeScale=x2 оно будет уже составлять 26 лет?

Еще этот TimeScale введет небольшой бардак в механику игры основанную на скриптах — вот допустим в скрипте указано, что каждую минуту ГГ должен получать какой-то урон(рад) от радиации, то при TimeScale=x2 получается, что он уже будет получать его каждые 2 минуты игрового времени.
CODE
valid range: 1..100

при 100 это на сколько прирост быстрее будет?)

CODE
Добавлена переменная UsePartySkills при использовании умений ... всегда использовать сопартийца с наивысшим уровнем умения (которое не обязательно должно быть самым высоким из всех умений этого сопартийца).

Может тогда сделать порог в 25%, чтобы если у сопартийца скилл ниже порогового ур. то они бы не реагировали — а то ведь если у ГГ скилл 5%, а у сопартийца 10% то тот ломанется место гг))
или чтобы разница в скилах между гг и нпц составляла более 10-15%

Кстати а как насчет догмита она тоже будет взламывать/разминировать у нее скиллы по 22-27% ? ))))))
Phobos
Fakeman, а где все эти люди?) Лучше всего на гитхабе ишью создавать.

Исправил. Еще сделал так что теперь есть только одна копия редактора, все при открытии дополнительных файлов (например через проводник) будут появляться вкладки в уже открытой проге.
Fakeman
Phobos, Люди — ну я во множественном числе))
А где скомпилированная версия? — везде в ссылках старая.
В какой версии студии собран проект? 2010 не открывает.
Phobos
Fakeman,
Я собирал раньше в Sharp Develop. Сегодня использовал VS 2013.

Собранная версия.:
Fakeman
Phobos, а ясно у меня в студии не установлен С#
А почему в файл sslSyntaxRules.xshd нельзя добавить свою секцию с ключевыми словами, <KeyWords> ... </KeyWords> добавляешь возникает ошибка, там какой-то хардкод или я что-то делаю не так?
И не правильно сделана подсветка синтаксиса у
#define <макрос> эта строка с макросом не должна полностью подсвечиваться  — иначе код в макросе не подсвечивается.
Crafty
QUOTE (Foxx)
QUOTE (Crafty)
avi-мувики в art\cuts\, art\stex\, добавленные говорящие бошки в art\heads\.
Это относится если только в скриптах типа gl*.int и hs_*.int они прописаны?
Это к скриптам не относится.
Чтобы вместо mve-мувиков проигрывались avi-мувики их имена должны быть такие же как определены в переменных Movie#, а переменная Mode в секции [Graphics] не должна быть равна 0.

QUOTE (Fakeman)
А вот про головы я непонял, как это их нельзя паковать, есть какие-то не стандартные? Чуть раньше задавал вопрос про heads png, но я так понял по коду что сфалл конвертирует фрм в пнг и делает что-то там с палитрой — это наверное работает когда включена опция Head32-bit, но что-то я какого-либо улучшения графикидля голов не замечаю.
Use32BitHeadGraphics=1 и остальные требования по граф.режиму, в art\heads\говорящая_бошка\[0-numFrames].png (numFrames — number of frames per direction, подробнее в "FRM Image File Format").

QUOTE (Fakeman)
вот откуда он берет файлы для всплывающих флоатеров, и какой у них формат имени должен быть?
Напомни потом, гляну.

QUOTE (Foxx)
Я с начала с ней и пробовал, потом без неё, переносил wav/mp3 в папку DATA. Все равно не работает.
AllowDShowSound=1, mp3/wma/wav в том же каталоге, что и оригинальный acm.

QUOTE (Fakeman)
не, похоже просто не работает, так как там написано что:
CODE
;This does not effect the play_sfall_sound and stop_sfall_sound script functions
В play_sfall_sound можно указать свой путь к конкретному файлу и AllowDShowSound не будет играть роли.

QUOTE (Phobos)
А по какому принципу работает новый параметр TimeScale? Я так понимаю он меняет скорость прироста игрового таймера в тиках (т.е. скрипты которые зависят от проверок времени не сломаются по идее)?
Верно, однако визуально ломаются скриптовые сценки проигрывания анимации (если она завязана на тики реального времени). Отличный пример — встреча с Фрэнком, после расстрела семьи фермера они застывают в "неудобных" позах.
В принципе исправляется добавлением дополнительной проверки на проигрывание анимации в следующей сценке. ECBDYGRD.SSL:
CODE
procedure doSequence begin
.....
  end else if (sequence == 8) then begin
     kill_critter(farmer, ANIM_chunks_of_flesh_sf);
     .....
     float_msg(self_obj, mstr(108), FLOAT_MSG_NORMAL);
     sequence += 1;
     add_timer_event(self_obj, game_ticks(3), TIMER_SEQUENCE);
  end else if (sequence == 9) then begin
на
CODE
procedure doSequence begin
.....
  end else if (sequence == 8) then begin
    if (anim_busy(guard1) or anim_busy(guard2) or anim_busy(farmer) or anim_busy(wife) or anim_busy(child)) == false then begin
     kill_critter(farmer, ANIM_chunks_of_flesh_sf);
     .....
     float_msg(self_obj, mstr(108), FLOAT_MSG_NORMAL);
     sequence += 1;
    end
    add_timer_event(self_obj, game_ticks(1), TIMER_SEQUENCE);
  end else if (sequence == 9) then begin
В общем масло маслянное.

QUOTE (Fakeman)
Еще этот TimeScale введет небольшой бардак в механику игры основанную на скриптах — вот допустим в скрипте указано, что каждую минуту ГГ должен получать какой-то урон(рад) от радиации, то при TimeScale=x2 получается, что он уже будет получать его каждые 2 минуты игрового времени.
Нет, как ГГ получал урон каждую минуту игрового времени, так и будет получать.

QUOTE (Fakeman)
Кстати а как насчет догмита она тоже будет взламывать/разминировать у нее скиллы по 22-27% ? ))))))
Дело говоришь :)
Fakeman
Все эти сторонние форматы для проигрывания имеют один минус, громкость их звучания независит от настроек внутри игровых регуляторов, т.е. громкость не регулируется)
Воиспроизвести музыку главного меню в мп3 формате мне так и не удалось.
Crafty
QUOTE (Fakeman)
Воиспроизвести музыку главного меню в мп3 формате мне так и не удалось.
У меня начинает играть, через секунду обрывается.
Foxx
QUOTE (Crafty)
У меня начинает играть, через секунду обрывается.
У меня точно также. Пробовал разные степени сжатия MP3, моно, стерео, VBR, CBR, битрейт — итог один, не хочет работать. Ну и фиг с ним.
Fakeman
а в какую вы папку клали mp3 — у меня тишина.

QUOTE
Нет, как ГГ получал урон каждую минуту игрового времени, так и будет получать.

Каким это таким способом?)
А как время действия/зависимость наркоты тоже также осталось или увеличивается?
Все никак рука не дотянется протестировать этот Shit-Time :)
-
Во протестировал, теперь ясно ты просто увеличил скорость тикам) выше 10 ставить смысла нет ибо все начинает глючить — мобы дергаются при хождении, все начинают быстро разговаривать, это по сути тоже самое, что и SpeedMultiInitial только без анимации.
Foxx
QUOTE (Fakeman)
а в какую вы папку клали mp3 — у меня тишина.
Я кидал в data/sound/music
Брал любой MP3 и переименовывал в 06rokot. При начале новой игры в Неваде происходит рывок этой песни и обрывается.
QUOTE (Fakeman)
А как время действия/зависимость наркоты тоже также осталось или увеличивается?
Всё вроде сохранено.
Проверял так (просьба не смеяться):
Установил TimeScale=10.
Сделал специальный прошник-наркотик с временем действия: через 30 минут облучение и еще через 30 минут облучение.
И мотал время в Pip-Boy — действие от наркоты такое же, как и при TimeScale=1

Только у NPC над бошками стали очень часто выскакивать всплывающие сообщения)) Но Crafty об этом предупреждал.
Fakeman
QUOTE
Проверял так (просьба не смеяться):

Хаха нуб... не ну все правильно проверил).

QUOTE
Только у NPC над бошками стали очень часто выскакивать всплывающие сообщения)) Но Crafty об этом предупреждал.

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

QUOTE (Crafty)
Так и будет.
Foxx
А ещё он писал:
QUOTE (Crafty)
Это возможно, но с побочным эффектом (хотя это нормально) — все timed_event_p_proc тоже будут работать быстрее (к примеру, Вик чаще болтает флоатами).
Только тут уже все NPC болтают чаще))
Ваш ответ: