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

[SoC] Ковыряемся в файлах


Halford

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

 Мне нужен урок (или правка) как сделать звук для прихода сообщения.

...

 

пример "универсального посылателя" новостей для SoC :)

 

 

 

--[[
-- Выдаем на экран новость с указанным текстом, заголовком, иконкой и звуковым сопровождением.
-- @param	string		sText		текcт новости.
-- @param	string		sTitle		заголовок новости.
-- @param	string		sSnd		название звукового сигнала который проиграется при выдаче новости.
-- @param	string		sSdr		название иконки отправителя новости - список некоторых иконок собран в массив aIcons.
--]]

function SendMeGameNews(sText, sTitle, sSnd, sSdr)
	if not sText then -- если нет текста
		return; -- ничего не делаем, работа скрипта закончена
	end
	if not sTitle then -- если не указан заголовок
		sTitle = "Сообщение"; -- присвоим заголовок по умолчанию
	end
	if not sSdr then -- если не указана иконка
		sSdr = "default";	-- вставим стандартную иконку	
	end	
	
	-- Составим заголовок и текст новости. Здесь параметр [255,160,160,160] задает цвет заголовка (ARGB), а [default] - цвет текста новости по умолчанию (т.е. белый)
	local sMsg = "%c[255,160,160,160]"..tostring(sTitle).."\\n".."%c[default]"..tostring(sText);
	
	-- Пример массивчика с набором координат иконок для новостей (из файла \textures\ui\ui_iconstotal.dds)
	local aIcons = {
	default  	= {0, 658},
	money   	= {0, 0},
	sidor   	= {332, 893},
	ecolog   	= {498, 0},
	barman   	= {332, 235},
	saharov  	= {332, 470}
	};
	
	-- Пример назначения строкового параметра для звукового сигнала, который нужно проиграть.
	local oPdaSnd
	if sSnd == "news" then 
		oPdaSnd = xr_sound.get_safe_sound_object([[device\pda\pda_news]]); -- звук новости
	elseif sSnd == "task" then 
		oPdaSnd = xr_sound.get_safe_sound_object([[device\pda\pda_tip]]); -- звук заметки
	else 
		oPdaSnd = xr_sound.get_safe_sound_object([[device\pda\pda_objective]]); -- если не указан - звук по умолчанию
	end 
	-- Проиграем выбранный звуковой сигнал...
	oPdaSnd:play(db.actor, 0, sound_object.s2d);
  
	-- ... и отправим на экран составленную новость.
	db.actor:give_game_news(sMsg, "ui\\ui_iconstotal", Frect():set(aIcons[sSdr][1],aIcons[sSdr][2],83,47), 0, 15000); -- здесь 15000 - длительность отображения в миллисекундах (т.е. 15 сек)
end

--[[
-- Примеры вызова:

SendMeGameNews("Текст", "Проверка", "news", "money") -- выведет новость "Текст" с заголовоком "Проверка", звуком "news" и иконкой money из массивчика

SendMeGameNews("Задан только текст")  -- выведет новость "Задан только текст" с заголовоком "Сообщение", звуком по умолчанию и иконкой default из массивчика
--]]

 

 

 

разбирайся... :)

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

Asus ROG Strix B550-F Gaming /  Ryzen-5 5600X / 2x16 DDR4 / M2 Samsung 980 PRO / MSI RTX-3070 (8Gg) / LG UHD

Asus Sabertooth 990FX v2 / AMD FX-6300 / 2x8Gb DDR3 / SSD Plextor / MSI GTX-1650 (4Gb) / LG 4K

 

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


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

да он о респавне, скорее всего... т. е. se_respawn.script...  так он общий для всех локаций...

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

Asus ROG Strix B550-F Gaming /  Ryzen-5 5600X / 2x16 DDR4 / M2 Samsung 980 PRO / MSI RTX-3070 (8Gg) / LG UHD

Asus Sabertooth 990FX v2 / AMD FX-6300 / 2x8Gb DDR3 / SSD Plextor / MSI GTX-1650 (4Gb) / LG 4K

 

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


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

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