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

Сборочный цех


Zander_driver

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

https://yadi.sk/d/dZNjgRAtinEjU

Вер. 1.14

Скрипт для тайминга скриптов имеющий апдейт. Для ТЧ(1.000*), ЧН(1.5.*), ЗП(1.6.*). Для ТЧ возможно может работать и в предрелизных билдах, на лост альфе не тестировался.

Для определения общей загрузки скриптами ЦП, используется алгоритм следующий: в начале фрейма  самый первый скрипт (апдейт актора) запускает общий таймер и каждый следующий скрипт отработав, запоминает время, и если в тайминг включён скрипт который выполнился самым последним (как правило это сам апдейт этого скрипта) , то фиксируем общее время выполнения скриптовой части движка. Время обычно это не мало, 40-60%, а на пустом уровне 12%(ТЧ), не зря разработчики жаловались на движок XRay, что слишком за скриптован.

Замеченные проблемы, может конфликтовать с некоторыми скриптами отрабатывающие эффекты поедание съедобных предметов.

 

https://yadi.sk/d/sdLew6XKqLuzF

Вер. 1.15

Тайминг скриптов.

Устранил вылет из-за отсутствия функции round в моде OGSE 0693, заменена на math.floor. Немного возросло быстродействия скрипта.
Изменено пользователем НаноБот
объединил посты
  • Спасибо 1
  • Нравится 1

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

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


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

Возможно кому то понадобиться.

--[[---------------------------------------------------------------------------
		Различные утилиты.
Для С.Т.А.Л.К.Е.Р. Тень Чернобыля.
(с) НаноБот									19.11.2016
--]]---------------------------------------------------------------------------

--------------------------Вывод текста на экран.-------------------------------
local x_text, y_text, time_update, hud
local hud_text, outtext_count, outtext_num
local hud_textxy, outtextxy_count, outtextxy_num
local color, height_font, type_font
--- создать текстовый вывод: x, y - координата начала вывода
function	create_hud_outtext(...)
	local args 		= {...}
	x_text			= args[1] or 0
	y_text			= args[2] or 0
	color			= args[3] or {255, 225, 215, 0}	-- золотистый ц.
	height_font		= args[4] or 20
	type_font		= args[5] or GetFontLetterica16Russian()
	align_text		= args[6] or CGameFont.alLeft
	y_text			= y_text - height_font
	hud				= get_hud()
	time_update		= 0
	outtext_count	= 0
	hud_text		= {}
	outtextxy_count	= 0
	hud_textxy		= {}
end
--- удалить тестовый вывод: is_del - надо ли удалять
function	destroy_hud_outtext(is_del)
	if is_del then
		if hud_text then
			for i = 1, outtext_count do
				hud:RemoveDialogToRender(hud_text[i])
			end
			hud_text		= nil
			outtext_count	= nil
			outtext_num		= nil
		end
		if hud_textxy then
			for i = 1, outtextxy_count do
				hud:RemoveDialogToRender(hud_textxy[i])
			end
			hud_textxy		= nil
			outtextxy_count	= nil
			outtextxy_num	= nil
		end
		x_text			= nil
		y_text			= nil
		hud				= nil
		time_update		= nil
		color			= nil
		height_font		= nil
		type_font		= nil
	end
end
--- вывести текст на экран: out - надо ли выводить, txt - текст, ... - параметры
function	hud_outtext(out, txt, ...)
	if out and hud_text then
		if time_update ~= time_global() then	-- new update
			outtext_num = 0
			time_update = time_global()
		end
		outtext_num = outtext_num + 1
		if outtext_num > outtext_count then	-- new outtext
			outtext_count = outtext_num
			hud_text[outtext_num] = CUIStatic()
			hud_text[outtext_num]:Init(x_text, outtext_num*height_font+y_text, 1, 1)
			hud_text[outtext_num]:SetFont(type_font)
			hud_text[outtext_num]:SetTextAlign(align_text)
			hud_text[outtext_num]:SetTextColor(color[1], color[2], color[3], color[4])
			hud:AddDialogToRender(hud_text[outtext_num])
		end
		hud_text[outtext_num]:SetText(string.format(txt, ...))
	end
end
--- вывести текст на экран в нужную координату: out - надо ли выводить, x, y - координаты, txt - текст, ... - параметры
function	hud_outtext_xy(out, x, y, txt, ...)
	if out and hud_textxy then
		if time_update ~= time_global() then	-- new update
			outtextxy_num = 0
			time_update = time_global()
		end
		outtextxy_num = outtextxy_num + 1
		if outtextxy_num > outtextxy_count then	-- new outtext
			outtextxy_count = outtextxy_num
			hud_textxy[outtextxy_num] = CUIStatic()
			hud_textxy[outtextxy_num]:Init(x, y, 1, 1)
			hud_textxy[outtextxy_num]:SetFont(type_font)
			hud_textxy[outtextxy_num]:SetTextAlign(align_text)
			hud_textxy[outtextxy_num]:SetTextColor(color[1], color[2], color[3], color[4])
			hud:AddDialogToRender(hud_textxy[outtextxy_num])
		else
			hud_textxy[outtextxy_num]:SetTextX(x)
			hud_textxy[outtextxy_num]:SetTextY(y)
		end
		hud_textxy[outtextxy_num]:SetText(string.format(txt, ...))
	end
end
-------------------------------------------------------------------------------
 

 

 

Делал по мотивам билда 1098, выводится отладочный текст на экран.

Типа так.

_unb.hud_outtext(out, "mYawVelocity: %.6f, dt: %.3f", self.mYawVelocity, dt)

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

Изменено пользователем НаноБот
  • Полезно 3

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

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


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

Командное меню.
https://yadi.sk/d/JaMDyEHy3RCEHs
Используется для управление напарниками, нанокостюмом, хенами и так далее.

Управление в игре:
Нажмите клавишу вызова конкретного меню, далее выберете номер команды цифрами на основной клавиатуре. Повторное нажатие на клавишу открытия меню, закрывает меню без вызова команды.

Управление сходно с движковым меню. В скритах номера меню и команд задаётся от 1. Так же можно задать озвучку команды, по легенде ГГ даёт команды напарникам именно по радио голосом, через радиогарнитуру, которую используют СпН.
Как подключить?, смотрите в файле Подключения.txt

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

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

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


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

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

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