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

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

Да, этот мод у меня как раз и стоит.
Функция, которая разжигает костёр при присутствии хотя бы одного НПС такая:

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

function CKampManager:increasePops(npc)
	self.population = self.population + 1
	local camp_name = camp_tbl[self.kamp_name]
	if self.population == 1 and camp_name then
		local flame_name = camp_name.flame
		local light_name = camp_name.light

		kamps_info[self.kamp_name] = nil
		if not kamps_info[self.kamp_name] then
			kamps_info[self.kamp_name] = {}
			kamps_info[self.kamp_name].time = time_global()
			kamps_info[self.kamp_name].prtcl = nil
			kamps_info[self.kamp_name].state = nil
		end

		for i,o in pairs(level_objs) do
			local obj = o
			if obj and obj:name() == flame_name then
				kamps_info[self.kamp_name].obj_fire = obj
				obj:enable_anomaly()
			end
			if obj and obj:name() == light_name then
				kamps_info[self.kamp_name].obj_light = obj
			end
		end
	end
end

 

(файл xr_kamp.script)
А вот как сделать проверку на приближение ГГ к костру ума не приложу...

Важнейшая задача цивилизации - научить человека мыслить.

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

А вот как сделать проверку на приближение ГГ к костру ума не приложу...

А зачем именно на приближение? - Почему бы не дёрнуть функцию розжига костра ГГ из СоС? Или попробовать перенести полностью биндер костров?

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

@Romann
Я думал об этом, тем более это даже более логично. Но возможно ли реализовать данную фичу на ТЧ?

Важнейшая задача цивилизации - научить человека мыслить.

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

как с помощью скрипта разжечь костёр, к которому подходит ГГ на определённое расстояние?

В НС 2016 это сделал Сапсан ещё в 2015 году. 

Даже с анимацией разжигания. Смотри файл xr_kamp.script. Там есть все комментарии.

Здесь - class "evaluator_see_kampfire" (property_evaluator) и далее...

  • Полезно 2

"Кругом зомби.....у меня кончаются патроны...."

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

Но возможно ли реализовать данную фичу на ТЧ?

Думаю возможно, то и дело между платформами "тягают" фичи туда-сюда, ещё и не такой сложности, тут вопрос другой - придётся ли при этом "поправлять" движок.... Если есть возможность вносить правки в движок - то в любом случае проблем не должно возникнуть.

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

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

придётся ли при этом "поправлять" движок.

Не надо вносить правки в движок для розжига костров.

Вот нашёл видео от тестера Соли. Там всё видно - https://youtu.be/neKqhDb919U

  • Нравится 2

"Кругом зомби.....у меня кончаются патроны...."

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

Парни кто  может  помочь  сделать быстрые слоты(подобные зп чтобы можно было в ячейку перемещать предмет а не как в dmx mod выбирать предмет из списка).

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

Доброго времени! Возможно ли скриптово в теории заставить НПС использовать патроны из своего инвентаря? Чтобы они не бесконечно стреляли, к примеру? 

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

Привет всем, нужна помощь касательно скриптов. Пытаюсь запилить модель в полный рост в инвентаре актора как в билде 1537, естественно с помощью текстур. Вопрос такой, как с помощью скрипта отследить положение ГГ в настоящий момент ? Пример ф-ции. Если актор сидит, то заставить делать вот это, если актор в спринте, то вот то, если в полном присяде то третье. Примерно так, если я понятно выразился

jpwsa5byp73nyaufrbis15dcci1y.png
 

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

@lordmuzer спасибо, как раз то что нужно. А как проверить какое состояние в настоящий момент, например проверить на спринт ?

if body_state == sprint 

будет работать ?

jpwsa5byp73nyaufrbis15dcci1y.png
 

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

Можно проще

local is_running = get_actor_obj():is_actor_sprinting()

if is_running then

end

Spoiler

.def("is_actor_normal",                        &CActor::is_actor_normal)
.def("is_actor_crouch",                        &CActor::is_actor_crouch)
.def("is_actor_creep",                        &CActor::is_actor_creep)
.def("is_actor_climb",                        &CActor::is_actor_climb)
.def("is_actor_walking",                    &CActor::is_actor_walking)
.def("is_actor_running",                    &CActor::is_actor_running)
.def("is_actor_sprinting",                    &CActor::is_actor_sprinting)
.def("is_actor_crouching",                    &CActor::is_actor_crouching)
.def("is_actor_creeping",                    &CActor::is_actor_creeping)
.def("is_actor_climbing",                    &CActor::is_actor_climbing)
.def("is_actor_moving",                        &CActor::is_actor_moving)

 

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

Как можно заставить этот статик мигать -

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

	hud = get_hud()
	act = db.actor
	if act.health < 0.8 and act.health > 0.4 then
		hud:AddCustomStatic("hud_health_static", true):wnd():SetColor(GetARGB(255,0,255,0))
	else
		hud:RemoveCustomStatic("hud_health_static")
	end

 

 

Важнейшая задача цивилизации - научить человека мыслить.

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

заставить этот статик мигать

В xml-описании "hud_health_static" добавить соответствующие теги. Подсмотреть в оригинальных статиках как это сделать.

  • Спасибо 1
Ссылка на комментарий
<text_on_screen_center x="212" y="300" width="600" height="68" complex_mode="1" light_anim="ui_slow_blinking_alpha">
	<text font="graffiti32"  r="240" g="217" b="182" a="255" align="c"/>
</text_on_screen_center>

Световая анимация ui_slow_blinking_alpha. Не знаю, есть ли она в ТЧ, если вопрос по этой платформе.

  • Спасибо 1

Ранее был известен под ником BoBaH_671.

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

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

function have_krots_flash(task, objective)
    if db.actor:object("krot_flash") ~= nil then
       db.actor:give_info_portion ("agr_krot_task_complete")
       return true
    end   
	return false
end

 

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

Имеется такая функция рандомного удаления предметов из инвентаря:

function release_random_item(num)
	local actor = db.actor
	local cnt = actor:object_count()
	if cnt < num then return end
	for i=1,num do
		local item = actor:object(math.random(0, cnt-1))
		local sobj = alife():object(item:id())
		if sobj then
			alife():release(sobj,true)
			cnt = actor:object_count()
		end
	end
end

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

Важнейшая задача цивилизации - научить человека мыслить.

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

@Fenrir02, Как предметы указывать будите? (ид, имя секции, .... ?)

 

@stalkergoshawk, Если x-ray extensions есть в движке, то у серверного объекта есть свойство angle, к нему нужно приравнять вектор, который укажет направление.

alife():create("stalker", vector():set(0,0,0,), 0, 0).angle = vector():set(0, 1.5, 0)

Если x-ray extensions нет, то нэт-пакетами.

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

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

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

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

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

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

Войти

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

Войти
×
×
  • Создать...