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

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

По мотивам всего вышенаписанного.

06.07.2022 в 10:28, HellRatz сказал:

shape0:axis_x = 2.64159965515137,0,0 --ширина зоны по X
shape0:axis_y = 0,2.22759985923767,0 --ширина зоны по Y
shape0:axis_z = 0,0,2.64159965515137 --ширина зоны по Z
shape0:offset = 0,0,0 --поворот по осям (x,y,z)

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

 

@Zander_driver, респект.

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

@Labadal Возможно Вам нужно обратить внимание на минимод "Артефакт Воскрешения" (Kolmogor), может там найдете способ реализации своих наработок. В раритетах для ТЧ должно быть.

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

Не срабатывает проверка в чём проблема?

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

local rad_level = {
    ["l01_escape"] = true,
    ["ai_test"] = true
}

function ItTank(obj)
    if not obj then return false end
    local list = {

    ["test_att"] = true,
}
    return list[obj:section()]
end


local dmg = 0.00002

 

function on_update()
    local tl = rad_level[level.name()]
    if db.actor and tl then
    db.actor.radiation = dmg
end
end

 

--// вот тут

function item_to_slot(obj)
    local st = db.actor:item_in_slot(11)
    if st and ItTank(obj) then
    dmg = dmg - 0.0
end
end

 

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

@Colder, а что значит "проверка не срабатывает"?

Может она срабатывает и всё дело в:

dmg = dmg - 0.0

  • Согласен 2

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

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

Здравствуйте, я, можно сказать ещё новичок в моддинге. Сейчас работаю над квестом и такой вопрос: Как заспавнить НПС после выдачи инфопорции? В моём случае инфопорция выдаётся при взятии артефакта. Понимаю что тут ещё было пару таких вопросов, но та-же секция [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 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

spawner

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

  • Согласен 3

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

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

@Colder а если написать?

if db.actor:active_slot()==11 and st and ItTank(obj) then
Изменено пользователем Labadal

God save Hatsune Miku!

Ссылка на комментарий
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 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

чем отслеживание ppe-шек

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

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

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

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

 

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

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

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

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

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

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

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

 

 

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

@ElPablo 

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

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

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

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

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

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

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

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

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

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

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

Войти

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

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

AMK-Team.ru

×
×
  • Создать...