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

GUI
#41
OFFLINE
Отправлено 27 October 2014 - 02:22
#42
OFFLINE
Отправлено 27 October 2014 - 11:32
А мне хочется насытить арму всякими интересностями и потом создать что то глобальное и такое во что можно будет долго рубиться. Не люблю линейность сюжетов и скованность действий. А еще нравится когда в игре много всяких замороченных тонкостей)))) А по сути мне тоже создавать нравится больше чем играть) Тока создатель из меня пока не очень.
#43
OFFLINE
Отправлено 27 October 2014 - 18:46
Тока создатель из меня пока не очень.
Всего лишь вопрос времени, и терпения.
#45
OFFLINE
Отправлено 27 October 2014 - 19:15
#46
OFFLINE
Отправлено 27 October 2014 - 19:46
vlad333000, Спасибо))) Уже бывал там, но из головы вылетело)
Сообщение отредактировал Djon: 27 October 2014 - 19:46
#47
OFFLINE
Отправлено 27 October 2014 - 21:57
Еще пара маленьких вопросиков)))
1) Создаю описание диалога в одном файле hpp, конструирую его в другом, запускаю скриптом. А как его изменять по ходу миссии? Вот допустим в зависимости от найденного предмета в диалог нужно добавить соответствующую картинку. В этом случае нужно накладывать и запускать два диалога или как то можно вносить изменения или запускать часть описанного диалога?
2) Если как то можно подгрузить эту картинку, то как сделать проверку занято ли первое место под картинку другой, чтоб она не закрыла ее а была помещена на второе место или третье и т.д....
3) class RscText имя такого класса может быть любым или строго определенный список имен? Или возможно родительский класс должен быть определенным а дочерние любыми? Я где то видел ответ на этот вопрос, но тогда еще не понимал о чем идет речь, вы уж извините за такие вопросы.
И еще за то что их три а не пара)))))
#48
OFFLINE
Отправлено 28 October 2014 - 02:46
3
class RscText; class MySuperOfigenniyClass: RscText { };
#49
OFFLINE
Отправлено 28 October 2014 - 03:25
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
#50
OFFLINE
Отправлено 28 October 2014 - 08:17
3
class RscText; class MySuperOfigenniyClass: RscText { };
А в чем разница между class RscText; и другими названиями родительских класснов диалогов? Я чуток не уловил что вы написали. Тут родительский диалог и ссылка на него дочерним, это как раз понятно, я хотел понять какие именно могут быть имена родительских классов диалогов. Он ведь не один class RscText;
Спасибо огромное! Сегодня буду тестировать и разбираться)))
#52
OFFLINE
Отправлено 28 October 2014 - 08:48
я хотел понять какие именно могут быть имена родительских классов диалогов.
Насколько я знаю - любыми, если не содержат спец-символы, кирилицу, пробелы (заменять на _) и не начинается с цифры
My_SuperText1 : My_VeryDefaultText
Сообщение отредактировал vlad333000: 28 October 2014 - 08:49
#53
OFFLINE
Отправлено 28 October 2014 - 08:53
я хотел понять какие именно могут быть имена родительских классов диалогов.
Насколько я знаю - любыми, если не содержат спец-символы, кирилицу, пробелы (заменять на _) и не начинается с цифры
My_SuperText1 : My_VeryDefaultText
Спасибо) Тогда все куда проще)))
#54
OFFLINE
Отправлено 28 October 2014 - 13:02
Тип управления: 1 (или CT_BUTTON, при использовании констант)
Я так понимаю
type = CT_BUTTON;
и
type = 1;
Это одно и тоже (как и остальные типы и возможно стили тоже) Но тут говорят о использовании константы, это как?
Какой из этих вариантов будет работать всегда? 1 это упрощенный вид наверно, если буду использовать полное имя CT_BUTTON так будет надежнее или в зависимости от этих самых констант и нужно ставить либо то либо другое?
Сообщение отредактировал Djon: 28 October 2014 - 13:10
#56
OFFLINE
Отправлено 28 October 2014 - 16:01
vlad333000, А вот если я собираю диалог (типо доп инвентаря чтоб вопрос был понятен) если я его соберу в один класс и запущу его, как мне его редактировать по ходу игры? Или мне нужно его собрать таким образом: все что не должно меняться по ходу миссии это в один диалог а все что может измениться отдельными и просто все это разом будет запускаться (то что необходимо) а остальное запускать сверху имеющегося диалога? И еще как слои определять и куда их писать? В справочнике нашел по слоям layerNumber такую команду, но куда ее засунуть?))) или если возможно то как при самом запуске прописать слой в createDialog.
#57
OFFLINE
Отправлено 28 October 2014 - 23:33
А в чем разница между class RscText; и другими названиями родительских класснов диалогов? Я чуток не уловил что вы написали. Тут родительский диалог и ссылка на него дочерним, это как раз понятно, я хотел понять какие именно могут быть имена родительских классов диалогов. Он ведь не один class RscText;
Распакуйте
ui_f.pbo
А потом в распакованной папке, распакуйте
config.bin
Сделаете много разных, и интересных открытий.
#58
OFFLINE
Отправлено 28 October 2014 - 23:41
А вот если я собираю диалог (типо доп инвентаря чтоб вопрос был понятен) если я его соберу в один класс и запущу его, как мне его редактировать по ходу игры?
Вот то что я вам кинул, как раз и реализует это, возможность кодом настраивать диалог.
Разбирайтесь, сударь, как это работает.
В вашем случае, существует большая доля вероятности, что вам придётся приготовить несколько вариантов конфигурации дисплея, и поредактировать несколько вариантов функций под эти дисплеи.
И повторюсь ещё раз, ни чего тут страшного), у вас есть шаблоны и конфигурации и функции, и строить дом на уже готовом фундаменте уже проще)
#59
OFFLINE
Отправлено 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; }; };
#60
OFFLINE
Отправлено 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
Прикиньте, на много проще ориентироваться по стороне, чем вспоминать какой стороне какая цифра принадлежит в конфиге.