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

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


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

8 минут назад, HellRatz сказал:

Это как? Не припомню, чтобы это требовалось при введении новых патронов и вообще предметов. Сам никогда не трогал _г.скрипт в таких случаях и все было хорошо.

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

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

local number = math.ceil(math.random(count_by_level[k].min, count_by_level[k].max))

Выводите в лог, чему равны k, и что представляет собою count_by_level, выше этой строки.

Тут уже, собственно, все очевидно.

 

8 часов назад, Чешский сказал:

death_manager.script:139: attempt to index field '?' (a nil value)

Скрипт пытается взять элемент таблицы по ключу k, либо поле в этом элементе. А там обнаруживается nil.

Проблема в некорректности данных

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

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

@Чешский, Новые патроны нужно прописывать в:

misc\death_generic.ltx

misc\death_items_count.ltx

misc\death_items_by_levels.ltx

misc\death_items_by_communities.ltx.

  • Согласен 2

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

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

Выводите в лог, чему равны k, и что представляет собою count_by_level, выше этой строки.

Тут уже, собственно, все очевидно.


Извиняюсь, но не могу вдуплить... А как это значение в лог вывести?
 

Скрипт пытается взять элемент таблицы по ключу k, либо поле в этом элементе. А там обнаруживается nil.

Проблема в некорректности данных

Извиняюсь, но не могу вдуплить... А как это значение в лог вывести?
 

Скрипт пытается взять элемент таблицы по ключу k, либо поле в этом элементе. А там обнаруживается nil.

Проблема в некорректности данных

Как я понимаю, "k"  это коэфициент для предмета в death_by_level? Ну типа x вот тут? 

;Аммуниция
ammo_7.62x39_fmj                 = x

Я прописал в этом конфиге свой патрон и выставил коэффициент 1. Честно, я не знаю языков программирования и полез заниматься моддингом исключительно по туторам.

 

18 минут назад, WinCap сказал:

@Чешский, Новые патроны нужно прописывать в:

misc\death_generic.ltx

misc\death_items_count.ltx

misc\death_items_by_levels.ltx

misc\death_items_by_communities.ltx.


Я прописал во всех этих файлах. В count для каждого уровня сложности отдельно, по два значения через запятую (от x до y) 

Добавлено  Опричник,

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

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

Как я понимаю, "k"  это коэфициент для предмета в death_by_level? Ну типа x вот тут? 

Это может быть что угодно. В зависимости от контекста скрипта.

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

только что, Чешский сказал:

А как это значение в лог вывести?

Я бы рекомендовал модуль zander_log оттуда.

Но счас набегут советчики других инструментов... каждый хвалит свои костыли.

  • Нравится 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 час назад, Чешский сказал:

Скрипт пытается взять элемент таблицы по ключу k, либо поле в этом элементе. А там обнаруживается nil.

Правильно.

Таблица count_by_level по индексу "ammo_7.62x39_fmj" должна содержать значения min и max. Эти значения считываются из файла misc\death_items_count.ltx. Проверьте правильно ли прописаны патроны в этом файле.

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

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

@RSFSR, в SDK можно создавать подобные зоны.

и как? какая-то логика существует? не путай со звуковыми зонами, которые sound_env - кубы, где звуку придается эхо

Добавлено  Опричник,

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

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

@naxac, нет, нужно менять фоновую музыку, прописанную в game_levels_music.ltx и окружающие звуки прописанные в профилях погоды: Например в weather_default.ltx:

env_ambient        =    ambient_env_night

и в файле env_ambient.ltx

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

@Zander_driver, я подрубил твой модуль (кинул в бин расширение RvP, создал файл zander_log.script со скриптом из спойлера и объявил функцию через _g.script), но я не совсем понял как пользоваться этим: 

zander_log(любое, число, каких-то, ваших, переменных)

 

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

misc\death_items_count.ltx


Может быть, death_items_by_counts*? Там я всё проверил, прописаны для каждого уровня сложности (новичок, сталкер, ветеран, мастер) и тип боеприпаса, и количество в 2-х значениях. Пример:

[item_count_0]
;Аммуниция
ammo_9x18_fmj            = 20, 40
***
ammo_7.62x39_fmj                 = 20, 40

 

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

Может быть, death_items_by_counts*?

У меня death_items_count.ltx, точно.

В файле death_generic.ltx, в #include, какой прописан?

  • Полезно 1

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

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

@WinCap, я сейчас изменил название файла на death_items_count.ltx и всё заработало. У меня тупо несколько лет на компе лежал файл с неправильным названием. Как такое вышло - понятия не имею, я никогда не трогал файлы из распакованных архивов, правил только скопированные в новую геймдату. Мда... А на инклуды я всегда смотрел только мельком - я не думал, что в файле, на котором работала игра, могла быть ошибка. Может я сам когда-то, зачем-то поменял файлу название, а может и программа что-то не так распаковала. В любом случае огромное человеческое спасибо за помощь и за то, что откликнулись, народ. 

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

какая-то логика существует?

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

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

Я при добавлении нового патрона прописывал его и в _g.script. Вообще, тупо поиском по любому патрону, где есть в скриптах/конфигах вхождение, прописывать по аналогии, и все будет норм.

Сталкер - наше всё!

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

@HellRatz, а если целиком погоду?
насоветовали что-то такое:

рестриктор примерно с такой схемой:
 

actor_in_zone = %=set_agr_u_weather%



и и функция в xr_effects что то вроде

function set_agr_u_weather() level.set_weather("indoor_agroprom", true) end

 

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

Люди подскажите пожалуйста, как сделать несколько вариаций бутскрина, т.е загрузочного экрана. Не интро локаций, а именно бутскрин. Как это было сделано в ОП-2.1. Заранее спасибо.

Добавлено  HellRatz,

Весь текст жирным шрифтом выделять не обязательно.

bar.jpg

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

@RSFSR, погоду можно задавать. Только не забудь сделать еще actor_out_zone, чтобы возвращать обычную погоду при выходе из рестриктора.

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

@HellRatz, в итоге получается так?:

рестриктор охватывающий все подземелье с

actor_in_zone = %=set_agr_u_weather%

actor_out_zone = %=set_default_weather%

и две функции в хр_эффектс:

function set_agr_u_weather() level.set_weather("indoor_agroprom", true) end

function set_deafault_weather() level.set_weather("default", true) end

Так?

а еще у меня на разных рендерах разная погода:
 

if get_console():get_string("renderer") == "renderer_r2" then
level.set_weather(level.get_weather().."_r2",now)
else
level.set_weather(level.get_weather(),now)
end


сильно осложнит дело?

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

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

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

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

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

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

Войти

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

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

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