Модератор форума: GUNNER161, Panikaha |
Форум РЕДАКТОР - ArmA 3 Скрипты GUI (Менюшки) |
GUI |
› Пятница
› 24.10.2014
› 07:37
› Сообщение #
Кто может сделать простейший пример:
пример - описание создание рамки пример - описание привязки к кнопке клавы пример - описание создания на рамке кликабельной кнопки пример - описание прикручивания к рамке картинки Всем спасибо за внимание! |
› Пятница
› 24.10.2014
› 15:39
› Сообщение #
200-i, Попробуй разобраться с помощью GUI Editor
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Пятница
› 24.10.2014
› 16:00
› Сообщение #
|
› Пятница
› 24.10.2014
› 16:44
› Сообщение #
200-i, Нашел простой пример (картинка, две кнопки) создания диалога с помощью GUI Editor`a в формате pdf на англ. языке
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Пятница
› 24.10.2014
› 17:43
› Сообщение #
Всем огромное спасибо! Завтра все опробую и отпишусь)))
Slon я читал вашу тему, но так и не смог понять где кончается А2 и где начинается А3 и есть ли вообще разница. (просто опыта маловато и по этому взглянув на даты решил что самому мне не понять что из той темы можно использовать а что уже не актуально) ZoRRo такого примера я думаю буде вполне достаточно, спасибо. Буду завтра его потрошить и лепить свой))) Добавлено (24.10.2014, 17:43) |
› Пятница
› 24.10.2014
› 18:18
› Сообщение #
200-i, полное описание элементов для любой Армы тут
https://community.bistudio.com/wiki/Category:Dialogs |
› Пятница
› 24.10.2014
› 21:35
› Сообщение #
Slon Да я знаю что там все описано как надо, но вот с энглишем беда у меня( А переводчики творят чудеса шифрования. Я по этому и просил простейший пример, чтоб на нем потом экспериментировать методом тыка. На сколько я понял из вашей темы, по ссылке указанной выше, такие менюшки можно делать без аддонов? Все это можно описать в скрипте и дискрипшене? Может с аддоном оно и правильнее, но пока что мне проще было бы тестить без аддона.
|
› Пятница
› 24.10.2014
› 22:27
› Сообщение #
200-i, В каждой миссии свои диалоги. и не к чему замусоривать игру аддонами.
Вообще, диалоги вещ простая и мне казалось я всё обяснил. ну вот в кратце что должен содержать Дескрипшен. Сначала Полные описания элементов(классов) использованых в диалоге (можно отдельным файлом и сразу все) потом сам диалог - Шапка class Название_для открытия { idd = 5000; objects[] = {}; controlsBackground[]={}; controls[]= {}; классы элементов, настройка параметров } вот и всё |
› Суббота
› 25.10.2014
› 07:47
› Сообщение #
Slon вы ведь понимаете что в таком виде примеры я уже 100 раз находил. Я пытаюсь понять:
1) Какая команда описывает форму и цвет фона; 2) Команда создающая активный текст, кнопки; 3) Команда при помощи которой фоном будет свое изображение; 4) Команда назначающая кнопку клавиатуры для запуска всего этого художества; 5) И наконец последнее, в дискрипшене происходит описание а вызовы и обращения к этим меню происходит скриптами как я понимаю, так вот какие команды пишутся в скриптах. То что вы написали конечно правильно и теоретически понятно, допустим то что нужно сначала описать в дискрипшене все классы для того чтоб ими позже пользоваться. Но для того чтоб это сделать нужно практически это понять. потом сам диалог - Шапка class Название_для открытия { Тут как я понял пишется имя для обращения к нему из скрипта idd = 5000; что делает цифра 5000 не ясно objects[] = {}; что может быть тут controlsBackground[]={}; тут controls[]= {}; и тут. И главное для чего классы элементов, настройка параметров } |
› Суббота
› 25.10.2014
› 10:10
› Сообщение #
команда для работы с диалогами из скрипта тут
https://community.bistudio.com/wiki....Control это не все по мере развития Армы добавляются ещё. Десктипт это база данных даётся только описание диалога (в основном) там нет активного текста кроме спец мест, например действие при клике на кнопку. все остальные действия из скрипта action = "hint 'OK' "; class Название_для открытия { _ok = createDialog "Название_для открытия"; idd = 5000;........................... _display = findDisplay 5000; objects[] = {бинокль, рация,компас};.............. - посмотреть можно в стандартном диалоге Карты controlsBackground[]={"Fon_1"};...............- контролы второго плана controls[]= {"Text_1"};............................ - контролы первого плана class Fon_1 { idc = 5100; .................._control = _display displayCtrl 5100; ...................................._control ctrlSetText "Hello world."; class Text_1 { idc = 5101; Добавлено (25.10.2014, 10:10) --------------------------------------------- В качестве фона используют текстовый класс, без теста class RscText { access = 0; type = 0; idc = -1; style =0; w = 0.1; h = 0.05; x = 0; y = 0; font = "TahomaB"; sizeEx = 0.04; colorBackground[] = {0,0,0,0}; colorText[] = {1,1,1,1}; text = ""; fixedWidth = 0; shadow = 0; }; для картинок его же но стиль 48 style =48; Text = "\ca\ui\data\ui_button_normal_ca.paa"; возможные варианты стиля для класса текста http://arma.at.ua/forum/76-1375-35433-16-1255607844 Сообщение отредактировал Slon - Суббота, 25.10.2014, 10:34
|
› Суббота
› 25.10.2014
› 13:42
› Сообщение #
Slon Спасибо Вам огромное!!!
С фонами разобрался) С текстом и картинками тоже) С кнопками на меню думаю тоже разберусь а вот как вызывать диалог с помощью какой либо кнопки клавиатуры? Точнее как прописать и где, чтоб скрипт запуска диалога срабатывал при нажатии той или иной кнопки? Добавлено (25.10.2014, 13:42) |
› Суббота
› 25.10.2014
› 14:11
› Сообщение #
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
› Суббота
› 25.10.2014
› 15:33
› Сообщение #
ZoRRo большущее вам спасибо, золой вы человек!!! Только когда открыл ваш пример и посмотрел какой там объем писанины для такого простого пример, решил с этой темой покончить до лучших времен. Я даже и не подозревал, что это такие объемы.
Добавлено (25.10.2014, 15:33) |
› Суббота
› 25.10.2014
› 16:22
› Сообщение #
код клавиши тут 15
case 15:{ а всё вместе - ожидает нажатия любой клавиши и и проверяет какая была нажата. напиши строку в функцию if(local player)then{ hint str _this; _key = _this select 1; и понажимай клавиши, увидиш как это работает Сообщение отредактировал Slon - Суббота, 25.10.2014, 16:26
|
› Суббота
› 25.10.2014
› 18:37
› Сообщение #
200-i,
1. да, поросто расскоментируй строчку //hintsilent str _key и будет вылазить подсказка с кодом клавиши при нажатии клавиши 2. Эти 3 строчки запускают скрипт обработчика клавиш: waitUntil{!isNull (findDisplay 46)}; keyspressed = compile preprocessFile "keyspressed.sqf"; _displayID = (findDisplay 46) displaySetEventHandler ["KeyDown","_this call keyspressed"]; Основной дисплей в арме имеет IDD 46 waitUntil{!isNull (findDisplay 46)}; - ждем пока дисплей инициализируется _displayID = (findDisplay 46) displaySetEventHandler ["KeyDown","_this call keyspressed"]; - а здесь вешаем обработчик с использованием основного дисплей, ничего не поделаешь, такой синтаксис нужен ему дисплей и все тут) 3. Не знаю чего ты испугался ( при желании можно было написать и в 2 файла ), я просто старался раскидать все по полкам изначально чтобы дать тебе правильное представление на будущее, когда у тебя скриптов в миссии будет все больше и больше init.sqf - (3 строчки) пока при запуске мисии идет лишь запуск обработчика клавиш, со временем здесь у тебя появится еще что-то description.ext - (2 строчки) пока здесь подключается (common.hpp) базовые классы и (testdialog.hpp) классы нашего диалога stringtable.xml - здесь хранятся все тексты, можно конечно напрямую в скрипты и классы писать но это не правильно и делает возможную в дальнейшем локализацию миссии невозможной keyspressed.sqf - ну эт понятно, обработчик клавиш common.hpp - базовые классы такие как текст, структурный текст, картинка, кнопка, список и т.д. В примере используются только 3 - картинка, кнопка, текст. Остальные не используются, но проще их сразу объявить и о них забыть. Потом может что-то понадобиться, допустим список, а он уже есть у нас. TestDialog.hpp - здесь класс нашего тестового диалога, только его и ничьи больше defenitions.sqf - а здесь мы предопределяем в виде констант idc и idd, которые будем использовать в диалоге, так удобней сразу видно по имени с каким элементом имеем дело из скрипта, не то что 20001, 20003, 24253 и т.д. Потом голову сломаешь высматривать к какому элементу эти цыфры относятся cancel.sqf - здесь скрипт который будет запускаться Как видишь основной объем работ только в файле TestDialog.hpp
Cтруктуры данных важнее кода!
Список команд | Список оружия | Список техники | Список юнитов | Список объектов Armstalker Online |
| |||
Чат сайта |