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

Скриптование


Svoboда

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

HUD скрывается при использовании оптики, даже если заткнуть ссылки в начале [xr_effects.script] – остается только править движок.

Трассеры читаются из конфига патронов при запуске игры: без правок движка они либо всегда есть, либо всегда нет. Разве что скриптом добавлять к пуле движущийся партикл… Надо спрашивать кого-то, кто работает с эффектами и светом.

  • Полезно 1
  • Смешно 1

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

Шпаргалка

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


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

То, что повешено на худ пользователем, именно при использовании оптики не скрывается, хотя в катсценах, диалогах и т. д. скрывается и это (кроме ЗП – там всегда только вручную). В старых модах вроде "Фотографа" можно наблюдать на худе самодельные часы при использовании прицела без черной заливки снаружи.

  • Согласен 1

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

Шпаргалка

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


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

1. Мудреный вариант: взять список [system.ltx] [info_portions] files и перебрать все указанные файлы как текст через getFS():r_open(путь):r_stringZ() с проверкой "есть/нет" по каждому info_id.

2. Ленивый вариант: добавить вывод всех инфо-поршней в консоль в actor_binder:info_callback() и "слушать" с начала новой игры.

3. Неясный вариант: в ЧН вскоре после загрузки в консоль высыпается этот самый список – можно там посмотреть, но вроде как это движковый вызов. Единственное, что можно понять из самого списка – у инфо-поршней есть фиксированные id: [0]=[global_dialogs] … [1350]=[info_up_ac_spas12].

  • Спасибо 1

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

Шпаргалка

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


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

[task_manager.script] register_target() выбирает подходящие объекты при движковой регистрации и добавляет их id в task_info[задача].task_objects – куда-то сюда надо копать

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

Шпаргалка

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


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

Вспомнил вот… Для заданий artefact и monster_part список target_objects не заполняется и метка не создается, а возможность выдачи определяется только простыми проверками "наличие выданных заданий такого типа + отсрочка". Для нового задания с поиском обычной брони (без секции в all.spawn) должно хватить копии конфигов и скриптов задания artefact / monster_part под другим именем.

  • Полезно 1

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

Шпаргалка

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


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

Проверил в ТЧ, подтверждаю (стоило сразу так сделать вместо советов "может быть").

Полный список правок, если кому-то интересно:

• [game_tasks_by_vendor.xml] – новый тип задания "parent_new_type"

• [task_manager.ltx] – конфиг нового задания, обязательно с заголовком в начале файла

• [task_manager.script] – копия строк с обработкой задания "artefact" => "new_type"

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

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

Шпаргалка

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


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

Не соглашусь: задание "find_item" имеет дополнительную обработку "есть на сервере, но не в кармане заказчика" – надо копировать или "artefact", или "monster_part".

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

Шпаргалка

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


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

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

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

Шпаргалка

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


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

1. [user.ltx] можно править через консольные команды (прямой ввод или обертка get_console), [actor.ltx] – только с правками движка (OGSR, например).

 

2. Апдейт нужен для постоянных проверок, вроде таймеров или отслеживания ХП – для разовых проверок есть отдельные события. Инфо-поршень можно ловить через info_callback(info_id) по факту получения, либо запускать проверку "уже есть" при входе в диалог, при старте задания и т. д. Какие условия задачи?

  • Полезно 1

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

Шпаргалка

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


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

Тогда должен быть доступ к свойству actor.max_walk_weight и к свойству max_weight через класс инвентаря (не знаю, как правильно ссылаться – пользователи OGSR подскажут).

 

Если поршней несколько, info_callback как раз подойдет.

 

- дополнение -

Вроде оно (get_ аналогично):

db.actor:set_actor_max_weight(num)

db.actor:set_actor_max_walk_weight(num)

Изменено пользователем Norman Eisenherz
  • Полезно 1

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

Шпаргалка

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


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

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


ЧН, автобусная остановка на Кордоне (esc_smart_terrain_5_10): хочу повысить живучесть новичков, на которых по сюжету нападают вояки, но не знаю, как привязать определенные профили NPC к логике смарта.

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

Шпаргалка

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


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

@Kirgudu Я познал путь компания-разработчик (признана нежелательной)*: мало прописать новый класс и группу профилей для новых сталкеров – надо еще указать этот класс в [spawn_sections.ltx] со ссылкой… на тот же класс? При этом в логе вылета ссылка на движковую проверку с какими-то векторами – поди пойми, чего игра хочет.

:WhiteVoid_2:

  • Смешно 3

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

Шпаргалка

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


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

1. Библиотека io – чтение и запись текстовых файлов (есть ЧН/ЗП, про OGSR не знаю).

2. Написать в консоли help, искать примеры по названиям.

  • Полезно 1

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

Шпаргалка

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


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

[ЧН 1.5.10]

При захвате смарта выдается два типовых сообщения "Спасибо за помощь, приходи за наградой". Тест показывает, что сообщения выдаются из [task_objects.script]:

Spoiler
			--' Контратаку запустиь не получилось, выполняем квест.
			if self.actor_helped then
				self.last_check_task = "complete"
				--' Кидаем озвучку.
				for kk,vv in pairs(self.board.smarts[target_obj.id].squads) do
					if(self.play_regard=="") then
						xr_sound.set_sound_play(vv.commander_id, "alife_defence_actor_help", self.community, self.target)	-- здесь
					elseif(self.play_regard~="nil") then
						xr_sound.set_sound_play(vv.commander_id, self.play_regard, self.community, self.target)
					end
					break
				end
				target_obj.combat_manager.combat_quest = "nil"
			else
				self.last_check_task = "reversed"
				target_obj.combat_manager.combat_quest = "nil"
			end

 

Дальше странное:

• в переборе отрядов есть break, который почему-то не действует

• если добавить отсечку через логический флаг при запуске одного сообщения, второе сообщение все равно будет выдано

• если добавить счетчик, он покажет 1 для обоих сообщений

 

Почему выдается два сообщения?

  • Полезно 1

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

Шпаргалка

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


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

Дублировал запуск звука тестовыми сообщениями – обе реплики выдаются из указанного места почти одновременно. Может xr_sound не успевает зарегистрировать звук до запуска следующего…

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

Шпаргалка

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


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

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