Центральные темы





Статистика Форума
Последние обновленные темы Самые популярные темы Самые активные / 6-ка лучших Новые участники / 6-ка новичков
Первые шаг...   Ответов [ 7 ]
Архив ссыл...   Ответов [ 0 ]
Персональн...   Ответов [ 4 ]
Склад с ун...   Ответов [ 0 ]
РП-шим в F...   Ответов [ 12 ]
Создание /...   Ответов [ 6 ]
Бар FireZ...   Ответов [ 89 ]
Игра в гор...   Ответов [ 61 ]
Считаем до...   Ответов [ 49 ]
Скрипт зал...   Ответов [ 21 ]
История зо...   Ответов [ 21 ]
Бар [ Св.О...   Ответов [ 19 ]
Dosegear   Постов [ 9483 ]
Крестоносец   Постов [ 426 ]
CM_Punk   Постов [ 256 ]
Воробей   Постов [ 170 ]
XemorDio   Постов [ 160 ]
Бармен   Постов [ 106 ]
vovankalugin87  [29.11.2023]
taranenkonikita74  [02.05.2023]
artem23096  [04.04.2023]
Stalker228  [26.03.2022]
gkbnk  [24.01.2022]
vbh7820  [07.12.2021]
  • Страница 1 из 1
  • 1
Форум » S.T.A.L.K.E.R Shadow of Chernobyl » Модостроение / Создание модов » Выводим сообщение на экран (Как вывести сообщение на экран без использования функций АМК)
Выводим сообщение на экран
Воробей Дата: Четверг, 08.05.2014, 20:20 | Сообщение # 1

Справедливый сталкер
Ветеран
О-Сознание
Сообщений: 170
Карма:
0
"Как вывести сообщение на экран без использования функций АМК"

У любого клиентского объекта имеется метод give_game_news
Он и выводит сообщения на экран. Экспериментом выяснил, что сообщение можно вывести совершенно от любого клиентского объекта, хоть от
куска колбасы (хвала дизайнерскому гению GSC! Ну почему не сделать просто глобальную функцию?). Однако, следуя традиции и здравому
смыслу, мы таки воспользуемся для этого объектом, соответствующим ГГ, т.е. актёром.

Код
local sactor = alife():actor() --получаем серверный объект актера
local cactor = level.object_by_id(sactor.id) --по его ID получаем клиентский объект актера
cactor:give_game_news(
"Эй, монолитовцы\\nВсе идите к выжигателю. Это приказ!", -- строка сообщение, может быть многострочной
"ui\\ui_npc_monster",        --текстура, из которой берется аватара "отправителя"
Frect():set(0,215,163,105),  --координаты и размеры вырезаемого из текстуры изображения
math.random(1000, 3000),     --начало показа сообщения с текущего момента (в миллисекундах)
5000                         --длительность показа сообщения (в миллисекундах)
)
Доп. комментарии к аргументам give_game_news:
имя текстуры - это имя файла DDS без расширения, адресуемого относительно папки \gamedata\textures\
в этом выражении Frect():set(0,215,163,105)
0,215 - это координаты верхнего левого угла нужного изображения
163,105 - его размеры
Размеры и координаты могут быть любыми, но полученное изображение будет увеличено или уменьшено до размеров 83х47
В данном случае изображение тушкана из файла ui_npc_monster.dds было уменьшено.
Параметр времени начала показа нужен, очевидно, для внесения некоторой живости в игру. Дело в том, что код Lua получает управление только в определённые моменты, по определённым событиям.
В такой момент можно сгенерить пачку сообщений и раскидать их по времени с помощью этого параметра, создав таким образом некоторую имитацию жизнедеятельности на ближайшее время.
Думаю, таким же образом можно имитировать диалоги. Просто генерится пачка сообщений и им задаётся вывод с небольшим интервалом.


Мы сталкеры - мы сила.
Будь сталкером до конца, мы уничтожим бандитов.


Сообщение отредактировал Воробей - Четверг, 08.05.2014, 21:03
Форум » S.T.A.L.K.E.R Shadow of Chernobyl » Модостроение / Создание модов » Выводим сообщение на экран (Как вывести сообщение на экран без использования функций АМК)
  • Страница 1 из 1
  • 1
Поиск:
01:56
Обновить
Пользователи, посетившие форум за текущий день




Design by Dosegear
Бесплатный конструктор сайтов - uCoz © 2014
Любое копирование графических материалов форума
Приведет в быстрому или медленному наказанию!

Яндекс.Метрика