Как вывести на экран текстовые сообщения

Материал из Modders-wiki - Библиотека знаний модмейкеров S.T.A.L.K.E.R.
Перейти к: навигация, поиск
Unpack.pngТребуется распакованная gamedata
Перед тем, как приступить, предварительно распакуйте игровые архивы.
Без наличия оригинальных файлов, внести в них изменения не получится!


Как вывести на экран текстовые сообщения
Описание
АвторFantomICW, Zeka1996Korneev
Редакцияaka_sektor
Тип статьируководство
АктуальностьТЧ, ЧН, ЗП
Необходимый софтТекстовый редактор
Связанная статья
Способы вызова функции

Чтобы вывести на экран одно или несколько текстовых сообщений, необходимо создать скрипт со специальной функцией и добавить её вызов. Создать скрипт можно любым текстовым редактором, просто сохраните текстовый файл в формате *.script
Путь: gamedata\scripts\script_name.script

В созданный скрипт, вставьте следующий код[1]:

function funct_name()
    news_manager.send_tip(db.actor, "ТЕКСТ", 0, "default", 10000)
end
  • funct_name — имя вашей функции, оно же используется для вызова. Пишется только по-английски и без пробелов. Вместо пробелов используйте знак подчеркивания (_).
  • news_manager.send_tip — стандартная функция использующаяся для вывода сообщений.

Аргументы функции:

  1. db.actor — глобальная переменная.
  2. text — текст сообщения.
    Рекомендуется указывать string id, который читается из *.xml файлов, находящихся по пути gamedata\configs\text указанной параметром language папки, в секции файла localization.ltx
    Иначе не будут работать дополнительные параметры (см. ниже)
  3. 0 — число в секундах, которое задает задержку времени перед тем, как сообщение появится на экране (в данном случае равно 0, т.е без задержки).
  4. default — имя иконки сообщения из скрипта news_manager.script (см. строку tips_icons)
  5. 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 секунды после второго сообщения

Стоит также заметить, что функции запускаются одна за другой, а не одновременно, так что интервал между сообщениями будет чуть больше (почти незаметно), чем указано в аргументе.

Источники

  1. Пост пользователя "XMK" на AMK форуме
  2. Тема "Modmaker's Notes™" на форуме AP Production