Текстовые сообщения на экран
Материал из MODFAQ.RU — моддинг S.T.A.L.K.E.R., TES и Fallout
Текстовые сообщения на экран | |
Автор | FantomICW, Zeka1996Korneev |
Дополнил | aka_sektor |
Тип статьи | руководство |
Актуальность | ТЧ, ЧН, ЗП |
Необходимый софт | Текстовый редактор |
Связанная статья | |
Вызов функции |
Чтобы вывести на экран одно или несколько текстовых сообщений, необходимо создать скрипт со специальной функцией и добавить её вызов. Создать скрипт можно любым текстовым редактором, просто сохраните текстовый файл в формате *.script
Путь: gamedata\scripts\script_name.script
В созданный скрипт, вставьте следующий код[1]:
function funct_name()
news_manager.send_tip(db.actor, "text", 0, "default", 10000)
end
-
funct_name
— имя вашей функции, оно же используется для вызова. Пишется только по-английски и без пробелов. Вместо пробелов используйте знак подчеркивания (_
). -
news_manager.send_tip
— стандартная функция использующаяся для вывода сообщений.
Аргументы функции:
-
db.actor
— глобальная переменная. -
text
— текст сообщения.
Рекомендуется указыватьstring id
, который читается из *.xml файлов, находящихся по пути gamedata\configs\text указанной параметромlanguage
папки, в секции файла localization.ltx
Иначе не будут работать дополнительные параметры (см. ниже) -
0
— число в секундах, которое задает задержку времени перед тем, как сообщение появится на экране (в данном случае равно0
, т.е без задержки). -
default
— имя иконки сообщения из скрипта news_manager.script (см. строкуtips_icons
) -
10000
— число (в миллисекундах), которое задает длительность отображения сообщения на экране до момента исчезновения(в данном случае равно 10 секундам).
Дополнительные параметры для текста:
- Чтобы изменить цвет текста, поместите нужную часть между тегами
%c[255,255,128,128]
и%c[default]
.
Значения в квадратных скобках[255,255,128,128]
, это RGB код цвета. - Чтобы перенести текст на следующую строку, поставьте перед ним тег
\n
Множество сообщений подряд[2]
Если возникла необходимость имитации переписки сталкеров по КПК, используйте подобную функцию:
function funct_name()
news_manager.send_tip(db.actor, "Ну как хабар?", nil, "default", 6000)
news_manager.send_tip(db.actor, "Норм, нашел арт.", 4, "default", 6000)
news_manager.send_tip(db.actor, "Гуд.", 8, "default", 6000)
end
Итого, что происходит в переписке:
- у первого сообщения задержки нет
- у второго задержка = 4 секунды от запуска функции
- у третьего задержка = 8 секунд от запуска функции = 4 секунды после второго сообщения
Стоит также заметить, что функции запускаются одна за другой, а не одновременно, так что интервал между сообщениями будет
чуть больше (почти незаметно), чем указано в аргументе.