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

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

Здравствуйте, я, можно сказать ещё новичок в моддинге. Сейчас работаю над квестом и такой вопрос: Как заспавнить НПС после выдачи инфопорции? В моём случае инфопорция выдаётся при взятии артефакта. Понимаю что тут ещё было пару таких вопросов, но та-же секция [spawner] в логике НПС попросту не работает, как и другие способы. Либо вылет игры, либо НПС попросту не спавнится. Пробовал ещё сделать так, что-бы игра проверяла скриптом этот поршень и при его наличии - давала скрипт на спавн НПС, но тоже не работает. Подскажите, пожалуйста, как это сделать...

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

Как заспавнить НПС после выдачи инфопорции?

Примерно так:

     <info_portion id="твой_инфопоршень">
		<action>твой_скрипт.твоя_функция</action>
    </info_portion>

и

твой_скрипт:

function твоя_функция()
	local obj = alife():create("секция_нпс", vector():set(координаты, куда, спавнить), левел_вертекс, гейм_вертекс)
  	--/ А тут можно с переменной obj еще что-нибудь сделать. По желанию.
end

 

3 часа назад, egorkaufman1 сказал:

Пробовал ещё сделать так, что-бы игра проверяла скриптом этот поршень и при его наличии - давала скрипт на спавн НПС, но тоже не работает.

Дай угадаю, игра проверяла на апдейте, да? :crazy2: ужас) Не надо так делать, сам факт выдачи инфопоршня можно использовать для вызова функции напрямую (см.выше). Хотя, если это делать через апдейт, работать тоже будет. Но делать так не надо.

Вообще любое действие в моддинге, как правило можно сделать несколькими разными способами. Можно так, можно эдак, и еще вот эдак с подвывертом. И как правило среди этого множества способов, есть один хороший, один плохой, и несколько очень плохих. Но они тоже работают, да... Если что-то работает, это еще не значит что оно сделано хорошо.

А еще, в ситуациях когда "либо вылет, либо не работает" - полезно читать логи. Как правило, там можно узнать, что именно пошло не так.

 

  • Спасибо 1
  • Нравится 1
  • Согласен 4

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

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

spawner

Что значит не работает? Оллспавновый НПС, имеющий эту секцию, будет спавниться по условию (выдать/забрать инфопорцию). Если всё правильно сделано. 

  • Согласен 3

Здесь могла быть ваша реклама.

Ссылка на комментарий
09.07.2022 в 03:17, egorkaufman1 сказал:

но та-же секция [spawner] в логике НПС попросту не работает

НПС как создан? Правка алл.спавн с исп. АСДС или СДК+xrAI? Если первое, то давай сюда код секции, поглядим на ошибки.

 

@Colder 

В item_to_slot(obj) что  передается в качестве obj? Точнее, что там должно быть? По коду ф-ции ItTank там должен быть объект с секцией "test_att"?

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

Здравствуйте, хотелось бы задать вопрос:

 

Есть ли в ЗП метод, позволяющий отслеживать включение определенного постэффекта? 

 

Возникла идея сделать худ ПНВ, отдельный для каждого поколения(по типу того, как для каждого ЭОП в Таркове разный худ), при его включении. И хоть статические элементы выводить - дело нехитрое, но с поиском условия для if возникли проблемы

(Если есть метод менее геморройный, чем отслеживание ppe-шек, подскажите, буду благодарен) 

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

1. Изменение HUD согласно типу ПНВ есть в Anomaly 1.5.1, но как именно реализовано переключение – не знаю.

2. Можно подключить скриптовый кейлоггер и включать эффекты ПНВ самостоятельно с любыми условиями при нажатии клавиши (обычную привязку отключить).

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

Шпаргалка

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

метод, позволяющий отслеживать включение определенного постэффекта? 

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

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

 

Пример такого эффекта из СЗ. Правда, это выброс, и ТЧ. Но на ЗП такое вроде тоже можно делать. И ПНВ на этих эффектах делается, принцип тот же.

-- класс
class "SurgeFade" (effector) -- Скриптовый постэффект со скриптовым же управлением.
function SurgeFade:__init(  ) super( 6669, 1000 )
		self.params = effector_params(  )
		self.params.color_base    	= color( 0.50, 0.50, 0.50 )
		self.params.color_gray    	= color( 0.50, 0.50, 0.50 )
		self.params.color_add     	= color( 0.0, 0.0, 0.0 )
		self.params.gray 			= 0.0
		self.params.dual        	= duality( 0.0,  0.0 )
		self.params.noise        	= noise( 0, 0, 0 )
		self.params.blur        	= 0.0
		self.on_last 				= nil
		self:run(0)
		effector.process( self,  self.params )
		self:start(  )
end
function SurgeFade:run(st) -- Запуск указанной стадии
	self.stage 					= st
	self.stage_time 			= time_global(  )
end
function SurgeFade:set_callback(f) -- Функция будет вызвана на последнем кадре эффекта
	self.on_last = f
end

function SurgeFade:process( pp )
    local dt = time_global(  ) - self.stage_time
	if dt < 0 then return true end
    if self.stage == 0 then
		local stageFactor = dt / 5000
		self.params.noise        	= noise( stageFactor, 0.5, 10 )
		self.params.color_base    	= color( 0.60 - (stageFactor / 2), 0.50 - (stageFactor / 2), 0.50 - (stageFactor / 2) )
		self.params.gray 			= stageFactor
	elseif self.stage == 1 then
		self.params.noise        	= noise( 1.0, 0.5, 10 )
		local clrAmp = math.sin( dt / 1000.0 )
		local r = 0.0 + (math.random() * clrAmp * 0.001)
		local g = 0.0
		local b = 0.0
		self.params.color_base    	= color( r, g, b )
		self.params.gray 			= 1.0
	elseif self.stage == 2 then
		local stage2Factor = 1 - (dt / 10000)
		if stage2Factor < 0 then 
			if self.on_last ~= nil then self.on_last() end
			self:finish()
		else
			self.params.noise        	= noise( stage2Factor, 0.5, 10 )
			self.params.color_base    	= color( 0.50 * stage2Factor, 0.50 * stage2Factor, 0.50 * stage2Factor )
			self.params.gray 			= stage2Factor
		end
	end
    effector.process( self,  pp )
    pp:assign( self.params )
    return true
end

-- использование
surge_fade_effector = nil -- объявление

surge_fade_effector = surge_day_system.SurgeFade() -- запуск
surge_fade_effector:set_callback(begin_drop_effects)

if surge_fade_effector then surge_fade_effector:run(1) -- переключение состояний постэффекта 
  --(в принципе любое управление его параметрами в процессе его активности)
  
function begin_drop_effects()
   	-- будет вызвана когда постэффект завершит работу. 
end

Если вместо параметров выброса, вписать сюда эффекты ПНВ, то примерно то что нужно и получится.

 

 

  • Спасибо 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.

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

Наверное, надо состояние ПНВ отслеживать, а не рре-эффекты?

Исходя из мной прочитанного, я знаю можно просто отследить включено/выключено ПНВ. Без привязки к поколению. 

 

Я же изначально уточнил, что худ должен отображаться в зависимости от поколения ЭОПа. 

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

худ должен отображаться в зависимости от поколения ЭОПа

Но ведь он должен отображаться при включении ПНВ? Отслеживаем это, и когда надо отобразить соответствующий худ, читаем из секции текущего ПНВ настройки для этого худа. 

  • Согласен 1
Ссылка на комментарий
12 минут назад, AndreySol сказал:

читаем из секции текущего ПНВ настройки для этого худа. 

Ввиду недостатка опыта, немного не понимаю. Под секцией ПНВ подразумевается конфиг?

 

 

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

@ElPablo 

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

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

Возможно ли вернуть текущий вес поклажи ГГ (без горождения переборов и прочего)? ОГСР. 

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

Здесь могла быть ваша реклама.

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

@mole venomous , db.actor:get_inventory_weight(). По идееПример использования.

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

Кто-нибудь многострадальный R1 к OGSR всё-таки прикручивал/ет? Никто не в курсе?

 

Изменено пользователем Купер
  • Спасибо 1
Ссылка на комментарий
6 часов назад, Купер сказал:

R1 к OGSR

:offtopic: Это отрицательное развитие.

  • Сочувствую 1

Отношения между людьми- главная ценность в человеческом обществе.
Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

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

Здравствуйте. Есть мод Call of Misery и дополнение на миникарту. Хочу сделать итем на пояс, который тратит энергию и включает эту миникарту.
Хоть примерно скрипт накидайте или наводку на пример похожего функционала из других модов. Звучит максимально просто, но без примера и знания языка не могу реализовать сам.

:unsure:

 

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

Можно ли в GUI окне вывести Fillist с иконками итемов а не имя как это видно на скрине. Где можно подсмотреть? https://disk.yandex.ru/i/RrPaSNJ4OCr7Eg

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

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

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

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

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

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

Войти

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

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

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