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

[SoC] Ковыряемся в файлах


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

@mole venomous А возможно ли реализовать подъём рюкзака без правок движка?

Добавлено  Купер,

Простейший вариант здесь. Хотя и несколько коряво с т.з. скриптовой реализации.

Устал.

img.php?nick=Balavnik&sert=2&text=t6

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

Как можно поменять прозрачность диалоговых окон? Рыл-рыл talk.xml, да так и не нашёл там части отвечающей за текстуру именно фона диалогового окна. Кстати, а как определить, какой файл используется в игре, talk или talk_16?

Устал.

img.php?nick=Balavnik&sert=2&text=t6

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

1. Total / Free Commander и прочие файловые менеджеры, поиск текста ui_charinfo_left и ui_charinfo_right, ссылка на XML-описание одной из сборных текстур.

 

2. Разрешение: обычный формат или широкий.

  • Нравится 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

Как можно поменять прозрачность диалоговых окон?

Текстуры в сталкере допускают использование дополнительных цветов при своём отображении (заливки) в формате argb. Что-то наподобие:

<texture a="число" r="число" g="число" b="число">текстура</texture>

Число - в диапазоне 0...255.

Из этого всего нужно значение прозрачности: a.

Т.e:

<texture a="число">текстура</texture>

a - устанавливает степень прозрачности.

Ну, или саму текстуру редактировать таким же способом: через альфа-канал.

 

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

talk.xml, так и не нашёл там части отвечающей за текстуру именно фона диалогового окна

Сделано через фреймы:

<frame_line_window x="218" y="42" width="600" height="470" vertical="1">
        <texture>ui_talk_dialogue</texture>
</frame_line_window>

<frame_line_window x="218" y="485" width="600" height="250" vertical="1">
        <texture>ui_talk_dialogue2</texture>
</frame_line_window>

 

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

какой файл используется в игре, talk или talk_16?

Не вдаваясь в подробности, как уже заметил @Norman Eisenherz , зависит от выставленного игроком разрешения: для 16:9 (и подобных) - с постфиксом _16, для 5:4 - без постфикса. Касается всех конфигов ui, исключая "универсальные", для которых отдельные значения для широкоформатников не предусмотрены.

Вдаваясь в подробности: ui_base.cpp в движке -> is_16_9_mode()

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

И ещё такой вопрос. Сейчас в Зове Припяти прописываю патронам где используется тот или иной боеприпас. Прописываю для стволов массового производства. Стоит ли прописывать еще и для стволов по заказам Шустрого. Там Фрезер и Шторм с иными калибрами.

 

Оставить так? - "Используется в пистолетах «Desert Eagle», Colt 1911, SIG P220, USP45."

или же

Вот так прописать? - "Используется в пистолетах «Desert Eagle», Colt 1911, SIG P220, USP45, а также в штурмовой винтовке ОЦ-14М "Шторм"."

Изменено пользователем bsanek628
Ссылка на комментарий

Чем отличается name от section_name в all.spawn? Можно ли их менять на свой лад?

Изменено пользователем Balavnik

Устал.

img.php?nick=Balavnik&sert=2&text=t6

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

Параметр name можно менять произвольно, это то внутреннее имя объекта, которое в игре будет возвращаться при вызове метода obj:name(). Единственное вероятное (не проверял) требование - имя должно быть уникальным.

Параметр section_name, как можно догадаться из названия, должен совпадать с секцией нужного типа.

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

Почему может возникать ошибка duplicate section? Секция одна, проверил. Вот её описание:

 Что значит $spawn? Так и не понял на что это ссылка.

 

Что такое script_binding?

 

Скрытый текст
[escape_remkom]:identity_immunities
GroupControlSection    = spawn_group
discovery_dependency = 
$spawn                 = "devices\quest_items\esc_remkom"
;$prefetch             = 32
class                = II_ATTCH
cform                = skeleton
visual                = new\item_merger.ogf
radius                = 1
;script_binding        = stalker.object_init
quest_item            = false

description         = item_case_esc_desc

inv_name            = esc_case_inv_name
inv_name_short        = esc_case_inv_name
inv_weight            = 12
inv_grid_width        = 2
inv_grid_height        = 1
inv_grid_x            = 8
inv_grid_y            = 18
cost                = 50

 

 

Изменено пользователем Balavnik

Устал.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий
10 минут назад, Balavnik сказал:

Почему может возникать ошибка duplicate section? Секция одна

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

12 минут назад, Balavnik сказал:

Что такое script_binding?

Интересно, а ты читаешь ответы которые тебе пишут?

Ответ именно об этом, на твой же вопрос, был на прошлой странице.

13 минут назад, Balavnik сказал:

Что значит $spawn?

Значит, что в конфигах некоторые строки устарели и/или не нужны, и можно их спокойно удалить.

  • Нравится 1
  • Полезно 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.

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

Где можно изменить иконку объекта? Не оружия, а именно объекта, например колбасы. В самом описании ссылок на иконки нет, также не нашел никаких описаний местоположений иконок в config\ui.

Устал.

img.php?nick=Balavnik&sert=2&text=t6

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

section_name() – аналог section() для оффлайна

 

Просто name() возвращает либо уникальное системное имя, вроде esc_trader, либо имя и номер спавна: wpn_pm21423. Не путать с именами из [all.spawn] – у них обычно есть приставка с названием локации и какой-то фиксированный номер: val_wpn_mp5_0000.

  • Полезно 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

@Balavnik блин, чёт не то написал, хотя - тоже нужное) Сама иконка (картинка) находится на полотне ui_icon_equipment.dds и имеет разное кол-во ячеек в длину и высоту. Отсчёт сверху-слева (0.0)

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

inv_grid_width            = 1
inv_grid_height            = 2
inv_grid_x                = 5
inv_grid_y                = 2
 

в данном моменте это водка: ширина одна яч, высота - две яч.

Сама ячейка - 50х50 пикселей

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

 

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

Что значит $spawn

Насколько помню/знаю, параметры с префиксом $ используются и предназначены для Level Editor SDK, непосредственно в игре не задействованы.

 

 

  • Нравится 1
  • Согласен 1
  • Полезно 2
Ссылка на комментарий
8 часов назад, Kirgudu сказал:

Единственное вероятное (не проверял) требование - имя должно быть уникальным.

 

6 часов назад, Norman Eisenherz сказал:

Не путать с именами из [all.spawn] – у них обычно есть приставка с названием локации и какой-то фиксированный номер: val_wpn_mp5_0000.

а чем они отличаются? так метод obj:name() и возвращает вот это имя из алл-спавна, разница в примерах только в том ,что имя в алл-спавне задаёт разработчик, а имя типа wpn_pm21423, задаёт сама игра при спавне в виде id, прибавляя к названию секции рандомное число.

 

и кстати имя может быть одинаковым по крайней мере на ОГСР, я по ошибке оставил в спавне 2 объекта с одним именем, и потом в игре, играя с выводом дебаг инфы на экране (наведясь на объект там пишется информация-  секция, имя, логика и пр.) увидел что у меня стоят рядом 2 объекта с одинаковым name, никаких проблем для игры это не вызвало)

  • Полезно 1
Ссылка на комментарий
12 hours ago, CiberZold said:

имя в алл-спавне задаёт разработчик, а имя типа wpn_pm21423, задаёт сама игра при спавне в виде id

Этим и отличаются. К чему был вопрос?

  • Полезно 2

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
13 часов назад, CiberZold сказал:

и кстати имя может быть одинаковым по крайней мере на ОГСР, я по ошибке оставил в спавне 2 объекта с одним именем, и потом в игре, играя с выводом дебаг инфы на экране (наведясь на объект там пишется информация-  секция, имя, логика и пр.) увидел что у меня стоят рядом 2 объекта с одинаковым name, никаких проблем для игры это не вызвало)

Или показалось, что не вызвало :)

alife():object(строка) может возвращать объекты по имени. А не только по числовому id. И вернет определенный объект в том случае, если имя уникально.

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

  • Нравится 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 А id у каждого объекта получается уникальный, выдающийся игрой? Будет ли разница между obj.id(онлайн) и obj:id()(оффалйн)?

 

А Story id объекта можно получить?

Устал.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий
Только что, Balavnik сказал:

Будет ли разница между obj.id(онлайн) и obj:id()(оффалйн)?

Нет, они идентичны всегда. (Только наоборот - sobj.id для оффлайна, obj:id() для онлайна). Именно по id всегда можно опознать что это один и тот же объект.

story_id также получается и в оффлайне и в онлайне, смотри внимательно методы и поля объектов.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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 пользователей

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