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

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


Halford

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

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

То, что монстры враги всегда, даже при  выставлении 1 в game_relations - движковая прихоть?

Нет, не прихоть. Невнимательность пользователя.

Взаимоотношения задаются в game_relations.ltx двумя значениями в табл:

[monster_relations]
actor  = [-2, -1,  0,  1] - отношение актора а мутанту
mutant = [-2, -1,  0,  1] - отношение мутанта к актору
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@Капрал Хикс , как вариант (не лучший, разумеется, ибо костыль, но...) попробовать присмотреться к скриптовой реализации подобного, a-la старый OLR, например. Что-то наподобие такого. XRE это позволяет. Поищи по форуму:

play_hud_animation

Поделиться этим сообщением


Ссылка на сообщение

@Balavnik

Проверить соответствие параметров в fsgame.ltx у источника и получателя. Здесь / здесь.

Поинтересоваться техническим "здоровьем" получателя. Как вариант "по-быстрому": адекватным компаратором проверить идентичность файлов источник/получатель после копирования.

Чудес не бывает. Это, конечно, если нам всё договаривают.

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение

@Anikot , нет. Просто заменой параметров в конфигах/скриптах не получится. Совокупность параметров, выводимых на HUD по умолчанию, "зашито" в движке.

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

Можно попробовать выводить нужную информацию через скриптовые GUI интерфейсы. "Подсмотрелок":biggrin: достаточно много - начиная от "полоски" уровня радиации в АМК и до... - всё, что касается худа + готовые реализации, конечно.

  • Полезно 3
  • Жуть! 1

Поделиться этим сообщением


Ссылка на сообщение

Да что его показывать. Здесь лежит.

@DarkSnowder , там что-то со скриптовыми диалогами: то ли с 4-го патча не до конца перенесено, то ли...

Для начала (на первый погляд!) так пробуй. Та самая строка, которая вылетает:

--*    phr0 = dlg:AddPhrase(intro_phrase, "0", "-1", -10000)
    phr0 = dlg:AddPhrase(intro_phrase, "0", "", -10000)

Это, в принципе, можно заменить:

table.getn(exchanging_items_intro_phrase) -> #exchanging_items_intro_phrase

 

И смотреть всё остальное. И опять стринговка в скриптах. Тяжёлое наследие старого режима.

  • Полезно 2

Поделиться этим сообщением


Ссылка на сообщение
26.01.2025 в 03:50, миха123 сказал:

Как отключить dynamic campfire mod?

Для оригинальной версии  dynamic campfire mod 1.32:

bind_stalker.script + xr_kamp.script + поиск по файлам игры "Dynamic campfire mod". Все "вставки" кода, которые добавляет мод, откомментированы. Сравнить с оригиналом и посмотреть, что где добавляется и откуда вызывается.

26.01.2025 в 03:50, миха123 сказал:

Или где посмотреть, как определить где какой костёр

Вариант 1: SDK

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

1.png

 

Вариант 2: поставить что-то из отладчиков - Инструмент, Mobile Manager или подобное, и уже там определяться с искомым.

Вариант 3: вручную скриптом перебрать игровые объекты циклом с отсечкой по секции, например, с выводом, отметок на карту (а подсмотреть тезисно реализацию можно прямо в моде - там именно так и сделано).

 

@Balavnik 

здесь и далее обсуждалось.

 

 

Изменено пользователем Купер
мусор удалён.
  • Нравится 1

Поделиться этим сообщением


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

 

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

 

[kamp]

center_point = kamp_center – имя точки вокруг которой NPC будет устраиваться.

*radius = 2 (насколько далеко сталкер будет сидеть от центра лагеря, 2- по умолчанию)

*def_state_moving = run (дефолтное состояние, в котором сталкер будет идти к точке кампа)

 

Файл: \gamedata\scripts\xr_kamp.script

 

NB! Если точка кампа находится в костре, то в оффлайне сталкера придут на нее, а когда они перейдут в онлайн, то окажутся внутри костра, где и получат хит. Чтобы этого не случалось в секции кемпа указывать path_walk из одной точке, название которой = <path_kamp_name>_task

 

*path_walk = <path_kamp_name>_task

 

Если точка кемпа расположена в чистом поле то, path_walk прописывать не надо.

 

и далее по ссылке выше нюансы.

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

Поделиться этим сообщением


Ссылка на сообщение

Там у ПЫС алгоритм выборки точек "куда садиться" не совсем корректный: потенциально возможны ситуации, когда скрипт принудительно NPC в центр костра загоняет.

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

Поделиться этим сообщением


Ссылка на сообщение

@миха123 , так как отключить - см. выше. Разговор про это, судя по всему?

bind_stalker.script, xr_kamp.script, поиск по файлам:

"‐- >> Dynamic campfire mod " - начало кода, добавляемого модулем.

"‐- << Dynamic campfire mod " - его конец.

Соответственно, строки между удаляем/комментируем.

18 часов назад, миха123 сказал:

Заменил xr_kamp, из мода Омега взял

Сомнительная затея на самом деле с копипастой, чревата непредсказуемыми последствиями, потенциальными багами и/или вылетами.

 

28.01.2025 в 17:06, bsanek628 сказал:

не реализовано, просто писанина в описании?

Точно так.

Вообще, да. Вроде бы работает. Должно, по крайней мере.

 

Поделиться этим сообщением


Ссылка на сообщение

Всё в комплексе. C преферансом, институтками и настроенными .bat-никами:

YandexDisk (относительно xr_compress - внимательно RTFM). Converter при необходимости можно обновить.

 

Отдельно xr_compress с фиксами для ТЧ - здесь.

Где-то по сети гуляет более свежая версия. Но это уже к автору ( @macron).

 

 

  • Полезно 3

Поделиться этим сообщением


Ссылка на сообщение

xr_kamp.script. -> function CKampManager:__init(path) -> значения табл. self.trans_kamp. Вроде бы? здесь.

Т.е., устанавливаем с вероятностью соответствующее состояние в кампе и потом начинаем нужное.

  • Согласен 1
  • Полезно 2

Поделиться этим сообщением


Ссылка на сообщение

@Фокусник

Скрытый текст
-- Таблица глобальных состояний лагеря.
    -- * допустимые исходные состояния в кампе.
    self.kamp_states = { idle = true,
                         pre_harmonica = false, harmonica = false, post_harmonica = false,
                         pre_guitar = false, guitar = false, post_guitar = false,
                         story = false, post_story = false,
                         pre_joke = true, joke = true, post_joke = true}
    -- Таблица допустимых переходов между состояниями с вероятностями.
    -- * начинаем с некоторой вероятностью менять своё состояние (суммарно 100%)
    self.trans_kamp = { idle            = { idle = 0, pre_harmonica = 30, pre_guitar = 30, story = 0, pre_joke = 40 }, --* из idle можем начинать такую активность с заданной вероятностью
                        pre_harmonica    = { harmonica = 100 }, --* потянулись за гармошкой
                        harmonica        = { post_harmonica = 100 }, --* играем на гармошке
                        post_harmonica    = { idle = 70, harmonica = 30 }, --* закончили играть на гармошке
                        pre_guitar        = { guitar = 100 }, --* аналогично для гитары
                        guitar            = { post_guitar = 100 },
                        post_guitar        = { idle = 70, guitar = 30 },
                        story            = { post_story = 100 }, --* начали рассказывать истории
                        post_story        = { idle = 100 }, --* законичили рассказывать истории
                        pre_joke        = { joke = 100 }, --* решили пошутить
                        joke            = { post_joke = 100 }, --* шутим
                        post_joke        = { idle = 100 }} --* закончили шутить

 

@Norman Eisenherz , а там не в шейдерах дело?

Поделиться этим сообщением


Ссылка на сообщение

Внезапный вопрос поставил в тупик.

А как отследить проигрывание партикла в текущий момент, применительно, например, к этому?

 

Поделиться этим сообщением


Ссылка на сообщение

OGSR.

@ASSASIN64 , ориентируйся на примеры использования вызовов для добавленных в движок коллбэков на работу с клавишами:

	self.object:set_callback(callback.on_key_press, self.on_key, self)			-- нажатие клавиши
	self.object:set_callback(callback.on_key_release, self.on_key_free, self)		-- отпускание клавиши
	self.object:set_callback(callback.on_key_hold, self.on_key_hold, self)		-- удержание клавиши

И вот туда свой таймер.

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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