Перейти к содержимому


Фотография

GUI и активность кнопок по условию


Лучший Ответ SteelRat , 23 June 2015 - 19:26

Просто я ошибся, а вам путём не хитрого сравнения должно было бы понятно где ошибка

#define CONTROL (_display displayctrl _idc)
#define C_GREY [0.33, 0.33, 0.33, 1]
disableserialization;

_display = _this select 0;

_idc = 5802; ///idc кнопки вызова Тигра
CONTROL ctrlSetTextColor C_GREY;

hint "ops"; 

Как вариант, после смены цвета применить ещё эту команду

https://community.bi...wiki/ctrlCommit

 

И собственно вот вам ссылка на кладезь мудрости.

https://community.bi...Commands_Arma_3

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 OFFLINE   Povstanetz

Povstanetz

    Рядовой

  • Пользователи
  • 21 сообщений
  • Откуда:Moscow

Отправлено 21 June 2015 - 08:01

Доброе утро)) Уже всю ночь бьюсь с этим ГУИ) Забавная штука, аля html, только очень нудная))

Не могли бы помочь с одним моментом, по скриптовой части?

Делаю для серверной миссии меню- создание техники на базе. В зависимости от пройденных заданий- новая техника.

Очень хотелось бы, чтобы изначально в меню была показана вся техника, но доступна была только та, что разрешено миссией по условиям (например, у меня стоят переключатели- publicvarible (true/false) - basestage1, basestage2,basestage3 и т.д)

Для меню "работают" два файла:

RscClass.hpp

 

VehDialog.hpp

 

Вот во втором файле, на кнопке VBut5 и произошел затык(( Не понимаю, как сделать её неактивной, пока не будет publicVariable "basestage1";

 

Обрыл кучу всяких команд, от ctrlEnable до controlsBackground[], но ничо не понял и ничего не получилось.

Буду очень благодарен любой помощи


Сообщение отредактировал Povstanetz: 21 June 2015 - 08:04

  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 21 June 2015 - 12:28

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


  • 0

#3 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 21 June 2015 - 13:04

PS Не используйте "голые" координаты и размеры: например ваш диалог с большой долей вероятности не будет виден у тех у кого стоит разрешение 4:3 (То есть не широкий экран, или просто играет в окне с маленьким разрешением)
x = 0.0 * safezoneW + safezoneX;
y = 0.0 * safezoneH + safezoneY;
w = 1.0 * safezoneW;
h = 1.0 * safezoneH;
//В таком варианте на любом разрешении у вас всегда будет виден диалог

  • 0

#4 OFFLINE   Povstanetz

Povstanetz

    Рядовой

  • Пользователи
  • 21 сообщений
  • Откуда:Moscow

Отправлено 21 June 2015 - 14:32

vlad333000, спасибо большое - пойду пробовать. 

ПО поводу сэйвзон- догадался о подобном, смотря чужие скрипты (у большинства используются сэйвзоны), просто еще руки не дошли разобраться)

ПС: не фига так и не понял с этим 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 (((

допустим, моя кнопка idd = 5802;

вешаю при вызове диалога (из sqf):

 

_vehdlg = createDialog "VehDialog";
ctrlEnable [5802, false];
или эту строку надо в цикл загонять?

Сообщение отредактировал Povstanetz: 21 June 2015 - 20:40

  • 0

#5 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 21 June 2015 - 19:44

Если выводимый на экран диалог или дисплей предусматривает получение неких изменяемых данных, то при своём вызове диалог или дисплей должен вызвать скрипт который и настроит диалог или дисплей в соответствии актуальным данным

class VehDialog {

     onLoad = "_this execVM'ПутьДоСкрипта\onVehDialog.sqf'"; // При вызове диалога вызывается скрит
     onUnload = "_this execVM'ПутьДоСкрипта\offVehDialog.sqf'"; // При закрытии диалога вызывается скрипт

   ...

};

onVehDialog.sqf

disableserialization;
_display = _this;

  • 0

#6 OFFLINE   Povstanetz

Povstanetz

    Рядовой

  • Пользователи
  • 21 сообщений
  • Откуда:Moscow

Отправлено 21 June 2015 - 20:57

SteelRat,

более-менее привел в порядок гуи:

 

description.ext

 

вызов из действий игрока veh_menu_start.sqf

(можно его потом убрать, сразу вызывая createdialog?)

 

VehDialog.hpp

 

onVehDialog.sqf

 

Но не фига(( Я так и не понял как в sqf идет "перехват" кнопки из hpp и где надо писать выполняющий скрипт кнопки (создание техники) и можно ли изменять цвет текста кнопки, который указан в классе этой кнопки..

 

Еще один маленький вопрос:


Сообщение отредактировал Povstanetz: 21 June 2015 - 21:06

  • 0

#7 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 22 June 2015 - 04:43

 

Но не фига(( Я так и не понял как в sqf идет "перехват" кнопки из hpp и где надо писать выполняющий скрипт кнопки (создание техники) и можно ли изменять цвет текста кнопки, который указан в классе этой кнопки..

#define CONTROL (_display displayctrl _idc)

disableserialization;
_display = _this;

_idc = 5802; ///idd кнопки вызова Тигра
CONTROL ctrlEnable false;

_idc = 0000; ///idd кнопки вызова Зайца
CONTROL ctrlEnable true;

  • 0

#8 OFFLINE   Povstanetz

Povstanetz

    Рядовой

  • Пользователи
  • 21 сообщений
  • Откуда:Moscow

Отправлено 22 June 2015 - 10:49

SteelRat,

почему то не срабатывает((

 

 
если hint "ops" написать выше команды CONTROL, то срабатывает
 
вот в таком виде хинт срабатывает
Но всё равно ничего не происходит... Признаюсь честно, понял, что вообще ничего не понимаю в этих кнопках)) Действую по наитию и разбирая примеры других меню, но они обычно очень запутаны дополнительными функциями
 
 

Сообщение отредактировал Povstanetz: 25 June 2015 - 07:54

  • 0

#9 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 23 June 2015 - 19:26   Лучший Ответ

Просто я ошибся, а вам путём не хитрого сравнения должно было бы понятно где ошибка

#define CONTROL (_display displayctrl _idc)
#define C_GREY [0.33, 0.33, 0.33, 1]
disableserialization;

_display = _this select 0;

_idc = 5802; ///idc кнопки вызова Тигра
CONTROL ctrlSetTextColor C_GREY;

hint "ops"; 

Как вариант, после смены цвета применить ещё эту команду

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

И собственно вот вам ссылка на кладезь мудрости.

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


Сообщение отредактировал SteelRat: 23 June 2015 - 19:26

  • 1

#10 OFFLINE   Povstanetz

Povstanetz

    Рядовой

  • Пользователи
  • 21 сообщений
  • Откуда:Moscow

Отправлено 24 June 2015 - 10:04

SteelRat, спасибо тебе огромное- всё получилось!)))

демагогия

Скину, на всякий случай, пример миссии- может кому пригодится.

В миссии игроку добавлено в действиях простое колоночное меню с возможностью создания техники. Следующий тип техники становится доступен после определенных условий (в миссии-примере - после создания предыдущего типа техники)

 

Прикрепленные файлы


Сообщение отредактировал Povstanetz: 24 June 2015 - 10:06

  • 0

#11 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 25 June 2015 - 03:37

 

По поводу ссылок -тоже спасибо, о ресурсах знал, но трудно применять команды, не понимая сути кода, синктасиса и алгоритмов))

Проще (для меня) разобрать какой-нибудь скрипт и пытаться подстроить его под себя)

Это нормальный подход, но без кладезя мудрости ни как не обойтись тоже, как правило команда говорит о себе, что она делает, и с транслятором на перевес, как говорится ...


  • 0




Яндекс.Метрика