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

Материал из 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, "ТЕКСТ", 10, "default", 20000)
end
  • funct_name — имя вашей функции, оно же используется для вызова. Пишется только по-английски и без пробелов. Вместо пробелов используйте знак подчеркивания (_).
  • news_manager.send_tip — стандартная функция использующаяся для вывода сообщений.

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

  1. db.actor — глобальная переменная.
  2. ТЕКСТ — текст сообщения.
  3. 10 — число в секундах, которое задает задержку времени перед тем, как сообщение появится на экране.
  4. default — имя иконки сообщения из скрипта news_manager.script (см. строку tips_icons)
  5. 20000 — число (в миллисекундах), которое задает длительность отображения сообщения на экране до момента исчезновения.

Дополнительные параметры для текста:

  • Чтобы изменить цвет текста, поместите нужную часть между тегами %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 секунды после второго сообщения

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

Источники