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


Фотография

GUI


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

#41 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 27 October 2014 - 02:22

Я не фанат не того не другого, я фанат песочницы)


  • 0

#42 OFFLINE   Djon

Djon

    Старшина

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

Отправлено 27 October 2014 - 11:32

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


  • 0

#43 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 27 October 2014 - 18:46

 

 

Тока создатель из меня пока не очень.

Всего лишь вопрос времени, и терпения.


  • 0

#44 OFFLINE   Djon

Djon

    Старшина

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

Отправлено 27 October 2014 - 19:11

SteelRat, Вдохновили))) Буду дальше кавырять GUI ))))))

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


  • 0

#45 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 27 October 2014 - 19:15

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

(Дождись полной загрузки страници - тебя автоматом проскролит до нужного места) там есть ссылки на некоторые типы, либо интуитивно понятно
  • 1

#46 OFFLINE   Djon

Djon

    Старшина

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

Отправлено 27 October 2014 - 19:46

vlad333000, Спасибо))) Уже бывал там, но из головы вылетело)


Сообщение отредактировал Djon: 27 October 2014 - 19:46

  • 0

#47 OFFLINE   Djon

Djon

    Старшина

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

Отправлено 27 October 2014 - 21:57

Еще пара маленьких вопросиков))) 

1) Создаю описание диалога в одном файле hpp, конструирую его в другом, запускаю скриптом. А как его изменять по ходу миссии? Вот допустим в зависимости от найденного предмета в диалог нужно добавить соответствующую картинку. В этом случае нужно накладывать и запускать два диалога или как то можно вносить изменения или запускать часть описанного диалога?

2) Если как то можно подгрузить эту картинку, то как сделать проверку занято ли первое место под картинку другой, чтоб она не закрыла ее а была помещена на второе место или третье и т.д....

3) class RscText имя такого класса может быть любым или строго определенный список имен? Или возможно родительский класс должен быть определенным а дочерние любыми? Я где то видел ответ на этот вопрос, но тогда еще не понимал о чем идет речь, вы уж извините за такие вопросы.

И еще за то что их три а не пара)))))


  • 0

#48 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 28 October 2014 - 02:46

3

class RscText;

class MySuperOfigenniyClass: RscText {

};

  • 0

#49 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 28 October 2014 - 03:25

Вот что я намутил ковыряясь на вашу тему.
Сразу скажу это не готовы к употреблению продукт, а направление.
Коротко о главном, в конфигурации армы есть шаблон диалога "RscDisplayCommonHint", и есть функция BIS_fnc_guiHint которая работает с этим диалогом.
И есть косяк с самой функцией от чего вся тема собственно не работает, пришлось потанцевать с бубном ) что бы исправить это недоразумение.
 
И так сделайте тестовую миссию и добавьте в инит миссии это
waitUntil {sleep 0.01; (!isNull player && player == player)};

BIS_fnc_guiHint_2 = compile preprocessFileLineNumbers "\scripts\Functions\GUI\fn_guiHint_2.sqf";

_fnc_activateDialog = {
	
	_cfgweapons = configFile >> "CfgWeapons";
	_weapons = [];

	for "_i" from 0 to (count _cfgWeapons)-1 do {

		_cur_wep = _cfgweapons select _i;

		if(isClass _cur_wep) then {
	
			_classname 			= configName _cur_wep;
			_wep_type 			= getNumber(_cur_wep >> "type");
			_scope 				= getNumber(_cur_wep >> "scope");
			_picture 			= getText(_cur_wep >> "picture");
			_displayName		= getText(_cur_wep >> "displayName");
			_descriptionShort	= getText(_cur_wep >> "descriptionShort");
			if(_scope >= 2 && _wep_type in [1,2,4,4096] && _picture != "" && !(_classname in _weapons)) then {
				_weapons pushBack [_displayName, _descriptionShort, _picture, _picture, _classname];
			};
		};
	};

	_result = [
	/*
		[	//	Элементы списка
			["ListBox_Item_1", "1 элемент списка"],
			["ListBox_Item_2", "2 элемент списка"],
			["ListBox_Item_3", "3 элемент списка"],
			["ListBox_Item_4", "4 элемент списка"],
			["ListBox_Item_5", "5 элемент списка"],
			["ListBox_Item_6", "6 элемент списка"],
			["ListBox_Item_7", "7 элемент списка"],
			["ListBox_Item_8", "8 элемент списка"],
			["ListBox_Item_9", "9 элемент списка"],
			["ListBox_Item_10", "10 элемент списка"],
			["ListBox_Item_11", "11 элемент списка"],
			["ListBox_Item_12", "12 элемент списка"]
		],
	*/
		_weapons,
		"Левый инвентарь",								//	Заголовок диалога
		["Использовать", {/* отсюда вызывается некий код для этого действия */}],	//	Правый батон
		["Выход", {}],									//	Левый батон
		["Выбросить", {}]								//	Средний батон
	] call BIS_fnc_guiHint_2;

	systemChat format["%1", _result];
};

Player addAction ["Activate Dialog", "call _fnc_activateDialog","",-2,false,true];

В папке с армой создайте такой путь папок

\scripts\Functions\GUI

и положите туда файл с функцией

fn_guiHint_2.sqf

Прикрепленный файл  fn_guiHint_2.rar   3.91К   15 Количество загрузок:

 

При старте миссии у вас в меню экшенов будет "Activate Dialog"

 

В описании в файле функции описано как оформлять передаваемые параметры.
Главное тут, понять как это работает, тогда сможете на этой основе построить именно то что вам нужно.
Это не избавит вас от необходимости понимать что такое конфигурация диалогов, так что всё равно разбирайтесь с чем это едят), потому что разбираясь почему не работало всё это по дефолту, мне пришлось совать свой любопытный нос во все места)

 


Сообщение отредактировал SteelRat: 28 October 2014 - 03:28

  • 1

#50 OFFLINE   Djon

Djon

    Старшина

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

Отправлено 28 October 2014 - 08:17

 

3

class RscText;

class MySuperOfigenniyClass: RscText {

};

А в чем разница между class RscText; и другими названиями родительских класснов диалогов? Я чуток не уловил что вы написали. Тут родительский диалог и ссылка на него дочерним, это как раз понятно, я хотел понять какие именно могут быть имена родительских классов диалогов. Он ведь не один class RscText;


 

Спасибо огромное! Сегодня буду тестировать и разбираться)))


  • 0

#51 OFFLINE   Djon

Djon

    Старшина

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

Отправлено 28 October 2014 - 08:30

SteelRat, Заглянул в файл и поправлюсь, разбираться буду не только сегодня)))) 


  • 0

#52 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 28 October 2014 - 08:48

я хотел понять какие именно могут быть имена родительских классов диалогов.

Насколько я знаю - любыми, если не содержат спец-символы, кирилицу, пробелы (заменять на _) и не начинается с цифры

My_SuperText1 : My_VeryDefaultText

Сообщение отредактировал vlad333000: 28 October 2014 - 08:49

  • 1

#53 OFFLINE   Djon

Djon

    Старшина

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

Отправлено 28 October 2014 - 08:53

 

я хотел понять какие именно могут быть имена родительских классов диалогов.

Насколько я знаю - любыми, если не содержат спец-символы, кирилицу, пробелы (заменять на _) и не начинается с цифры

My_SuperText1 : My_VeryDefaultText

Спасибо) Тогда все куда проще)))


  • 0

#54 OFFLINE   Djon

Djon

    Старшина

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

Отправлено 28 October 2014 - 13:02

Тип управления: 1 (или CT_BUTTON, при использовании констант)

Я так понимаю

type = CT_BUTTON;

и 

type = 1;

Это одно и тоже (как и остальные типы и возможно стили тоже) Но тут говорят о использовании константы, это как?

 

Какой из этих вариантов будет работать всегда? 1 это упрощенный вид наверно, если буду использовать полное имя CT_BUTTON так будет надежнее или в зависимости от этих самых констант и нужно ставить либо то либо другое?


Сообщение отредактировал Djon: 28 October 2014 - 13:10

  • 0

#55 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 28 October 2014 - 13:14

Djon, да все верно, но писать в ""
Я тебе даже больше скажу,
Так тоже можно: style = "0x00 + 0x40";

Сообщение отредактировал vlad333000: 28 October 2014 - 13:16

  • 0

#56 OFFLINE   Djon

Djon

    Старшина

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

Отправлено 28 October 2014 - 16:01

vlad333000,  А вот если я собираю диалог (типо доп инвентаря чтоб вопрос был понятен) если я его соберу в один класс и запущу его, как мне его редактировать по ходу игры? Или мне нужно его собрать таким образом: все что не должно меняться по ходу миссии это в один диалог а все что может измениться отдельными и просто все это разом будет запускаться (то что необходимо) а остальное запускать сверху имеющегося диалога? И еще как слои определять и куда их писать? В справочнике нашел по слоям layerNumber такую команду, но куда ее засунуть?))) или если возможно то как при самом запуске прописать слой в createDialog.


  • 0

#57 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 28 October 2014 - 23:33

 

 

А в чем разница между class RscText; и другими названиями родительских класснов диалогов? Я чуток не уловил что вы написали. Тут родительский диалог и ссылка на него дочерним, это как раз понятно, я хотел понять какие именно могут быть имена родительских классов диалогов. Он ведь не один class RscText;

Распакуйте

ui_f.pbo

А потом в распакованной папке, распакуйте

config.bin

Сделаете много разных, и интересных открытий.


  • 0

#58 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 28 October 2014 - 23:41

 

 

А вот если я собираю диалог (типо доп инвентаря чтоб вопрос был понятен) если я его соберу в один класс и запущу его, как мне его редактировать по ходу игры?

Вот то что я вам кинул, как раз и реализует это, возможность кодом настраивать диалог.

Разбирайтесь, сударь, как это работает.

 

В вашем случае, существует большая доля вероятности, что вам придётся приготовить несколько вариантов конфигурации дисплея, и поредактировать несколько вариантов функций под эти дисплеи.

 

И повторюсь ещё раз, ни чего тут страшного), у вас есть шаблоны и конфигурации и функции, и строить дом на уже готовом фундаменте уже проще)


  • 0

#59 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 28 October 2014 - 23:49

 

 

Тип управления: 1 (или CT_BUTTON, при использовании констант)

Константами неким числам даются интуитивно понятные имена

#define true	1
#define false	0

#define VSoft		0
#define VArmor		1
#define VAir		2

#define ReadAndWrite		0
#define ReadAndCreate		1
#define ReadOnly		2
#define ReadOnlyVerified		3

#define private		0
#define protected		1
#define public		2

#define TEast		0
#define TWest		1
#define TGuerrila		2
#define TCivilian		3
#define TSideUnknown		4
#define TEnemy		5
#define TFriendly		6
#define TLogic		7

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

class cfgVehicles {
     class Box {
          isGround = 1;
          isGround = true;
     };
}; 

  • 0

#60 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 28 October 2014 - 23:56

PS

И всегда на много проще запомнить слово или короткое выражение, чем безликую цифру.

#define TEast		0
#define TWest		1
#define TGuerrila		2
#define TCivilian		3
#define TSideUnknown		4
#define TEnemy		5
#define TFriendly		6
#define TLogic		7

Прикиньте, на много проще ориентироваться по стороне, чем вспоминать какой стороне какая цифра принадлежит в конфиге.


  • 0




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