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


Фотография

Диалоговое окно!


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

#1 OFFLINE   Alex_86

Alex_86

    Рядовой

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

Отправлено 16 March 2018 - 18:41

Всем привет. Разбираюсь сейчас с диалогами (gui) и вроде бы все норм кроме нескольких вопросов. 

 Есть диалоговое окно и в нем должны меняться картинки в зависимости от состояния триггера.

 

часть файла dialogs3.hpp

 

class RscPicture_1200: RscPicture
{
idc = 1200;
text = "images\no.jpg";      // нужно в игре менять этот параметр в зависимости от состояния триггера
x = 0.42125 * safezoneW + safezoneX;
y = 0.329375 * safezoneH + safezoneY;
w = 0.02625 * safezoneW;
h = 0.02625 * safezoneH;
};
 
часть файла defines.hpp
class RscPicture
{
    access = 0;
    idc = -1;
    type = CT_STATIC;
    style = ST_PICTURE;
    colorBackground[] = {0,0,0,0};
    colorText[] = {1,1,1,1};
    font = "PuristaLight";
    sizeEx = 0;
    lineSpacing = 0;
    text = "";
    fixedWidth = 0;
    shadow = 0;
    x = 0;
    y = 0;
    w = 0.2;
    h = 0.15;
};

Знаю что это можно редактировать если создавать динамически диалог. Но классы для меня темный лес, можно ли здесь как-то прописать это? Может как-то подредактировать здесь класс???

 


  • 0

#2 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Отправлено 16 March 2018 - 19:11


как-то прописать это?

ЭТО?

телепатор сломался. ничего не понял.


  • 0

#3 OFFLINE   Alex_86

Alex_86

    Рядовой

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

Отправлено 16 March 2018 - 19:31

 


как-то прописать это?

ЭТО?

телепатор сломался. ничего не понял.

 

 

class RscPicture_1200: RscPicture
{
idc = 1200;
text = "images\no.jpg";      // нужно в игре менять этот параметр в зависимости от состояния триггера  <= вот эту строку 
x = 0.42125 * safezoneW + safezoneX;
y = 0.329375 * safezoneH + safezoneY;
w = 0.02625 * safezoneW;
h = 0.02625 * safezoneH;
};

  • 0

#4 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Отправлено 16 March 2018 - 19:52

Alex_86,

Для этого надо найти диалог, затем выбрать его контрол, и переопределить текст контрола

 

Пример:

 

Классы:

class ULTIMA_GUI_DEBUG
    {
        idd                     =    -1;
        onLoad                  =    "uiNamespace setVariable ['ULTIMA_GUI_DEBUG', _this select 0];";        
        fadein                  =    0;
        fadeout                 =    0;        
        movingEnable            =    0;
        duration                =    10e10;
        controlsBackground[]    =    {};
        objects[]               =    {};    
        name                    =    "ULTIMA_GUI_DEBUG";
        class Controls
            {
                class Ultima_GUI_Debug_Sprite_FPS
                    {
                        idc                 =    8210;
                        access              =    0;
                        shadow              =    2;
                        size                =    0.03;
                        style               =    2096;
                        type                =    0;
                        font                =    "TahomaB";
                        SizeEx              =    0.03;
                        colorText[]         =    {1, 1, 1, 1};
                        colorBackground[]   =    {0, 0, 0, 0};
                        linespacing         =    1;                                        
                        text                =    "";
                        x                   =    safezoneX;
                        y                   =    safezoneY + safezoneH - (safezoneH * 0.035);
                        h                   =    0.035;
                        w                   =    0.035;
                    };
            };
    };

Подключение:

#include "Ultima_Debug.hpp"

Скрипт вызова:

100 cutRsc ["ULTIMA_GUI_DEBUG", "PLAIN"];

Скрипт замены:

Private ["_display", "_displayCtrl"];
disableSerialization;        
_display        =    uiNamespace getVariable 'ULTIMA_GUI_DEBUG';
_displayCtrl    =    _display displayCtrl 8210;
_displayCtrl ctrlSetText "FPS.paa";

Сообщение отредактировал NoNameUltima: 16 March 2018 - 19:56

  • 0

#5 OFFLINE   Alex_86

Alex_86

    Рядовой

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

Отправлено 16 March 2018 - 20:54

Да видел я такой пример. Только вот с классами у меня туговато.  Но вникнув немного  думаю что и со стандартным что-то получится? а дальше по схеме. Как думаете прокатит?

 

 
class RscPicture_1200: RscPicture
{
idc = 1200;
text = "ULTIMA_GUI_DEBUG";      // нужно в игре менять этот параметр в зависимости от состояния триггера
x = 0.42125 * safezoneW + safezoneX;
y = 0.329375 * safezoneH + safezoneY;
w = 0.02625 * safezoneW;
h = 0.02625 * safezoneH;
};

  • 0

#6 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 17 March 2018 - 00:15

Alex_86, с любым получится, стандартным или не стандартным, динамическими или «классовыми» - без разницы. Из того, что я знаю, разница между «классовым» и динамическим диалогом в том, что «классовый» диалог движок быстрее загружает и из него нельзя удалить элементы, которые описаны как класс (Но созданные после этого динамические элементы - можно)
Для подобного, ИМХО, лучше поступить по другому:
У вас же этих вариантов картинок от силы пара штук? Ну так и создайте элемент для каждой из них с одинаковыми параметрами, что бы арма 24/7 держала готовыми их. А вы просто в нужный момент разрешаете показ одного элемента, а другие запрещаете - командами

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

или

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


  • 1

#7 OFFLINE   Alex_86

Alex_86

    Рядовой

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

Отправлено 17 March 2018 - 20:27

Alex_86, с любым получится, стандартным или не стандартным, динамическими или «классовыми» - без разницы. Из того, что я знаю, разница между «классовым» и динамическим диалогом в том, что «классовый» диалог движок быстрее загружает и из него нельзя удалить элементы, которые описаны как класс (Но созданные после этого динамические элементы - можно)
Для подобного, ИМХО, лучше поступить по другому:
У вас же этих вариантов картинок от силы пара штук? Ну так и создайте элемент для каждой из них с одинаковыми параметрами, что бы арма 24/7 держала готовыми их. А вы просто в нужный момент разрешаете показ одного элемента, а другие запрещаете - командами

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

или

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

 

 

Не получится:( я пробовал. Потом статью америкоса нашел он расписывал. Там классы надо полностью расписывать и запускать это как дисплей а не диалог. Я сделал немного по другому черед динамический текст... А ваше предложение возьму на заметку . Спасибо.


  • 0

#8 OFFLINE   Alex_86

Alex_86

    Рядовой

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

Отправлено 17 March 2018 - 20:35

Есть еще вопрос. Есть техника при старте миссии у нее в инициализации прописано 

menu = this addAction ["Запросить сводку.",   "Svodka.sqf" ];               
_veh = createVehicle ["RHS_Ural_Flat_MSV_01",position player,[],0,"NONE"]; 
 _veh, 
 ["rhs_sand",1],  
 ["bench_hide",0,"spare_hide",0,"people_tag_hide",0,"rear_numplate_hide",0,"light_hide",1] 
] call BIS_fnc_initVehicle; 
 
Все отлично работает пока ее не уничтожают. Возрождается она  уже со стондартным окрасом и без этого menu = this addAction ["Запросить сводку.",   "Svodka.sqf" ]; 
Возраждение техники происходит через модуль возоаждения техники. 1Вопрос как мне заполнить окно инициализации техники при возраждении. 2.Если 1 сособ не возможен то я могу создавать технику с нужным мне окрасом, но как тогда быть с menu = this addAction ["Запросить сводку.",   "Svodka.sqf" ]; 

  • 0

#9 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 17 March 2018 - 22:07

Не получится я пробовал.

Что не получится? Картинку поменять?

дисплей а не диалог

Абсолютно без разницы, абсолютно идентичны (Диалог лишь не блокирует обработчики событий родительского дисплея)

Там классы надо полностью расписывать

Из конфига миссии? Ну да придется базовые классы переписать, т. к. конфиг миссий отделен от конфига аддонов, но в целом используя наследование от базовых классов спокойно создаешь новые классы изменяя пару параметров
  • 0

#10 OFFLINE   Alex_86

Alex_86

    Рядовой

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

Отправлено 17 March 2018 - 23:54

 

Не получится я пробовал.

Что не получится? Картинку поменять?

дисплей а не диалог

Абсолютно без разницы, абсолютно идентичны (Диалог лишь не блокирует обработчики событий родительского дисплея)

Там классы надо полностью расписывать

Из конфига миссии? Ну да придется базовые классы переписать, т. к. конфиг миссий отделен от конфига аддонов, но в целом используя наследование от базовых классов спокойно создаешь новые классы изменяя пару параметров

 

 

в том то и дело у меня с классами засада. Так общие поверхностные знания... И сейчас нет времени вникать... может позже . тема интересная, но только не на на скорую руку, тем более для самоучки :) 


  • 0




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