Foxx
8 October 2016 | 01:10
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
8 October 2016 | 02:05
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
8 October 2016 | 02:33
QUOTE (Crafty) |
Если правильно улавливаю смысл, то увеличивать через переменную скорость "течения" времени? Это возможно, но с побочным эффектом (хотя это нормально) все timed_event_p_proc тоже будут работать быстрее |
это ты о какой переменной нет вроде такой.
есть WorldMapTimeMod но только для глобала.
ну я вот в чем и вопрос, хотел чтобы время шло быстрее а все тики остались такими-же.
да и отбой я тут вспомнил, что в игре есть таймеры для уст.ловушек, сейчас как раз одна игровая минута равна примерно реальной, и если это дело увеличить то получится бардак.
И еще я могу там в коде использовать регистр edx в нем не храниться полезных данных?
CODE |
jz notCombat shl eax, 1 // eax = восприятие * 2 notCombat: |
я попробовал на *3, и что-то многовато) думаю надо множить на ~2.5
Crafty
8 October 2016 | 04:12
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 (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
8 October 2016 | 17:05
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
8 October 2016 | 23:24
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
9 October 2016 | 00:30
QUOTE |
Всё с ним в порядке, смерть от GVAR 491 особый случай и параметры игнорируются. |
Я то понял, что с 491 игнорятся параметры, но я обнулял эту гвару пробовал добавлять новые строчки с другими гварами и 0 реакции на них.
Не очень понятно как движок работает с данными этого файла.
QUOTE |
Есть же hs_withinperception.ssl, |
что ж придется)
Crafty
9 October 2016 | 16:57
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
9 October 2016 | 17:11
QUOTE (Crafty) |
maxChance равен 100 (20+20+20+20+20), а результат кубика допустим 67. В результате будет использован nar_dth1. |
А maxChance в сумме должен обязательно равняться 100 или без разницы?
Fakeman
9 October 2016 | 17:58
Ясно-понятно, но "заставка" смертей бывает, что и не появляется и довольно часто, это типа бросок кубика попал на 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
9 October 2016 | 22:23
Усложним задачку :-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
9 October 2016 | 22:38
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
9 October 2016 | 22:44
QUOTE (Fakeman) |
Ну что я правильно понял?) |
Ага ;)
Fakeman
9 October 2016 | 22:58
Тогда почему не всегда появляется картинка со смертью?
Честно говоря реализация у этого .txt не очень, потому как получается что нельзя сделать еще одну специальную "смерть" как от 491 гвары с определенными условиями, вернее она будет но рандомно.
Ладно, замути нам фишку.
Я на гитхабе видел предложение для сфала, чтобы была возможность узнать какие патроны заряжены в оружие находящиеся в активной руке не заходя в инвентарь, выводить инфу можно в инф.окно по клику бинокля на ГГ.
полезно для случаев когда в руках есть два одинаковых ствола с разными патронами.
Crafty
10 October 2016 | 02:52
QUOTE (Fakeman) |
Тогда почему не всегда появляется картинка со смертью? |
Хз, к тому же не помню у себя такого, а изучать (пустяковый же недостаток, если он действительно есть) только время терять :-p
QUOTE (Fakeman) |
Ладно, замути нам фишку. |
Там вроде разговор шёл о выводе типа патронов в кнопку активного предмета, где картинка с оружием (кому охота тыкать биноклем в ГГ?). Есть это в списке на будущее, но времени нет.
Foxx
10 October 2016 | 14:01
Crafty, я так понял скрипты типа gl*.int и hs_*.int нельзя запаковывать к примеру в patch001.dat?
Fakeman
10 October 2016 | 15:11
Нет. Сфалл неумеет копашится а архивах.
В олимпе кстати их случайно запаковали, и если лежали скрипты в дата и в пач.дат разные версии то каким-то странным образом это начинало глючить, мне их тогда приходилось вырезать из олимповского patch.dat.
QUOTE |
Там вроде разговор шёл о выводе типа патронов в кнопку активного предмета, где картинка с оружием (кому охота тыкать биноклем в ГГ? |
Не стои засорять лишней информацией картинку с оружием там все органично реализованно :)
Кому надо тот тыкнет жизнь заставит.
Можно для бинокля придумать ноткей)
Foxx
10 October 2016 | 15:23
QUOTE (Fakeman) |
Нет. Сфалл неумеет копашится а архивах. |
Спасибо. Но это относится только к скриптам или sFall еще с какими-нибудь данными работает?
Просто хотел попробовать файлы RP в patch.dat засунуть, но побаиваюсь))
Fakeman
10 October 2016 | 15:26
Все что относится к сфалу не надо паковать.
Рсх картинки тоже.
РП паковать в ратн.дат не работоспособная идея, онли в мастер.дат пакуй.
Foxx
10 October 2016 | 15:36
QUOTE (Fakeman) |
Все что относится к сфалу не надо паковать. Рсх картинки тоже. |
Знать бы еще, что к нему относится знаю только шейдеры и скрипты))
А sFall скрипты должны обязательно называться gl_****, hs_**** или могут писаться слитно gl****, hs**** (без _ )
Кстати PCX-картинки я паковал и они нормально себя ведут.
Fakeman
10 October 2016 | 16:11
gl**** Добавление тут нижнего подчеркивания дает человеку понять что это скрипт точно относится к сфаллу, есть скрипты которые начинаются с gl но не относящиеся к нему, и такие обычно состоят из имени не больше 8 букв.(dos имена)
hs_name.int их вообще нельзя переименовывать.
Crafty
11 October 2016 | 00:17
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
11 October 2016 | 01:02
QUOTE |
не вижу препятствий для использования правильного patch###.dat |
patch.dat они ж имеют приоритет перед data папкой, поэтому некоторые моды к рп будут не правильно работать.
Crafty
11 October 2016 | 01:14
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
11 October 2016 | 10:38
QUOTE (Crafty) |
avi-мувики в art\cuts\, art\stex\, добавленные говорящие бошки в art\heads\. |
Это относится если только в скриптах типа gl*.int и hs_*.int они прописаны? Так как в Неваде я все это паковал и оно работает, даже добавленные неговорящие бошки.
А, что за папка STEX, ни разу не встечал?
QUOTE (Crafty) |
конечно будет нужен sfall2 ;) |
Я на стандартный забил, когда твоя версия только появилась. В последних версиях там в основном твои исправления в 3.7.4 добавили возможность изменения цепочки каталогов)
Fakeman
11 October 2016 | 13:50
Stex -shader texture.
Avi-format таких в неваде и нету
Mp3 музыка есть в олимпе (1 штука)
Еще ini файлы есть как пользовательские так и стандартные.
А вот про головы я непонял, как это их нельзя паковать, есть какие-то не стандартные? Чуть раньше задавал вопрос про heads png, но я так понял по коду что сфалл конвертирует фрм в пнг и делает что-то там с палитрой это наверное работает когда включена опция Head32-bit, но что-то я какого-либо улучшения графикидля голов не замечаю.
Foxx
11 October 2016 | 14:03
QUOTE |
Avi-format таких в неваде и нету |
Их по моему нигде нету. О надо попробовать стандартные ролики в HD-авишки переделать))
Fakeman
11 October 2016 | 14:13
Ну да, я сам вот только что узнал , что можно ави использовать))))
Ты попробуй в неваде удалить ролик mve а в место него avi подсунуть, только не стартовые ролики, попробуй с роликом со входом убежища 8.
Еще помнишь ты удалял кучу wav вот если удалить не их а асм?) я читал что сфалл если находит другой формат то воспроизводит его.
По хорошему для сфалла не хватает хорошего мануала по его возможностям работы с ресурсами. Авторы его забыли написать. :)
Foxx
11 October 2016 | 14:27
QUOTE (Fakeman) |
попробуй с роликом со входом убежища 8 |
Не сработало. Может там нужны какие-нибудь требования к AVI :(
Crafty наверное знает секрет и нам расскажет)))
QUOTE |
Еще помнишь ты удалял кучу wav вот если удалить не их а асм?) |
Не прокатила фишка, в колонках тишина))
Fakeman
11 October 2016 | 14:32
Ну значит это для роликов которые непосредственно указываются функциями в скриптах.
Попробуй еще со звуками и музыкой в формате 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
11 October 2016 | 18:13
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
11 October 2016 | 18:39
QUOTE |
Похоже эти функции для разработчиков sFall, а не для обычных пользователей |
не, похоже просто не работает, так как там написано что:
CODE |
;This does not effect the play_sfall_sound and stop_sfall_sound script functions |
попробуй на оригинальном версии так 3.6 (до изменение путей)
может надо не удалять файлы, а просто подменить другим в ДАТА и проверить изменится звук или нет.
по коду там звуковой файл воспроизводится средствами виндовоза типа в фоновом режиме.
QUOTE |
Если в sFall включить dx9 mode, то они воспроизводятся в отдельном окне |
понятно без полезная фишка.
а может это у тебя так, винда то семарка, надо на хп попробовать.
Foxx
11 October 2016 | 19:12
Забил на это дело. Пусть крутые мододелы разбираются)))
Fakeman
11 October 2016 | 19:20
Ты хотел сказать программеры?))) пусть ошибки фиксят, в ХП так же вылет.
а было бы здорово если бы ави проигрывались не в окне!
Foxx
11 October 2016 | 21:22
QUOTE (Fakeman) |
Ты хотел сказать программеры?))) |
Не, имел ввиду именно мододелов которые захотят реализовать данные фичи у себя в модах. Пусть они разбираются или узнают у программеров (какие форматы нужны и как их сжимать, куда файлы запихивать и т.д.). Может эти "приблуды" работают, просто у меня кривые руки и я не могу их реализовать))
Хотел поискать, что-нибудь на GitHub но там, черт ногу сломит.
Fakeman
11 October 2016 | 21:45
QUOTE |
Хотел поискать, что-нибудь на GitHub но там черт ногу сломит. |
гитхаб это не поисковик)))) это же для программаторов))
Phobos
13 October 2016 | 07:07
А по какому принципу работает новый параметр TimeScale? Я так понимаю он меняет скорость прироста игрового таймера в тиках (т.е. скрипты которые зависят от проверок времени не сломаются по идее)?
А можно у вас попросить последнюю версию базы для IDA Pro? :)
Fakeman
13 October 2016 | 15:44
Phobos, сделай для Sfall Script Editor поддержку чтобы скрипт открывался через контекстное меню видовс, а то редактор не запускается через такой способ. Люди очень жалуются)
QUOTE (Phobos) |
А по какому принципу работает новый параметр TimeScale? Я так понимаю он меняет скорость прироста игрового таймера в тиках (т.е. скрипты которые зависят от проверок времени не сломаются по идее)? |
По идее все тики так и остались.
CODE |
ну вот в чем и вопрос, хотел чтобы время шло быстрее а все тики остались такими-же. Crafty: Так и будет. |
Интересно как это отразится на времени, т.е. физически ограничение составляет 13 лет с копейками, а при TimeScale=x2 оно будет уже составлять 26 лет?
Еще этот TimeScale введет небольшой бардак в механику игры основанную на скриптах вот допустим в скрипте указано, что каждую минуту ГГ должен получать какой-то урон(рад) от радиации, то при TimeScale=x2 получается, что он уже будет получать его каждые 2 минуты игрового времени.
при 100 это на сколько прирост быстрее будет?)
CODE |
Добавлена переменная UsePartySkills при использовании умений ... всегда использовать сопартийца с наивысшим уровнем умения (которое не обязательно должно быть самым высоким из всех умений этого сопартийца). |
Может тогда сделать порог в 25%, чтобы если у сопартийца скилл ниже порогового ур. то они бы не реагировали а то ведь если у ГГ скилл 5%, а у сопартийца 10% то тот ломанется место гг))
или чтобы разница в скилах между гг и нпц составляла более 10-15%
Кстати а как насчет догмита она тоже будет взламывать/разминировать у нее скиллы по 22-27% ? ))))))
Phobos
14 October 2016 | 07:05
Fakeman, а где все эти люди?) Лучше всего на
гитхабе ишью создавать.
Исправил. Еще сделал так что теперь есть только одна копия редактора, все при открытии дополнительных файлов (например через проводник) будут появляться вкладки в уже открытой проге.
Fakeman
14 October 2016 | 14:58
Phobos, Люди ну я во множественном числе))
А где скомпилированная версия? везде в ссылках старая.
В какой версии студии собран проект? 2010 не открывает.
Phobos
14 October 2016 | 19:44
Fakeman,
Я собирал раньше в Sharp Develop. Сегодня использовал VS 2013.
Собранная версия.:
Fakeman
14 October 2016 | 21:00
Phobos, а ясно у меня в студии не установлен С#
А почему в файл sslSyntaxRules.xshd нельзя добавить свою секцию с ключевыми словами, <KeyWords> ... </KeyWords> добавляешь возникает ошибка, там какой-то хардкод или я что-то делаю не так?
И не правильно сделана подсветка синтаксиса у
#define <макрос> эта строка с макросом не должна полностью подсвечиваться иначе код в макросе не подсвечивается.
Crafty
18 October 2016 | 00:18
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
18 October 2016 | 14:56
Все эти сторонние форматы для проигрывания имеют один минус, громкость их звучания независит от настроек внутри игровых регуляторов, т.е. громкость не регулируется)
Воиспроизвести музыку главного меню в мп3 формате мне так и не удалось.
Crafty
18 October 2016 | 18:52
QUOTE (Fakeman) |
Воиспроизвести музыку главного меню в мп3 формате мне так и не удалось. |
У меня начинает играть, через секунду обрывается.
Foxx
18 October 2016 | 19:08
QUOTE (Crafty) |
У меня начинает играть, через секунду обрывается. |
У меня точно также. Пробовал разные степени сжатия MP3, моно, стерео, VBR, CBR, битрейт итог один, не хочет работать. Ну и фиг с ним.
Fakeman
18 October 2016 | 22:06
а в какую вы папку клали mp3 у меня тишина.
QUOTE |
Нет, как ГГ получал урон каждую минуту игрового времени, так и будет получать. |
Каким это таким способом?)
А как время действия/зависимость наркоты тоже также осталось или увеличивается?
Все никак рука не дотянется протестировать этот Shit-Time :)
-
Во протестировал, теперь ясно ты просто увеличил скорость тикам) выше 10 ставить смысла нет ибо все начинает глючить мобы дергаются при хождении, все начинают быстро разговаривать, это по сути тоже самое, что и SpeedMultiInitial только без анимации.
Foxx
18 October 2016 | 22:16
QUOTE (Fakeman) |
а в какую вы папку клали mp3 у меня тишина. |
Я кидал в data/sound/music
Брал любой MP3 и переименовывал в 06rokot. При начале новой игры в Неваде происходит рывок этой песни и обрывается.
QUOTE (Fakeman) |
А как время действия/зависимость наркоты тоже также осталось или увеличивается? |
Всё вроде сохранено.
Проверял так (просьба не смеяться):
Установил TimeScale=10.
Сделал специальный прошник-наркотик с временем действия: через 30 минут облучение и еще через 30 минут облучение.
И мотал время в Pip-Boy действие от наркоты такое же, как и при TimeScale=1
Только у NPC над бошками стали очень часто выскакивать всплывающие сообщения)) Но Crafty об этом предупреждал.
Fakeman
19 October 2016 | 00:05
QUOTE |
Проверял так (просьба не смеяться):
|
Хаха нуб... не ну все правильно проверил).
QUOTE |
Только у NPC над бошками стали очень часто выскакивать всплывающие сообщения)) Но Crafty об этом предупреждал. |
так вроде же просили без этого, вот даже доказательства есть)
QUOTE (Я) |
ну вот в чем и вопрос, хотелось чтобы время шло быстрее, а все тики остались такими-же (прим.ред. по скорости). |
QUOTE (Crafty) |
Так и будет. |
Foxx
19 October 2016 | 00:44
А ещё он писал:
QUOTE (Crafty) |
Это возможно, но с побочным эффектом (хотя это нормально) все timed_event_p_proc тоже будут работать быстрее (к примеру, Вик чаще болтает флоатами). |
Только тут уже все NPC болтают чаще))