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

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

 

 

Обновил подборку модулей...

Правки других авторов, проскальзывавшие в этой или других темах в разное время, взяты в полной мере

Луа-расширения используются ?

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

@UnLoaded, только скриптовые в составе модуля lua_helper. В описании всё есть.

Свои работы и совместные проекты: ИнструментOGSM CSFinal StrokeHARDWARMOD

Полезное: модули АртосаXML парсер

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

 

 

Правки других авторов, проскальзывавшие в этой или других темах в разное время, взяты в полной мере.

 

Не исправлена проблема с комментариями в custom_data. Взял исправления не проверив и сейчас опять получил этой же граблей по лбу.

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

@dsh, вот точно помню, что исправлял! Аккурат тогда, когда прочёл сообщение об этой ошибке.

Видимо, исправление «потерялось» во время интеграции правок от naxac.

Спасибо, что сообщил, обновил выложенные сборки.

Свои работы и совместные проекты: ИнструментOGSM CSFinal StrokeHARDWARMOD

Полезное: модули АртосаXML парсер

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

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

--[[---------------------------------------------------------------------------
		Различные утилиты.
Для С.Т.А.Л.К.Е.Р. Тень Чернобыля.
(с) НаноБот									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

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

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

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

Скриптовый модуль из мода "Новое Время".
Кроме давно известных и банальных вещей содержит скриптовую систему заменяющую стандартный story_id. Подробнее в файле. Никаких адаптаций и подключений не требует. Для функцианирования некоторых плюшек могут понадобится: расширения LUA открывающие пространства имен io,  os(копирование файлов), X-Ray extensions(спавн со story_id). (Для аналога story_id дополнительные правки не нужны).
Ссылка.
Использовать везде с указанием автора.

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

@Graff46, мнения расходятся.
Лично я пользуюсь модулем, выложенным в этом посте - это последняя версия, опубликованная Артосом, для неё форумчанами также были сделаны исправления ряда найденных ошибок.
Если не ошибаюсь, данный модуль также получил некоторое развитие в каком-то из модов, одним из авторов которого является @naxac, но какие там были сделаны добавки, общие или частные, нужно спрашивать у него.
С другой стороны, насколько мне известно, автор данной темы @Zander_driver по некоторым причинам пользуется более старой версией модуля.
ИМХО, стоит начать с m_netpk, а уж если что-то не устроит - переходить на иное.

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

Свои работы и совместные проекты: ИнструментOGSM CSFinal StrokeHARDWARMOD

Полезное: модули АртосаXML парсер

Ссылка на комментарий
@Graff46,соглашусь. m_netpk работает. Я использовал и m_net_utils и еще какой-то скрипт от xstream. В принципе все работают. Сейчас использую m_netpk. Единственное, если ты иногда захочешь в custom data писать данные не в формате ini, то m_netpk на это не рассчитан. Но в этом случае я бы посоветовал пересмотреть свои желания.
Ссылка на комментарий

@Kirgudu, Я пытался работать с m_netpk, но что то не заладилось, работаю с xrs_utils.script. А вообще в многих модулях для работы требуется отдельный LTX  файл, в котором записаны классы объектов. Я нашел способ изменить class_registrator.script и читать классы из него, и если моддер добавляет свои объекты\классы, то нет необходимости возиться еще с LTX. Вот и хочу узнать на какой скрипт лучше свою фитчу навесить...

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

@Graff46, m_netpk всё-таки наиболее современный, в нём самим Артосом было исправлено много ошибок и сделано много доработок по сравнению с m_net_utils. Повторюсь, если уж начинать, то с него. ИМХО, конечно.
Скрипт xStream не щупал, про его плюсы и минусы ничего сказать не могу.

Свои работы и совместные проекты: ИнструментOGSM CSFinal StrokeHARDWARMOD

Полезное: модули АртосаXML парсер

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

@dsh, так это всё тогда совместно обсуждалось и разрабатывалось. Согласен, не исключено что xStream была своего рода первопроходцем. Не в курсе деталей, но по истории форума при желании проследить, думаю, можно.

Кстати,

если ты иногда захочешь в custom data писать данные не в формате ini

что имеешь в виду? Запись/чтение голой строки "as is", без внутреннего парсинга с попутной потерей неканонических данных? Если есть необходимость, такой форсированный режим добавить не сложно.

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

Свои работы и совместные проекты: ИнструментOGSM CSFinal StrokeHARDWARMOD

Полезное: модули АртосаXML парсер

Ссылка на комментарий
такой форсированный режим добавить не сложно

 

Я не говорю, что сложно. Просто человеку, который только собирается использовать m_netpk, лучше об этом знать заранее, а то захочет прочитать custom data, в которой данные не в формате ini, и будет голову ломать, чего же ему :getString() возвращает пустую строку.

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

@Graff46, в совершенно любом. К примеру, в соляночных (в старой солянке) контейнерах артефактов все данные хранятся одной строкой. Просто строкой, секции артефактов через запятую.

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

@Graff46, а вот это как раз и есть формат ini, который m_netpk понимает и парсит для тебя в таблицу при чтении нет-пакета.


Update:

Хотел было по-быстрому добавить в m_netpk поддержку произвольной строки, но, заглянув в скрипт, понял, что это не обязательно.
В конфиге m_netpk.ltx есть такой параметр:

disable_convert_custom_data   = false ;--/ отключить конвертирование 'custom_data' из строки в таблицу (и обратно)

Если поставить здесь true - кастом дата всегда будет представлена только в виде строки. И если уж конкретный скриптёр знает, зачем писать туда данные не в формате ini, ему не составит труда оперировать строками в том числе и для канонических данных.

Свои работы и совместные проекты: ИнструментOGSM CSFinal StrokeHARDWARMOD

Полезное: модули АртосаXML парсер

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

@Kirgudu, это не то. Когда я писал, то имел ввиду, что для некоторых случаев может понадобиться доступ к сырой строке. Ну вот как в моем примере, все в ini, а для контейнеров используется свой формат. Эта же опция переключает поведение глобально. По хорошему, там бы добавить методы :getStringRaw() и :setStringRaw() или что-то вроде того.

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

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

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

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

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

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

Войти

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

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

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

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