Назначение скриптам горячих кнопок. Часть 2. Интерфейс — S.T.A.L.K.E.R. Inside Wiki

Назначение скриптам горячих кнопок. Часть 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

Ссылки

Другие места
LANGUAGE