ZoRRo спасибо вашему терпению))) В Arma 3 кое на что ругается, но в целом работает)) Сейчас как следует разберусь. Еще долго залипал в вашем примере))) Сейчас что то начинает доходить) А многое там с А3 не сходится?
Добавлено (25.10.2014, 18:59) --------------------------------------------- Slon Вам тоже огромное спасибо) Удобный способ)
ZoRRo я так понял разница не велика и А2 или А3 вы очень помогли))) Спасибо огромное!
Добавлено (26.10.2014, 12:55) --------------------------------------------- Slon я чуток разобрался в вашей теме, в частности пробовал на А3 вот этот пример
Содержимое Description.ext#include "RscClass.hpp"#include "Dialog.hpp"Содержимое RscClass.hppclass RscShortcutButton {type = 16;idc = -1;style = 0;default = 0;w = 0.183825;h = 0.104575;color[] = {0.543000,0.574200,0.410200,1.000000 };color2[] = {0.950000,0.950000,0.950000,1 };colorBackground[] = {1,1,1,1 };colorbackground2[] = {1,1,1,0.400000 };colorDisabled[] = {1,1,1,0.250000 };periodFocus = 1.200000;periodOver = 0.800000;class HitZone { left = 0.004000; top = 0.029000; right = 0.004000; bottom = 0.029000;};class ShortcutPos { left = 0.014500; top = 0.026000; w = 0.039216; h = 0.052288;};class TextPos { left = 0.025000; top = 0.034000; right = 0.015000; bottom = 0.005000;};animTextureNormal = "\ca\ui\data\ui_button_normal_ca.paa";animTextureDisabled = "\ca\ui\data\ui_button_disabled_ca.paa";animTextureOver = "\ca\ui\data\ui_button_over_ca.paa";animTextureFocused = "\ca\ui\data\ui_button_focus_ca.paa";animTexturePressed = "\ca\ui\data\ui_button_down_ca.paa";animTextureDefault = "\ca\ui\data\ui_button_default_ca.paa";TextureNoShortcut = "";period = 0.400000;font = "PuristaMedium";size = 0.039210;sizeEx = 0.039210;text = "";soundEnter[] = {"\ca\ui\data\sound\mouse2",0.090000,1 };soundPush[] = {"\ca\ui\data\sound\new1",0.090000,1 };soundClick[] = {"\ca\ui\data\sound\mouse3",0.070000,1 };soundEscape[] = {"\ca\ui\data\sound\mouse1",0.090000,1 };action = "";class Attributes { font = "PuristaMedium"; color = "#E5E5E5"; align = "left"; shadow = "true";};class AttributesImage { font = "PuristaMedium"; color = "#E5E5E5"; align = "left";};};Содержимое Dialod.hppclass dialog_new { idd = 61000; movingEnable = 0; objects[] = {}; controlsBackground[] = {}; controls[] = {But0, But1, But2};class But0 : RscShortcutButton { x = 0; y = 0.83; w = 0.3; h = 0.1; text = "Кнопка раз"; action = "as = [] execVM ""kn1.sqf"";";};class But1 : But0 { y = 0.88; text = "Кнопка еще"; action = "as = [] execVM ""kn2.sqf"";";};class But2 : But0 { y = 0.93; text = "Опять Кнопка"; action = "as = [] execVM ""kn3.sqf"";";};};Ну и содержимое скриптов указанных в Dialog.hpp вставил (в каждый) для проверки работоспособности_house = "C_SUV_01_F" createVehicle (getMarkerPos "m1");Содержимое Description.ext, скриптов понятно. Dialog.hpp тоже более или менее ясно. В RscClass.hpp вся проблема, я интуитивно понимаю, что там описано все то, на что ссылается Dialog.hpp, но как ссылается (какими командами) и где взять все виды такого описания как в RscClass.hpp для создания других менюшек?
Добавлено (26.10.2014, 13:00) --------------------------------------------- Slon я чуток разобрался в вашей теме, в частности пробовал на А3 вот этот пример
Содержимое Description.ext
Код
#include "RscClass.hpp"#include "Dialog.hpp"
Содержимое RscClass.hpp
Код
class RscShortcutButton {type = 16;idc = -1;style = 0;default = 0;w = 0.183825;h = 0.104575;color[] = {0.543000,0.574200,0.410200,1.000000 };color2[] = {0.950000,0.950000,0.950000,1 };colorBackground[] = {1,1,1,1 };colorbackground2[] = {1,1,1,0.400000 };colorDisabled[] = {1,1,1,0.250000 };periodFocus = 1.200000;periodOver = 0.800000;class HitZone { left = 0.004000; top = 0.029000; right = 0.004000; bottom = 0.029000;};class ShortcutPos { left = 0.014500; top = 0.026000; w = 0.039216; h = 0.052288;};class TextPos { left = 0.025000; top = 0.034000; right = 0.015000; bottom = 0.005000;};animTextureNormal = "\ca\ui\data\ui_button_normal_ca.paa";animTextureDisabled = "\ca\ui\data\ui_button_disabled_ca.paa";animTextureOver = "\ca\ui\data\ui_button_over_ca.paa";animTextureFocused = "\ca\ui\data\ui_button_focus_ca.paa";animTexturePressed = "\ca\ui\data\ui_button_down_ca.paa";animTextureDefault = "\ca\ui\data\ui_button_default_ca.paa";TextureNoShortcut = "";period = 0.400000;font = "PuristaMedium";size = 0.039210;sizeEx = 0.039210;text = "";soundEnter[] = {"\ca\ui\data\sound\mouse2",0.090000,1 };soundPush[] = {"\ca\ui\data\sound\new1",0.090000,1 };soundClick[] = {"\ca\ui\data\sound\mouse3",0.070000,1 };soundEscape[] = {"\ca\ui\data\sound\mouse1",0.090000,1 };action = "";class Attributes { font = "PuristaMedium"; color = "#E5E5E5"; align = "left"; shadow = "true";};class AttributesImage { font = "PuristaMedium"; color = "#E5E5E5"; align = "left";};};
Содержимое Dialod.hpp
Код
class dialog_new { idd = 61000; movingEnable = 0; objects[] = {}; controlsBackground[] = {}; controls[] = {But0, But1, But2};class But0 : RscShortcutButton { x = 0; y = 0.83; w = 0.3; h = 0.1; text = "Кнопка раз"; action = "as = [] execVM ""kn1.sqf"";";};class But1 : But0 { y = 0.88; text = "Кнопка еще"; action = "as = [] execVM ""kn2.sqf"";";};class But2 : But0 { y = 0.93; text = "Опять Кнопка"; action = "as = [] execVM ""kn3.sqf"";";};};
Ну и содержимое скриптов указанных в Dialog.hpp вставил (в каждый) для проверки работоспособности
Содержимое Description.ext, скриптов понятно. Dialog.hpp тоже более или менее ясно. В RscClass.hpp вся проблема, я интуитивно понимаю, что там описано все то, на что ссылается Dialog.hpp, но как ссылается (какими командами) и как то в RscClass.hpp описано все так не очень понятно. (деструктурировано).
Добавлено (26.10.2014, 13:02) --------------------------------------------- Извиняюсь, но не могу отридактировать свое сообщение.
class HitZone { left = 0.004000; top = 0.029000; right = 0.004000; bottom = 0.029000; };
class ShortcutPos { left = 0.014500; top = 0.026000; w = 0.039216; h = 0.052288; };
class TextPos { left = 0.025000; top = 0.034000; right = 0.015000; bottom = 0.005000; };
class Attributes { font = "PuristaMedium"; color = "#E5E5E5"; align = "left"; shadow = "true"; }; class AttributesImage { font = "PuristaMedium"; color = "#E5E5E5"; align = "left"; }; };
class But0 : RscShortcutButton { x = 0; y = 0.83; w = 0.3; h = 0.1; text = "Кнопка раз"; action = "as = [] execVM ""kn1.sqf"";"; };
class But1 : But0 { y = 0.88; text = "Кнопка еще"; action = "as = [] execVM ""kn2.sqf"";"; };
class But2 : But0 { y = 0.93; text = "Опять Кнопка"; action = "as = [] execVM ""kn3.sqf"";"; }; };
При объявлении класса через двоеточие можно указать класс "родителя", при этом все свойства класса родителя перейдут неявно к классу потомка. Этот крайне полезный механизм называется наследованием. Наследовать можно как от базовых классов ( class But0 : RscShortcutButton ), так и от своих собственных ( class But1 : But0 )
class But0 : RscShortcutButton { x = 0; y = 0.83; w = 0.3; h = 0.1; text = "Кнопка раз"; action = "as = [] execVM ""kn1.sqf"";"; };
class But1 : But0 { y = 0.88; text = "Кнопка еще"; action = "as = [] execVM ""kn2.sqf"";"; };
Так же, в классе-потомке можно перекрывать некоторые свойства класса родителя, в данном примере класс But1 унаследовал как есть свойства: x, w, h от класса But0. А свойство y перекрыл. Тоесть у класса But0 свойство y осталось прежним, а вот у But1 оно имеет теперь своё значение.
ZoRRo спасибо огромное) Теперь яснее все стало))) Я просто в спойлер текст скопировал и он был таким как надо, а отправил и все в куче, не знаю просто как свои сообщения редактировать тут