GUI. Выбор группировки - cуть заключается в том, чтобы при первом же разговоре с Тропником, выводился интерфейс и игрок сам - смог выбрать группировку.
Создаем новый скрипт и примеру назовем его ui_selecting_grouping.script открывай его и вставляем:
Код
lass "selecting_group" (CUIScriptWnd) -- Регистрация нового класса GUI элемента
function main() -- Даем отсылки на запуски GUI local hud = selecting_group(get_hud()) -- Вывод на худ всего нашего GUI level.start_stop_menu(hud, true) -- Возможность закрыть интерфейс end
function selecting_group:__init()super() -- Иницилизиция класса self:InitControls() -- Отсылка к функции регистрации элементов окна self:InitCallBacks() -- Отсылка к функции регистрации коллбеков end
function selecting_group:__finalize() -- Завершения работы нового класса end
function selecting_group:InitControls() -- Иницилизации элементов окна self:SetWndRect(Frect():set(233,197,1024,768)) -- Установка размера окна local xml = CScriptXmlInit() -- Возможность регистрации новый *xml файлов xml:ParseFile("ui_selecting_grouping.xml") -- Регистируем новый *xml файлы через наш скрипт xml:InitStatic("background", self) -- Основной фон xml:InitStatic("static_name", self) -- Надпись "Выберите группировку" xml:InitStatic("texture_static_1", self) -- Иконка Сталкера xml:InitStatic("texture_static_2", self) -- Иконка Бандита xml:InitStatic("texture_static_3", self) -- Иконка Свободовца xml:InitStatic("texture_static_4", self) -- Иконка Долговца self:Register(xml:Init3tButton("btn_1", self),"btn_1") -- Кнопка выбора группировки self:Register(xml:Init3tButton("btn_2", self),"btn_2") -- Кнопка выбора группировки self:Register(xml:Init3tButton("btn_3", self),"btn_3") -- Кнопка выбора группировки self:Register(xml:Init3tButton("btn_4", self),"btn_4") -- Кнопка выбора группировки end
function selecting_group:OnButton_1_clicked() -- Функция нажатия 1 кнопки printf ("ACTOR NOW IN STALKER COMMUNITY") if db.actor:character_community() ~= "(stalker)" then db.actor:set_character_community("actor_stalker", 0, 0) -- Записываем ГГ в группировку Сталкеры end self:on_quit() end
function selecting_group:OnButton_2_clicked() -- Функция нажатия 2 кнопки printf ("ACTOR NOW IN BANDIT COMMUNITY") if db.actor:character_community() ~= "(bandit)" then db.actor:set_character_community("actor_bandit", 0, 0) -- Записываем ГГ в группировку Бандиты end self:on_quit() end
function selecting_group:OnButton_3_clicked() -- Функция нажатия 3 кнопки printf ("ACTOR NOW IN FREEDOM COMMUNITY") if db.actor:character_community() ~= "(freedom)" then db.actor:set_character_community("actor_freedom", 0, 0) -- Записываем ГГ в группировку Свобода end self:on_quit() end
function selecting_group:OnButton_4_clicked() -- Функция нажатия 4 кнопки printf ("ACTOR NOW IN DOLG COMMUNITY") if db.actor:character_community() ~= "(dolg)" then db.actor:set_character_community("actor_dolg", 0, 0) -- Записываем ГГ в группировку Долг end self:on_quit() end
function selecting_group:on_quit() -- Закрытие GUI self:GetHolder():start_stop_menu(self, true) -- Закрываем GUI local hud = get_hud() -- Убераем интерфейс с худа hud:HideActorMenu() -- Если актер зашел в гл.меню end
function selecting_group:OnKeyboard(dik, keyboard_action) -- Думаю тут, все и так понятно CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) if keyboard_action == ui_events.WINDOW_KEY_PRESSED then if dik == DIK_keys.DIK_ESCAPE then self:on_quit() end end return true end
Создаем новый *xml файл в configs/ui с названием ui_selecting_grouping.xml открываем и вставляем следующие:
В данном уроке я не буду расписывать создания текстуры, поэтому прилагаю к уроку уже готовую текстуры, которую можно скачать здесь. Текстуру положить по адресу gamedata/textures/ui
Идем в configs/gameplay открываем dialogs_marsh.xml находим диалог Тропника и прописываем ему следующие: ui_selecting_grouping.main сохраняем и бежим тестировать.
Если сделали все - как расписано в данном уроке, то в итоге у нас получится что-то вроде этого: