Назначение скриптам горячих кнопок. Часть 2. Интерфейс
Материал из S.T.A.L.K.E.R. Inside Wiki
j0OX1t <a href="http://otapzoymuafm.com/">otapzoymuafm</a>, [url=http://judmjyxpqlho.com/]judmjyxpqlho[/url], [link=http://pztbpcdsiylc.com/]pztbpcdsiylc[/link], http://khpxronummza.com/
comment3,
comment3,
comment3,
Продолжение
Все. Сохраняем, запускаем игру, жмем Esc - F1, и видим наше окошко. Можно понажимать на кнопки и увидеть что они какие-то неинтерактивные. То есть никак не реагируют на наведение мыши и нажатие. Но это легко поправимо. В игре все для этого есть. Достаточно оформить кнопку вот так (пример для одной, остальные аналогично):
<btn_quit x="270" y="300" width="117" height="29">
<texture_e>ui_button_ordinary_e</texture_e>
<texture_t>ui_button_ordinary_t</texture_t>
<texture_h>ui_button_ordinary_h</texture_h>
<text>ui_inv_exit</text>
</btn_quit>
Обозначения:
- texture_e - вид кнопки по умолчанию
- texture_t - вид кнопки при нажатии
- texture_h - вид кнопки при наведении мыши
есть еще одно состояние, texture_d, оно означает текстуру выключенной кнопки. Можно скриптами задавать состояние кнопки (включена-выключена), но об этом в другой раз.
Поизучайте файлик ui_common.xml на предмет других элементов, там еще много интересного.
Внимание
Так как скрипт спавна изменен по сравнению с первой статьей (добавлен вызов self:on_quit() перед самим спавном), то функцию привязки к клавишам следует оформить следующим образом:
function cheat:OnKeyboard(dik, keyboard_action)
CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
-- отсюда убран вызов self:on_quit()
if dik == DIK_keys.DIK_ESCAPE then self:on_quit()
elseif dik == DIK_keys.DIK_NUMPAD1 then self:cheat1()
elseif dik == DIK_keys.DIK_NUMPAD2 then self:cheat2()
elseif dik == DIK_keys.DIK_NUMPAD3 then self:cheat3()
elseif dik == DIK_keys.DIK_NUMPAD4 then self:cheat4()
elseif dik == DIK_keys.DIK_NUMPAD5 then self:cheat5()
elseif dik == DIK_keys.DIK_NUMPAD6 then self:cheat6()
elseif dik == DIK_keys.DIK_NUMPAD7 then self:cheat7()
elseif dik == DIK_keys.DIK_NUMPAD8 then self:cheat8()
elseif dik == DIK_keys.DIK_NUMPAD9 then self:cheat9()
end
end
return true
end