Статистика Форума
Последние обновленные темы
Самые популярные темы
Активисты форума
Авторитеты форума
Bioshock 2

Ответил: WurDalaK
Mass Effect

Ответил: greendayone82
Dead Space

Ответил: greendayone82
Беседы у костра

Создал: WurDalaK; ответов: 2105
Вопросы по модострою

Создал: WurDalaK; ответов: 1161
Ходка №1

Создал: Алеся; ответов: 301
Какой трек у вас сейчас и...

Создал: Never; ответов: 65
Злой админ

Создал: WurDalaK; ответов: 54
WurDalaK

Постов: 2057
Возрожденный

Постов: 1621
Wo1fRam

Постов: 592
Алеся

Постов: 183
Marsel

Постов: 174
WurDalaK

Уважение: 28
Venus

Уважение: 23
Never

Уважение: 17
Возрожденный

Уважение: 13
Wo1fRam

Уважение: 13

  • Страница 1 из 1
  • 1
Модератор форума: WurDalaK  
Форум » Уроки по созданию модов » Конфиги, скрипты и прочие мелочи » Вывод сообщения на экран (Без функций АМК)
Вывод сообщения на экран
  WurDalaK
Дата: Четверг, 18.04.2013, 19:35 | Сообщение # 1
Mysterious asari
Статус
Страж
Группа Администраторы
Сообщений 2057
Награды 9
-
28
+
У любого клиентского объекта имеется метод give_game_news Он и выводит сообщения на экран. Экспериментом выяснил, что сообщение можно вывести совершенно от любого клиентского объекта, хоть от куска колбасы (хвала дизайнерскому гению GSC! Ну почему не сделать просто глобальную функцию?). Однако, следуя традиции и здравому смыслу, мы таки воспользуемся для этого объектом, соответствующим ГГ, т.е. актёром.

Код
function sms_bes_amk(first_speaker, second_speaker)
       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                         --длительность показа сообщения (в миллисекундах)
             )
end


Доп. комментарии к аргументам:
give_game_news: имя текстуры - это имя файла DDS без расширения, адресуемого относительно папки \gamedata\textures\ в этом выражении
Frect():set(0,215,163,105) 0,215 - это координаты верхнего левого угла нужного изображения
163,105 - его размеры
Размеры и координаты могут быть любыми, но полученное изображение будет увеличено или уменьшено до размеров 83х47 В данном случае изображение тушкана из файла ui_npc_monster.dds было уменьшено. Параметр времени начала показа нужен, очевидно, для внесения некоторой живости в игру. Дело в том, что код Lua получает управление только в определённые моменты, по определённым событиям. В такой момент можно сгенерить пачку сообщений и раскидать их по времени с помощью этого параметра, создав таким образом некоторую имитацию жизнедеятельности на ближайшее время. Думаю, таким же образом можно имитировать диалоги. Просто генерится пачка сообщений и им задаётся вывод с небольшим интервалом.

Хочешь сказать спасибо? Ставь + в репутацию!
Спрятать подпись Спрятать все подписи
 
Форум » Уроки по созданию модов » Конфиги, скрипты и прочие мелочи » Вывод сообщения на экран (Без функций АМК)
  • Страница 1 из 1
  • 1
Поиск:
Мини-чат
Яндекс.Метрика