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


Фотография

Молю о помощи в создании GUI )


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

#41 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 24 March 2016 - 22:47

Mhhhmm.. 

createDialog "gt_pda";

description.ext

class gt_pda {
	idd = -1;                      // set to -1, because we don't require a unique ID
	movingEnable = true;           // the dialog can be moved with the mouse (see "moving" below)
	enableSimulation = false;      // freeze the game
	controlsBackground[] = { };    // no background controls needed
	objects[] = { };               // no objects needed
	controls[] = {RscPicture_1200};  // our "Hello world" text as seen below:
	

class RscPicture_1200
{
	idc = -1;
	text = "\pda.paa";
	x = -1 * GUI_GRID_W + GUI_GRID_X;
	y = 1.5 * GUI_GRID_H + GUI_GRID_Y;
	w = 42 * GUI_GRID_W;
	h = 22 * GUI_GRID_H;
};

};

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


(открываема by "texture viewer").

 

Картинка не появляется.


Сообщение отредактировал Ilias: 24 March 2016 - 22:57

  • 0

#42 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 24 March 2016 - 23:11

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


  • 1

#43 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 24 March 2016 - 23:21

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

Да, понял, создано в игре, было:

class RscPicture_1200 : RscPicture

На что "GUI editor" расчитывает ? (игра пишет что не знает RscPicture) - нужно сначала что нибудь сохранить как "parent classes" чтобы получить это:

Hidden text

а потом сохранять и вставлять после как "controls" ?


Сообщение отредактировал Ilias: 24 March 2016 - 23:36

  • 0

#44 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 24 March 2016 - 23:40

Если вы через config.cpp:
class RscPicture; //Получаем базовый класс
Потом в нужном месте:
class myControl_1: RscPicture ...

  • 1

#45 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 24 March 2016 - 23:44

vlad333000

тоесть 

class RscPicture;

достаёт записанный в игре класс и делает доступным в этом конфиге ?, а в description?


Сообщение отредактировал Ilias: 24 March 2016 - 23:45

  • 0

#46 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 24 March 2016 - 23:55

description отделен от других конфигов (Это конфиг миссии) и поэтому в нем не определено ничего из обычного конфига игры, и поэтому нужно копировать нужные классы из общего конфига в конфиг миссии
  • 1

#47 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 25 March 2016 - 00:13

vlad333000

ясно, спасибо, попробую "basic classes" из "gui builder" в description вставить (использую чтобы не перезапускать игру постоянно).


  • 0

#48 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 25 March 2016 - 15:00

hmm..


// Control types
#define CT_STATIC           0
#define CT_BUTTON           1
#define CT_EDIT             2
#define CT_SLIDER           3
#define CT_COMBO            4
#define CT_LISTBOX          5
#define CT_TOOLBOX          6
#define CT_CHECKBOXES       7
#define CT_PROGRESS         8
#define CT_HTML             9
#define CT_STATIC_SKEW      10
#define CT_ACTIVETEXT       11
#define CT_TREE             12
#define CT_STRUCTURED_TEXT  13
#define CT_CONTEXT_MENU     14
#define CT_CONTROLS_GROUP   15
#define CT_SHORTCUTBUTTON   16
#define CT_XKEYDESC         40
#define CT_XBUTTON          41
#define CT_XLISTBOX         42
#define CT_XSLIDER          43
#define CT_XCOMBO           44
#define CT_ANIMATED_TEXTURE 45
#define CT_OBJECT           80
#define CT_OBJECT_ZOOM      81
#define CT_OBJECT_CONTAINER 82
#define CT_OBJECT_CONT_ANIM 83
#define CT_LINEBREAK        98
#define CT_USER             99
#define CT_MAP              100
#define CT_MAP_MAIN         101
#define CT_LISTNBOX         102
#define CT_CHECKBOX         77

// Static styles
#define ST_POS            0x0F
#define ST_HPOS           0x03
#define ST_VPOS           0x0C
#define ST_LEFT           0x00
#define ST_RIGHT          0x01
#define ST_CENTER         0x02
#define ST_DOWN           0x04
#define ST_UP             0x08
#define ST_VCENTER        0x0C

#define ST_TYPE           0xF0
#define ST_SINGLE         0x00
#define ST_MULTI          0x10
#define ST_TITLE_BAR      0x20
#define ST_PICTURE        0x30
#define ST_FRAME          0x40
#define ST_BACKGROUND     0x50
#define ST_GROUP_BOX      0x60
#define ST_GROUP_BOX2     0x70
#define ST_HUD_BACKGROUND 0x80
#define ST_TILE_PICTURE   0x90
#define ST_WITH_RECT      0xA0
#define ST_LINE           0xB0

#define ST_SHADOW         0x100
#define ST_NO_RECT        0x200
#define ST_KEEP_ASPECT_RATIO  0x800

#define ST_TITLE          ST_TITLE_BAR + ST_CENTER

// Slider styles
#define SL_DIR            0x400
#define SL_VERT           0
#define SL_HORZ           0x400

#define SL_TEXTURES       0x10

// progress bar
#define ST_VERTICAL       0x01
#define ST_HORIZONTAL     0

// Listbox styles
#define LB_TEXTURES       0x10
#define LB_MULTI          0x20

// Tree styles
#define TR_SHOWROOT       1
#define TR_AUTOCOLLAPSE   2

// MessageBox styles
#define MB_BUTTON_OK      1
#define MB_BUTTON_CANCEL  2
#define MB_BUTTON_USER    4

class RscPicture
{
	deletable = 0;
	fade = 0;
	access = 0;
	colorBackground[] =
	{
		0,
		0,
		0,
		0
	};
	colorText[] =
	{
		1,
		1,
		1,
		1
	};
	lineSpacing = 0;
	fixedWidth = 0;
	type = 0;
	idc = -1;
	style = 48;
	sizeEx = "(((100/36)/100)*0.9)";
	font = "TahomaB";
	text = "";
	shadow = 0;
	x = 0;
	y = 0;
	w = 0.2;
	h = 0.15;
	tooltipColorText[] =
	{
		1,
		1,
		1,
		1
	};
	tooltipColorBox[] =
	{
		1,
		1,
		1,
		1
	};
	tooltipColorShade[] =
	{
		0,
		0,
		0,
		0.65
	};
};

class gt_pda {
	idd = -1;                      // set to -1, because we don't require a unique ID
	movingEnable = true;           // the dialog can be moved with the mouse (see "moving" below)
	enableSimulation = false;      // freeze the game
	controlsBackground[] = { };    // no background controls needed
	objects[] = { };               // no objects needed
	controls[] = {RscPicture_1200};  // our "Hello world" text as seen below:


class RscPicture_1200: RscPicture
{
	idc = -1;
	text = "\pda.paa";
	x = -1 * GUI_GRID_W + GUI_GRID_X;
	y = 1.5 * GUI_GRID_H + GUI_GRID_Y;
	w = 42 * GUI_GRID_W;
	h = 22 * GUI_GRID_H;
};

};


Сообщение отредактировал Ilias: 25 March 2016 - 15:09

  • 0

#49 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 25 March 2016 - 17:12

heelp


  • 0

#50 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 25 March 2016 - 17:27

Господа, сделать нормальный GUI получится через аддон, что чревато высокочастотным рестартом армы для тестов, иначе вам придётся засунуть почти весь аддон ui_f.pbo в миссию), я имею в виду конфиги.


  • 0

#51 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 25 March 2016 - 18:04

SteelRat, там достаточно где-то первую четверть конфига ui_f засунуть в миссию и подключить пару файлов с цветами и настройками :)
Я один раз так сделал и спокойно через миссию создаю GUI, а потом, когда все закончу, пихаю в аддон
  • 1

#52 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 25 March 2016 - 18:05

SteelRat, там достаточно где-то первую четверть конфига ui_f засунуть в миссию и подключить пару файлов с цветами и настройками  :)
Я один раз так сделал и спокойно через миссию создаю GUI, а потом, когда все закончу, пихаю в аддон

/|\

+
 

Использую description для небольших тестов,
почему он не хочет картинку показывать? (сам gui появляется)

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


Сообщение отредактировал Ilias: 25 March 2016 - 18:08

  • 0

#53 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 25 March 2016 - 18:06

Ilias, 1. Конфиг Армы (Насколько я знаю) не принимает булевые значения в прямом их виде (true/false) и требует ставить 1/0
2. Если вам нужен путь к файлу в миссии, то никогда не ставьте в начали пути \ и пишите полный путь

Сообщение отредактировал vlad333000: 25 March 2016 - 18:06

  • 1

#54 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 25 March 2016 - 18:10

Ilias, 1. Конфиг Армы (Насколько я знаю) не принимает булевые значения в прямом их виде (true/false) и требует ставить 1/0
2. Если вам нужен путь к файлу в миссии, то никогда не ставьте в начали пути \ и пишите полный путь

Полный путь откуда? (c:\.. ?)
1. Верно: "

  • Example 1:

#define true 1 #define false 0

", спасибо

Сообщение отредактировал Ilias: 25 March 2016 - 18:14

  • 0

#55 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 25 March 2016 - 18:12

Ilias, от начала папки с миссией
т. е. "pictures\picture1.paa"
\ говорит движку что брать путь от корневого каталога игры
  • 1

#56 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 25 March 2016 - 18:15

Ilias, от начала папки с миссией
т. е. "pictures\picture1.paa"
\ говорит движку что брать путь от корневого каталога игры

Ясно, спасибо


  • 0

#57 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 25 March 2016 - 18:22

urrrrr..

still no


Сообщение отредактировал Ilias: 25 March 2016 - 19:51

  • 0

#58 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 25 March 2016 - 20:57

vlad333000

 

Может кто нибудь показать как правильно, чтоб я смог поискать проблемму?


Сообщение отредактировал Ilias: 25 March 2016 - 21:05

  • 0

#59 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 25 March 2016 - 21:37

Прикрепленный файл  ui1.VR.zip   1.47К   10 Количество загрузок:
  • 1

#60 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 25 March 2016 - 23:28

 vlad333000

thank you,

 

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

Создание GUI .
 

все кто когда либо захочет сделать GUI - вот как это делать:
открывайте GUI builder в игре
жмите | ctrl , s |
выберите "parent classes" , (напишите любое название), |ок|,
| ctrl , v | в любой текстовый документ
                    /|\
базовые (преназначенные) классы и "define" - переменные (по сути не нужны но может GUI builder будет их использовать),
включите это в config.cpp в вашем моде или description.ext,
если работаете в dexcription.ext то вам ещё понадобится включить туда некоторые создаваемые игрой переменные:
над вашими GUI:

#include "\A3\ui_f\hpp\defineCommonGrids.inc"
#include "\A3\ui_f\hpp\defineCommonColors.inc" 

создайте свой GUI:

class |имя| {
	idd = -1;                      // set to -1, if don't require a unique ID
	movingEnable = 1;              // the dialog can be moved with the mouse
	enableSimulation = 0;          // freeze the game
	controlsBackground[] = { };    // not necessary
        objects[] = { };               // not necessary
        controls[] = { };               // our elements
};

дальше используйте GUI builder (используйте safezone "position type" (с "gui grid" что то не так), сохраняйте как config) и вставляйте получаемое:

class |имя| {
	idd = -1;                      // set to -1, if don't require a unique ID
	movingEnable = 1;              // the dialog can be moved with the mouse
	enableSimulation = 0;          // freeze the game
	controlsBackground[] = { };    // not necessary
        objects[] = { };               // not necessary
        class controls {
class |_1_|: |_|
{
	idc = |_|;
	text = "|_|";
	x = |_| * safezoneW + safezoneX;
	y = |_| * safezoneH + safezoneY;
	w = |_| * safezoneW;
	h = |_| * safezoneH;
};
class |_2_|: |_|
{
    idc = |_|;
    text = "|_|";
    x = |_| * safezoneW + safezoneX;
    y = |_| * safezoneH + safezoneY;
    w = |_| * safezoneW;
    h = |_| * safezoneH;
};
        };               // our elements
}; 

или

class |имя| {
	idd = -1;                      // set to -1, if don't require a unique ID
	movingEnable = 1;              // the dialog can be moved with the mouse
	enableSimulation = 0;          // freeze the game
	controlsBackground[] = { };    // not necessary
        objects[] = { };               // not necessary
class |_1_|: |_|
{
	idc = |_|;
	text = "|_|";
	x = |_| * safezoneW + safezoneX;
	y = |_| * safezoneH + safezoneY;
	w = |_| * safezoneW;
	h = |_| * safezoneH;
};
class |_2_|: |_|
{
	idc = |_|;
	text = "|_|";
	x = |_| * safezoneW + safezoneX;
	y = |_| * safezoneH + safezoneY;
	w = |_| * safezoneW;
	h = |_| * safezoneH;
};
        controls[]={|_1_|,|_2_|};               // our elements
};

(создаём элементы),
для первого теста сброшу команду:

createDialog "|имя|";

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

,
для использования изображений: в поддерживающем прозрачный фон редакторе (photoshop подойдёт) расширьте картинку (фон) чтобы общее разрешение было |_1_| x |_2_/|1|=целое цисло| и переведите в .paa (можно с помощью "ImagetoPAA" в B.I.tools), создайте подходящий элемент GUI (например RscPicture) и напишите "text" - путь к файлу (если мод - \|имя мода|\.. , если в папке с миссией - .. (t.paa | pictures\t.paa)).

наслаждайтесь.
 

(дублирование, постинг, зеркалинг этого поста, создание гайда по нему поощряется)


Сообщение отредактировал Ilias: 28 March 2016 - 00:30

  • 1




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