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

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

@Norman Eisenherz, В x-ray extensions вроде можно скриптами включать\отключать ПНВ

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


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, DoberBull сказал:

как сделать так, чтобы фонарики НПС не гасли после их смерти, а оставались светить

Смотри в xr_motivator.script ф-цию motivator_binder:death_callback, в ней есть

sr_light.check_light(self.object)
...    
death_manager.drop_manager(self.object):create_release_item()

В sr_light может быть отключение фонарика у померших, а в death_manager может быть удаление фонарика из инвентаря моба, соответственно отключение по факту удаления.

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


Ссылка на сообщение
Поделиться на других сайтах

Из X-Ray extensions:

send_event_key_press(int<DIK_keys>) - имитация события нажатия кнопки

Как именно применить это на практике? Допустим, при нажатии клавиши F3 нужно вызвать какое-то действие. Как это сделать?

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

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


Ссылка на сообщение
Поделиться на других сайтах
В 18.11.2018 в 17:48, Fenrir02 сказал:

Как именно применить это на практике?

@Fenrir02,

в нужную функцию вставляем:

level.send_event_key_press(DIK_keys.DIK_F3) 

-- вместо "DIK_F3" может быть любая другая клавиша.

 

Результатом будет имитация нажатия,

как будто ты нажал на кл."F3" (не касаясь пальцем физически).

 

Только вот не помню, должна ли быть локация загружена в этот  момент,

так как используется пространство "level".

На всякий, может проверку поставить, типа "if level then ... end"

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


Ссылка на сообщение
Поделиться на других сайтах

И снова здравствуйте!

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

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

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


Ссылка на сообщение
Поделиться на других сайтах

Какая платформа? Для ЗП делал так: bind_campfire.script:

function turn_off_campfire_by_name(name)
	if name then
		local campfire = campfire_table_by_name[name]
		if campfire and campfire:is_on() then
			campfire:turn_off()
		end
	end
end

function turn_on_campfire_by_name(name)
	if name then
		local campfire = campfire_table_by_name[name]
		if campfire and not campfire:is_on() then
			campfire:turn_on()
		end
	end
end

В самом верху объявил массив:

campfire_table_by_name = {}

В методе net_spawn заполняем его:

campfire_table_by_name[self.object:name()] = self.campfire

Собственно, использование:

bind_campfire.turn_off_campfire_by_name("campfire_name")
bind_campfire.turn_on_campfire_by_name("campfire_name")

 

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

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


Ссылка на сообщение
Поделиться на других сайтах

@Overfirst

Нет, не в ЗП. Мне нужно для ТЧ, а там биндера костров нет.

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

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


Ссылка на сообщение
Поделиться на других сайтах

@Fenrir02, был такой Dynamic campfire mod от kstn. Посмотри, как там реализовано, и переработай под свои нужды.

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


Ссылка на сообщение
Поделиться на других сайтах

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

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

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) и далее...

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

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


Ссылка на сообщение
Поделиться на других сайтах
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

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

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


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем I am Dead

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


Ссылка на сообщение
Поделиться на других сайтах

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

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


Ссылка на сообщение
Поделиться на других сайтах

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

jpwsa5byp73nyaufrbis15dcci1y.png
 

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


Ссылка на сообщение
Поделиться на других сайтах

Получить состояния тела ГГ можно примерно вот так 

https://github.com/dsh2dsh/op2ogse/blob/63e3502e12281fb8f236be72cac64276680d2b35/gamedata/scripts/_g.script#L3010

движок OGSR

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


Ссылка на сообщение
Поделиться на других сайтах

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

if body_state == sprint 

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

jpwsa5byp73nyaufrbis15dcci1y.png
 

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


Ссылка на сообщение
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

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