Что нужно для работы:
1. Распаковщик ресурсов.
2. Блокнот, notepad ++. Я работаю с нотепадом т. к. у него есть подсветка синтаксиса.
3. Прямые руки. Кривые не подойдут.
4. Светлая голова.
5. Терпение.
Методом проб и ошибок научился выводить сообщения на экран, сейчас распишу как:
Для вывода сообщения на экран нужен любой исполняемый файл, к примеру возьмем
файл gamedatascriptsui_main_menu.script - все файлы *.script написаны на языке LUA.
Итак приступим:
Находим в файле вот это:
function main_menunKeyboard(dik, keyboard_action) --virtual function
CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
local bind = dik_to_bind(dik)
local console = get_console()
if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
if dik == DIK_keys.DIK_ESCAPE then
if level.present() and
( ((db.actor ~= nil)and(db.actor:alive())) or
(false==IsGameTypeSingle())
) then
self.OnButton_return_game() --' xStream 02.2008
-- console:execute("main_menu off") --' xStream 02.2008
end
end
-- if dik == DIK_keys.DIK_S then
-- selfnButton_load_spawn()
-- else
if dik == DIK_keys.DIK_Q then
selfnMessageQuitWin()
end
end
return true
end
И вставляем вот это:
elseif dik == DIK_keys.DIK_F1 then
self:sms()
Под это:
if dik == DIK_keys.DIK_Q then
selfnMessageQuitWin()
Должно получится вот так:
function main_menunKeyboard(dik, keyboard_action) --virtual function
CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
local bind = dik_to_bind(dik)
local console = get_console()
if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
if dik == DIK_keys.DIK_ESCAPE then
if level.present() and
( ((db.actor ~= nil)and(db.actor:alive())) or
(false==IsGameTypeSingle())
) then
self.OnButton_return_game() --' xStream 02.2008
-- console:execute("main_menu off") --' xStream 02.2008
end
end
-- if dik == DIK_keys.DIK_S then
-- selfnButton_load_spawn()
-- else
if dik == DIK_keys.DIK_Q then
selfnMessageQuitWin()
elseif dik == DIK_keys.DIK_F1 then
self:sms()
end
end
return true
end
Далее пишем в самый конец файла:
function main_menu:sms()
sms.sms()
end
Сохраняем и помещаем файл в gamedatascripts
Теперь создадим файл sms.txt и переименуем его в sms.script
Откроем и впишем в него:
function sms()
local text
local a = vector()
local text
a = db.actor:position()
text = "%c[239,255,6,13]Свободу тушканчикам!nТушканчики всех стран объединяйтесь!"
news_manager.send_tip(db.actor, text, nil, nil, 30000)
end
Сохраняем и помещаем файл в gamedatascripts
Поясняю строчки:
text = "%c[239,255,6,13]Свободу тушканчикам!nТушканчики всех стран объединяйтесь!"
news_manager.send_tip(db.actor, text, nil, nil, 30000)
%c[239,255,6,13] - цвет шрифта
Свободу тушканчикам! - сообщение
n - перенос сообщения на другую строчку
30000 - время показа сообщения в милисекундах
Теперь заходим в игру, начинаем новую игру после того как игра загрузилась выходим в главное меню ESC
жмём F1 возвращаемся в игру и видим своё сообщение, таким образам можно вызвать сообщение хоть от куска колбасы.
P.S. Если кто знает как сменить иконку сообщения напишите в личку
Автор статьи (_MeX@NiC_) или Штайнэр.
1245 Прочтений • [Вывод сообщения на экран (#6517)] [16.05.2012] [Комментариев: 0]