Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Operation Arrowhead Скрипты Создание диалогов. Очень просто! (Пусть вас не пугает огромное кол-во текста.) |
Создание диалогов. Очень просто! |
› Вторник
› 12.07.2011
› 09:40
› Сообщение #
А как сделать движущиеся картинки, тексты, кнопки? Мне например нужно чтобы картинка появлялась в со случайным x и двигалась либо влево, либо вправо.
Добавлено (12.07.2011, 09:40) Code _display = findDisplay 0; _line = _display displayCtrl 1021; _posDefault = ctrlPosition _line; _x = random (1); _pos = [_x, _posDefault select 1, _posDefault select 2, _posDefault select 3]; _line ctrlSetPosition _pos; _line ctrlCommit 0; _x = random (1); _pos = [_x, _posDefault select 1, _posDefault select 2, _posDefault select 3]; _line ctrlSetPosition _pos; _line ctrlCommit 0.1; |
› Воскресенье
› 14.08.2011
› 23:34
› Сообщение #
А возможно сделать диалог, не прибегая к .hpp?
Arma 3
Студент МТУСИ |
› Понедельник
› 15.08.2011
› 01:14
› Сообщение #
файл диалога это Description.ext, файлы типа hpp присоединяются при чтении системой создавая единый файл. Для это пишется команда
#include "Hpp\Text.hpp" |
› Четверг
› 06.10.2011
› 15:28
› Сообщение #
Как проверить, что открыт определенный диалог?
Arma 3
Студент МТУСИ |
› Четверг
› 06.10.2011
› 19:05
› Сообщение #
по idd диалога
{isNull (findDisplay idd)} |
› Пятница
› 11.01.2013
› 20:55
› Сообщение #
не могу разобраться с классом RscEdit
нужно сделать, чтобы число, которое ввели в RscEdit использовалось скриптом taim.sqf вот миссия пример http://www.multiupload.nl/TVMM2G0AQH Помогите разобраться, заранее спасибо. Добавлено (11.01.2013, 20:55) |
› Понедельник
› 27.05.2013
› 21:57
› Сообщение #
Если не сложно:
В "Сообщение # 7" этой темы описан диалог на три кнопки. Как мне поменять текст "Click booton0" на что-то другое прямо по ходу миссии. Заранее извиняюсь за нубство - почитал по ссылке, поколдовал с idc, но так ничего и не вышло. |
› Понедельник
› 27.05.2013
› 22:13
› Сообщение #
в этот диалог надо добавить idc
class dialog_new { idd = 61000; movingEnable = 0; objects[] = {}; controlsBackground[] = {}; controls[] = {But0, But1, But2}; class But0 : RscShortcutButton { idc = 1001; x = 0; y = 0.83; w = 0.3; h = 0.1; text = "Click booton0"; action = "as = [] execVM ""File0.sqf"";"; }; class But1 : But0 { idc = 1002; y = 0.88; text = "Click booton1"; action = "as = [] execVM ""File1.sqf"";"; }; class But2 : But0 { idc = 1003; y = 0.93; text = ""; action = "as = [] execVM ""File2.sqf"";"; }; }; текст для SQF файла _ok = createDialog "dialog_new"; disableSerialization; _ds = findDisplay 61000; _cn = _ds displayCtrl 1001; _cn ctrlSetText "новый текст"; |
› Понедельник
› 27.05.2013
› 23:34
› Сообщение #
При таком раскладе как вы написали, у меня название кнопки вылазит только "Val_txt" - т.е. он не воспринимает её как переменную, а только как текст.
Может сохранять диалог не hpp формате? - попробовал, не выходит Да, при активеном диалоге. Например ставлю триггер с активацией диалога по 0-0-0 Ставлю ctrlSetText [1001, "Hello world"]; например сразу или на соседний триггер с той же активацией 0-0-0 но с секундной задержкой. Не зависимо не от чего - текст остается прежним. Добавлено (27.05.2013, 23:34) --------------------------------------------- Цитата Slonтекст для SQF файла _ok = createDialog "dialog_new"; disableSerialization; _ds = findDisplay 61000; _cn = _ds displayCtrl 1001; _cn ctrlSetText "новый текст"; С этим получилось. Спасибо!!! А можно менять переменные не открывая диалог? Сообщение отредактировал Firral - Понедельник, 27.05.2013, 23:35
|
› Понедельник
› 27.05.2013
› 23:39
› Сообщение #
оператором format можно сформировать текст из чего угодно
_cn ctrlSetText format ["%1 - %2", val_txt, Name Player]; |
› Вторник
› 28.05.2013
› 00:01
› Сообщение #
Благодарю!!!
Вроде все получилось!!! Ура!!! Вопрос на засыпку: У аддона "glt_missilebox" есть интересный диалог наводки ракет при помощи GPS. Диалог открывает небольшую карту и пульт с кнопками, при помощи которых на карте ставятся маркеры и многое другое. Сам диалог прописан в аддоне, но если вырезать и записать в своей миссии отдельно, то в итоге откроется только пульт - без карты и активных кнопок. Вот он: class RscMapControl; // External class reference class glt_airgpsmfd { idd = 3330; movingEnable = 0; enableSimulation = 1; onload = "nul = [] spawn glt_initDialog"; onUnload = "call glt_gpsExit"; class controlsBackground { class glt_mfgmap : RscMapControl { idc = 3330; maxSatelliteAlpha = 0; x = (1/1024)*79; y = (1/768)*79; w = (1/1024)*868; h = (1/768)*599; }; }; objects[] = {}; class controls { class glt_airgpsmfd_border { idc = 3331; moving = 0; type = VSoft; style = 48; text = "\glt_missilebox_config\data\airgpsmfd_ca.paa"; font = "Zeppelin32"; sizeEx = 0.023; colorBackground[] = {0, 0, 0, 0}; colorText[] = {1, 1, 1, 1}; x = 0; y = 0; w = 1; h = 1; }; class glt_gpsButtons { idc = -1; type = VArmor; style = 0x02; x = (1/1024)*5; y = (1/768)*572; w = (1/1024)*43; h = (1/768)*40; font = "Zeppelin32"; sizeEx = 0.025; colorDisabled[] = {0.4, 0.4, 0.4, 0.0}; colorBackgroundDisabled[] = {0.95, 0.95, 0.95, 0.5}; ColorText[] = {0.1, 1, 0.1, 0.8}; ColorBackground[] = {0, 0, 0, 0.0}; colorBackgroundActive[] = {0.1, 0.1, 0.1, 0.5}; offsetX = 0.003; offsetY = 0.003; offsetPressedX = 0.002; offsetPressedY = 0.002; colorFocused[] = {0.02, 0.02, 0.02, 0.0}; colorShadow[] = {0.02, 0.02, 0.02, 0.0}; colorBorder[] = {0.02, 0.02, 0.02, 0.0}; borderSize = 0.0; soundEnter[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; soundPush[] = {"\ca\ui\data\sound\new1", 0.09, 1}; soundClick[] = {"\ca\ui\data\sound\mouse3", 0.07, 1}; soundEscape[] = {"\ca\ui\data\sound\mouse1", 0.09, 1}; Text = ""; action = ""; }; class glt_airgpsmfd_exitbutton : glt_gpsButtons { idc = 3332; y = (1/768)*572; Text = ""; action = "(findDisplay 3330) closeDisplay 0"; }; class glt_airgpsmfd_centerbutton : glt_gpsButtons { idc = 3333; y = (1/768)*469; Text = ""; action = "nul = [] spawn glt_gpsCenterOnPlayer"; }; class glt_airgpsmfd_markposbutton : glt_gpsButtons { idc = 3334; y = (1/768)*163; Text = ""; action = "call glt_gpsMarkPos"; }; class glt_airgpsmfd_clearbutton : glt_gpsButtons { idc = 3335; y = (1/768)*266; Text = ""; action = "call glt_gpsClear"; }; class glt_airgpsmfd_centergps : glt_gpsButtons { idc = 3340; y = (1/768)*365; Text = ""; action = "nul = [] spawn glt_gpsCenterOnMarker"; }; class glt_airgpsmfd_dirmode : glt_gpsButtons { idc = 3341; x = (1/1024)*979; y = (1/768)*162; Text = ""; action = "call glt_gpsDisplaySetDirMode"; }; class glt_airgpsmfd_dispmode : glt_gpsButtons { idc = 3342; x = (1/1024)*979; y = (1/768)*265; Text = ""; action = "call glt_gpsDisplaySetDispMode"; }; class glt_airgpsmfd_dispmode_up : glt_gpsButtons { idc = 3343; x = (1/1024)*979; y = (1/768)*469; Text = ""; action = "[25, 50, 500] call glt_gpsSetHeight"; }; class glt_airgpsmfd_dispmode_down : glt_gpsButtons { idc = 3344; x = (1/1024)*979; y = (1/768)*572; Text = ""; action = "[-25, 50, 500] call glt_gpsSetHeight"; }; class glt_airgpsmfd_autopilot : glt_gpsButtons { idc = 3345; x = (1/1024)*306; y = (1/768)*16; Text = ""; action = "nul = [] spawn GLT_GPSAutoPilot"; }; class glt_airgpsmfd_mfdtext_mark { idc = 3350; type = VSoft; style = 0x00; text = MARK; font = "Zeppelin32"; sizeEx = 0.03; colorBackground[] = {0, 0, 0, 0}; colorText[] = {0.1, 1, 0.1, 0.8}; x = (1/1024)*85; y = (1/768)*163; w = (1/1024)*60; h = (1/768)*40; }; class glt_airgpsmfd_mfdtext_exit : glt_airgpsmfd_mfdtext_mark { idc = 3351; text = EXIT; y = (1/768)*572; }; class glt_airgpsmfd_mfdtext_center : glt_airgpsmfd_mfdtext_mark { idc = 3352; text = CTR; y = (1/768)*469; }; class glt_airgpsmfd_mfdtext_clear : glt_airgpsmfd_mfdtext_mark { idc = 3353; text = CLR; y = (1/768)*266; }; class glt_airgpsmfd_mfdtext_centergps : glt_airgpsmfd_mfdtext_mark { idc = 3354; style = 16; lineSpacing = 1; text = "CTR GPS"; y = (1/768)*365; }; class glt_airgpsmfd_mfdtext_dirmode : glt_airgpsmfd_mfdtext_mark { idc = 3355; style = 16; lineSpacing = 1; colorText[] = {0.4, 0.4, 0.4, 0.5}; text = "DIR MOD"; x = (1/1024)*885; y = (1/768)*163; }; class glt_airgpsmfd_mfdtext_dispmode : glt_airgpsmfd_mfdtext_mark { idc = 3356; style = 16; lineSpacing = 1; colorText[] = {0.4, 0.4, 0.4, 0.5}; text = "DISP MOD"; x = (1/1024)*885; y = (1/768)*266; }; class glt_airgpsmfd_mfdtext_dispmode_up : glt_airgpsmfd_mfdtext_mark { idc = 3357; style = 0x00; colorText[] = {0.1, 1, 0.1, 0.8}; text = "( + )"; x = (1/1024)*885; y = (1/768)*469; }; class glt_airgpsmfd_mfdtext_dispmode_rellvl : glt_airgpsmfd_mfdtext_mark { idc = 3358; style = 0x00; colorText[] = {0.1, 1, 0.1, 0.8}; text = 150; x = (1/1024)*885; y = (1/768)*520; }; class glt_airgpsmfd_mfdtext_dispmode_down : glt_airgpsmfd_mfdtext_mark { idc = 3359; style = 0x00; colorText[] = {0.1, 1, 0.1, 0.8}; text = "( - )"; x = (1/1024)*885; y = (1/768)*572; }; class glt_airgpsmfd_mfdtext_autopilot : glt_airgpsmfd_mfdtext_mark { idc = 3360; style = 16; lineSpacing = 1; colorText[] = {0.1, 1, 0.1, 0.8}; text = "EBL A/P"; x = (1/1024)*294; y = (1/768)*83; }; }; }; Почему он не работает полностью? Просто хотелось бы использовать что-то подобное например для управления войсками. Сообщение отредактировал Firral - Вторник, 28.05.2013, 00:06
|
› Вторник
› 28.05.2013
› 00:07
› Сообщение #
описание в Description.ext создаёт только внешний вид. Программное сопровождение в файлах sqf (sqs)
посмотри этот вариант http://arma.at.ua/forum/46-3085-1 Цитата class RscMapControl; // External class reference Description.ext не имеет связи с конфигами, и все используемые элементы надо указывать целиком. |
› Суббота
› 01.06.2013
› 18:35
› Сообщение #
Еще вопрос.
Я сделал диалог с картой (взял за основу скрипт артиллерии). Управление на карте то-же, что и на обычной, но приближение/удаление при помощи колёсика мыши не действует. Только при "+" и "-" на нумпаде. Это можно как-то изменить? Пусть даже не колесиком, а другими клавишами? Так, вроде разобрался почему колесико не работате. Но как сделать другими клавишами все еще вопрос. Сообщение отредактировал Firral - Суббота, 01.06.2013, 19:00
|
› Суббота
› 01.06.2013
› 21:20
› Сообщение #
система ЕХ диалогов
http://community.bistudio.com/wiki/User_Interface_Event_Handlers там и клавиши есть |
› Понедельник
› 23.09.2013
› 14:26
› Сообщение #
Slon, здравствуйте
Может Вы мне поможете решить проблему с диалогом. Делаю картинку и хочу чтобы она не меняла своих размеров в зависимости от разрешения экрана, т.е не становилась например квадратной (оригинал картинки прямоугольный) на 1024х768 или в оконном режиме. Нашел такое решение: style = "0x30 + 0x800"; Но теперь картинка постоянно плавает по оси Y когда например из фуллскрина переключаюсь в оконный режим На эту картинку я накладываю ListNBox и соответственно получается не соответствие координат. Очень надеюсь на Вашу помощь, всю голову сломал уже с этими safeZoneX,Y,W,H итд... |
| |||
Чат сайта |