Перейти к контенту

Судьба Зоны: Ковыряемся в файлах


Рекомендуемые сообщения

На тему технологических новинок движка версии 0.8 (На базе OGSR)

Наверное стоит оставить тут этот пост. Мало ли будет кто ковырять потом - пригодится)

Что на данный момент сделано:

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

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

Ссылки на иконки поддерживаются как в формате OGSR

icon_section = ...

Так и в формате СЗ

used_icon_texture = ...

И в обоих случаях, они теперь могут указывать как на другую секцию конфига, так и на другую описанную в xml, текстуру.

Всякие новости которые могут быть полезны потом при ковыряниях мода, буду тут оставлять, а новости просто о разработке - в "Говорилке".

  • Спасибо 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

@Zander_driver, в каких строчках отключить повреждения стекла в шлемах ? При 90% видимость падает настолько что очень устают глаза(

Скрытый текст

    end
    if hud_statics["glasscondition_static"] then -- есть статик стекла
        if temp_condition_texture and temp_condition_texture ~= "" then
            if old_helmet_condition ~= helmet_condition then
            hud_statics["glasscondition_static"]:InitTexture(temp_condition_texture)
            old_helmet_condition = helmet_condition
            end
            if hud_statics[helmet_decal] then -- есть статик шлема
                if temp_glass_texture and temp_glass_texture ~= '' then -- ok
                    if old_armglass_texture ~= temp_glass_texture then
                        hud_statics[helmet_decal]:InitTexture(temp_glass_texture)
                        old_armglass_texture = temp_glass_texture
                    end
                    if hud_statics[battery_decal] then -- есть статик шлема
                        if temp_battery_texture and temp_battery_texture ~= '' then -- make
                            if old_battery_texture ~= temp_battery_texture then
                                hud_statics[battery_decal]:InitTexture(temp_battery_texture)
                                hud_statics[battery_decal]:SetWndRect(battery_grade['x'], battery_grade['y'], battery_grade['w'], battery_grade['h'])
                                old_battery_texture = temp_battery_texture
                            end
                        else
                            get_hud():RemoveDialogToRender(hud_statics[battery_decal])
                            hud_statics[battery_decal] = nil
                            old_battery_texture = nil                        
                        end
                    else -- not battery static
                        --zander_log('battery show')
                        --zander_log(battery_grade)
                        --zander_log(temp_battery_texture)
                        if temp_battery_texture and temp_battery_texture ~= '' then -- make
                            hud_statics[battery_decal] = CUIStatic()
                            hud_statics[battery_decal]:Init(battery_grade['x'], battery_grade['y'], battery_grade['w'], battery_grade['h']) 
                            hud_statics[battery_decal]:InitTexture(temp_battery_texture)
                            --hud_statics[battery_decal]:SetStretchTexture(true)
                            hud_statics[helmet_decal]:AttachChild(hud_statics[battery_decal])        
                            old_battery_texture = temp_battery_texture                        
                        end
                    end
                else -- clear
                    get_hud():RemoveDialogToRender(hud_statics[helmet_decal])
                    hud_statics[helmet_decal] = nil
                    old_armglass_texture = nil
                end
            else -- нет статика шлема
                if temp_glass_texture and temp_glass_texture ~= '' then -- make
                    -- show decal
                    hud_statics[helmet_decal] = CUIStatic()
                    hud_statics[helmet_decal]:Init(0, 0, 1024, 768)
                    hud_statics[helmet_decal]:InitTexture(temp_glass_texture)
                    --hud_statics[helmet_decal]:SetStretchTexture(true)
                    hud_statics["glasscondition_static"]:AttachChild(hud_statics[helmet_decal])        
                    old_armglass_texture = temp_glass_texture
                end
            end
        else
            get_hud():RemoveDialogToRender(hud_statics["glasscondition_static"])
            old_helmet_condition = nil
        end
    else
        if temp_condition_texture and temp_condition_texture ~= "" then
            hud_statics["glasscondition_static"] = CUIStatic()
            hud_statics["glasscondition_static"]:Init(0,0,1024,768)
            hud_statics["glasscondition_static"]:InitTexture(temp_condition_texture)
            old_helmet_condition = helmet_condition
            get_hud():AddDialogToRender(hud_statics["glasscondition_static"])
        else
            --- статика нету, и шлема нету. ничего не делать.
        end
    end

 

Изменено пользователем Gluharek
  • Согласен 1
Ссылка на комментарий

Ну как бы. Ломать - не строить. Можно просто весь этот код удалить, и шлема на худе не будет.

  • Спасибо 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

@Zander_driver, В том то и дело что ломать ничего не охота,но если в вылазке остальную снарягу убить до 50% можно доползти до базы,а шлем на 80% уже приходится снимать -а это минус к защите. Может  хотя бы уменьшить порог повреждений при котором резко падает обзор?

Добавлено Zander_driver,

В 0.8 шлем будет получать повреждения только от хитов, нанесенных в голову ГГ, а не куда угодно.

В 0.7.х правок шлема не будет.

В вашей ситуации - снимайте шлем.

Заметка изменена

Ссылка на комментарий

Всем доброго... Подскажите пожалуйста как сделать текст в  PDA поменьше, а то этот самый текст за рамки лезет - прочитать полностью инфу не_могу. Монитор у меня квадратный 5:4. Настройки в файле settings ltx выставил 1280×1024 . В самой игре пробовал разные разрешения - подходит родное, только вот одна эта неудобность (текст не лезет в рамки PDA). На форуме или где-то ещё помню, как сейчас, была инфа по этому поводу. Я знаю Вы поможете, большое ЧЕЛОВЕЧЕСКОЕ СПАСИБО. Это не мод - это готовая самостоятельная ИГРА .???? Действительно - книжная зона. У мене нет слов, кроме слов благодарности. Молодчаги ребята, так держать.

И снова я с вопросом, вечер в хату, если поменять time factor на меньшее значение - приведёт ли сие действие к пагубным последствиям в плане самой игры?Ни чего не покрашится, может привязан к чему? В одном из проходимых мною модах выставил time factor 0.75 дык и время нормально течёт и ГГ не бегает а ходит нормально. В СЗ такое возможно. Большое ЧЕЛОВЕЧЕСКОЕ СПАСИБО .

Изменено пользователем W.A.S.P.
правописание
Добавлено  Опричник,

Следите за правописанием (п.2.5 правил форума).  https://www.amk-team.ru/forum/topic/13514-obyavleniya/?tab=comments#comment-1099221

  • Спасибо 1
  • Согласен 1
Ссылка на комментарий

@Бабай Ага, Про тексты и их вмещение в ПДА, было на этой же странице несколькими сообщениями выше)

Если быть точным, то вот тут, все написано. Для версии 0.7.7, искомый кусочек кода начинается в строке 4266.

3 часа назад, Бабай Ага сказал:

если поменять time factor на меньшее значение - приведёт ли сие действие к пагубным последствиям в плане самой игры?

К совсем уж пагубным не приведет, но... в ПДА в описаниях квестов, временные интервалы на их выполнение будут тикать все равно с тайм-фактором 6.

  • Спасибо 2
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

@Zander_driver Спасибо, буду искать строку 4266.Попробую текст чтобы влез в PDA. А про время... - не ндрввится ( W.A.S.P. привет:smile218:) торопиться в ЗО. С чувством с толком с расстановкой.

Изменено пользователем W.A.S.P.
оверквотинг
Добавлено  Опричник,

Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

Добавлено Zander_driver,

Чтобы не искать, можно использовать Notepad++ например.

Там номера строк показаны.

  • Согласен 1
Ссылка на комментарий

@Zander_driver, я и многие мои знакомые-единомышленники предпочитают играть во все модификации S.T.A.L.K.E.R.-а с тайм фактором равным единице. Поэтому нам хотелось бы, чтобы и в ПДА в описаниях квестов, временные интервалы на их выполнение тикали с тайм-фактором 1. Не подскажете как это нам сделать? Или это очень сложно?...

  • Нравится 1
Ссылка на комментарий

:yes4: А нумерация вагона с какой стороны начинается:crazy2:? Блокнотом открыл - 4266 у где прописано? Прощу пардонте за невежество в комп.примудростях.  Вопрос снят - Николай Василич помог.  Сей же час испробую.

Изменено пользователем W.A.S.P.
оверквотинг
Ссылка на комментарий

@Бабай Ага, Для скриптов рекомендую Notepad++, прога бесплатная и удобная.

1 час назад, ddww сказал:

хотелось бы, чтобы и в ПДА в описаниях квестов, временные интервалы на их выполнение тикали с тайм-фактором 1. Не подскажете как это нам сделать?

В 0.7 это... сложно :)

В 0.8 или в 0.9 я это пожелание учту.

  • Спасибо 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

Оставлю тут, чтобы было. Возможности для работы с инвентарными предметами в СЗ 0.8

1. Можно указать свое написание команды "использовать" (Съесть/Выпить/Открыть/и т.д. и т.п.)

Параметр в секции конфига предмета:
 

use_action         = st_open ; например. 

Где st_open - должно быть переведено на <ваш язык> в файлах локализации в папке config/text

 

2. Свои скриптовые команды для любых предметов, в любом количестве и без необходимости писать биндеры, да и вообще без необходимости сильно разбираться в скриптах.

Параметры в секции конфига предмета:


custom_action_0 = st_sleep_h1, inv_actions.sleep_condition, inv_actions.sleep_action_2
custom_action_1 = st_sleep_h2, inv_actions.sleep_condition, inv_actions.sleep_action_3 ; Например

st_sleep_h1 - это указание на текст команды в том же config/text

inv_actions.sleep_condition - проверочная функция. Движок вызывает ее, чтобы выяснить, надо ли сейчас показывать эту строчку в инвентаре. В нее передается итем, который кликнули. Вернуть должна boolean. Если вернет true - команда будет показана в списке.

inv_actions.sleep_action_2 - собственно та функция, которая будет вызвана если игрок на строчку нажмет. В нее так же передается итем, для которого вызывалось меню.

И вот таких комплектов (текст, функция, функция) - может быть в конфиге сколько угодно. Главное чтобы они нумеровались по порядку, начиная с 0 и без пропусков.

 

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

  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
16.03.2020 в 22:16, Zander_driver сказал:

В 0.8

Зандер в 0.8 вероятность дождливой погоды выставляется там же где и в 0.7? Уж очень сильно мне "везет"  на дожди (

Добавлено Zander_driver,

Пока да.

Ссылка на комментарий

@Zander_driver, подскажи пожалуйста вот в настройках наполнения Зоны в шапке дефолтное значение 1.00, например:

monster_global_density             = 1.00 ; Средняя глобальная плотность мутантов.



; Чем больше значение - тем больше зверья.

А, чтоб меньше монстров на данном примере сделать, что нужно прописать - 0.90? 

Или просто 0.9?

 

Avandsan.gif

Ссылка на комментарий
4 часа назад, Avandsan сказал:

0.90? 

Или просто 0.9?

0.9, 0.90, или 0.9000 - это синонимы :) т.е. одно и то же. Движок это читает как обычное число с плавающей точкой.

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

Изменено пользователем Zander_driver
  • Спасибо 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

@Zander_driver, можно ли заменить иконку кулинарного ПДА на более заметную и как она называется в текстурах? Чтоб небыло проблем, как у товарища, который его посеял :). Вставлю какую нибудь фиолетовую или синюю ПДА из НС2016. Или ПДА Вергаса из НЛС он красивый, с кнопочками и заметный. 

  • Нравится 1

Avandsan.gif

Ссылка на комментарий

@Avandsan, файл: config\inv\inv_objects\attach_item\item_pda.ltx,
секция [item_recept_book]

Чтобы изменить иконку, потребуется из этой секции удалить строку used_icon_texture (которая ссылается на секцию пда, как раз), вписать туда новые координаты новой иконки, т.к. своих там просто нет. И добавить описание иконки в config/ui/ammo_cargo_spots.xml

 

Все сказанное верно до 0.7.х ) В 0.8 с заменой иконок проще - так же как в оригинале.

  • Полезно 2

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

Немного инфы про оружейные классы в версии "Судьба Зоны" 0.8

Точнее, про перестановки и изменения. Если кто-то когда-то будет возиться с оружейкой "Судьбы Зоны", добавлять новые стволы мб (а вдруг? :) ), ему это пригодится.

В каждой табличке, первая строчка - название движкового класса, вторая - clsid для конфига. Старые классы многие имели еще скриптовый пере-экспорт, как например W_AK74 -> WP_AK74, или W_SHOTGN -> WP_SHOTG.

У новых классов такого пере-экспортирования нет.

SNiexKd.png

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

Вместо старых, добавлены новые:

WPMagazin - собственно, все магазины и пулеметные ленты.
CWX_Pistol - пистолеты с магазинным питанием.

CWeaponM109 - гранатометы с магазинным питанием

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

CWeaponXMagWGL - оружие с магазинным питанием и подствольным гранатометом.

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

CWeaponRevolver - заготовка под револьверы...
CWeaponX_M134 - заготовка под миниган с поддержкой всех надлежащих геймплейных механик.

  • Нравится 3
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

@фанга, выйти с локации и зайти.  Уменьшить наверное.

  • Спасибо 1

Старые солдаты не умирают, они просто так пахнут. © Гарри Гаррисон. Все, что ты любил, ветер унесет. © Стивен Кинг.

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
  • Куратор(ы) темы:

×
×
  • Создать...