Портал игровых серверов GMNET.RU - ArmA2.RU
spacerspacer Главная spacerspacer Форум spacerspacer Игровые Сервера spacerspacer Правила Игровых Серверов spacerspacer
Старый 28.01.2017, 23:02   #1
grenman11
Рядовой
 
Регистрация: 06.11.2015
Сообщений: 6
Сказал cпасибо: 0
Поблагодарили 0 раз в 0 сообщениях
Проблема при адаптировании Task Force с Invasion 1944

Здравтсвуйте товарищи, постепенно изучаю инструментарий аддонмейкера. Возникла необходимость адпатировать таск форс под I44, в данный момомент вот что имеется.

Скрытый текст


Для дв рации была заменена модель.

[Только зарегистрированные и активированные пользователи могут видеть ссылки. ]

[свернуть]


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

Скрытый текст


[Только зарегистрированные и активированные пользователи могут видеть ссылки. ]
[Только зарегистрированные и активированные пользователи могут видеть ссылки. ]
[свернуть]


А теперь с самого начала.
Изначально я решил посмотреть как выглядят дв рации ванильные, из аддона Task Force Radio A2 поскольку они вели себя так же в инвейжоне.

Скрытый текст


[Только зарегистрированные и активированные пользователи могут видеть ссылки. ]
[свернуть]

Собственно не стандартное положение для рюкзаков, в ACE кстати говоря все рюкзаки так же расположены. Модельку с инвейжона я расположил аналогично, но проблема очевидно никуда не исчезла. Решил покопать в сторону model.cfg поскольку он был не забинарен с моделями.

Вот его оригинальное содержимое.

Скрытый текст


class CfgSkeletons
{
class Default
{
isDiscrete = 1;
skeletonInherit = "";
skeletonBones[] = {};
};
class OFP2_ManSkeleton
{
isDiscrete = 0;
skeletonInherit = "";
skeletonBones[] =
{
"Pelvis","",
"Spine","Pelvis",
"Spine1","Spine",
"Spine2","Spine1",
"Spine3","Spine2",
"Camera","Pelvis",
"weapon","Spine1",
"launcher","Spine1",
//Head skeleton in hierarchy
"neck","Spine3",
"neck1","neck",
"head","neck1",
//New facial features
"Face_Hub","head",
"Face_Jawbone","Face_Hub",
"Face_Jowl","Face_Jawbone",
"Face_chopRight","Face_Jawbone",
"Face_chopLeft","Face_Jawbone",
"Face_LipLowerMiddle","Face_Jawbone",
"Face_LipLowerLeft","Face_Jawbone",
"Face_LipLowerRight","Face_Jawbone",
"Face_Chin","Face_Jawbone",
"Face_Tongue","Face_Jawbone",
"Face_CornerRight","Face_Hub",
"Face_CheekSideRight","Face_CornerRight",
"Face_CornerLeft","Face_Hub",
"Face_CheekSideLeft","Face_CornerLeft",
"Face_CheekFrontRight","Face_Hub",
"Face_CheekFrontLeft","Face_Hub",
"Face_CheekUpperRight","Face_Hub",
"Face_CheekUpperLeft","Face_Hub",
"Face_LipUpperMiddle","Face_Hub",
"Face_LipUpperRight","Face_Hub",
"Face_LipUpperLeft","Face_Hub",
"Face_NostrilRight","Face_Hub",
"Face_NostrilLeft","Face_Hub",
"Face_Forehead","Face_Hub",
"Face_BrowFrontRight","Face_Forehead",
"Face_BrowFrontLeft","Face_Forehead",
"Face_BrowMiddle","Face_Forehead",
"Face_BrowSideRight","Face_Forehead",
"Face_BrowSideLeft","Face_Forehead",
"Face_Eyelids","Face_Hub",
"Face_EyelidUpperRight","Face_Hub",
"Face_EyelidUpperLeft","Face_Hub",
"Face_EyelidLowerRight","Face_Hub",
"Face_EyelidLowerLeft","Face_Hub",
"EyeLeft","Face_Hub",
"EyeRight","Face_Hub",
//Left upper side
"LeftShoulder","Spine3",
"LeftArm","LeftShoulder",
"LeftArmRoll","LeftArm",
"LeftForeArm","LeftArmRoll",
"LeftForeArmRoll","LeftForeArm",
"LeftHand","LeftForeArmRoll",
"LeftHandRing","LeftHand",
"LeftHandRing1","LeftHandRing",
"LeftHandRing2","LeftHandRing1",
"LeftHandRing3","LeftHandRing2",
"LeftHandPinky1","LeftHandRing",
"LeftHandPinky2","LeftHandPinky1",
"LeftHandPinky3","LeftHandPinky2",
"LeftHandMiddle1","LeftHand",
"LeftHandMiddle2","LeftHandMiddle1",
"LeftHandMiddle3","LeftHandMiddle2",
"LeftHandIndex1","LeftHand",
"LeftHandIndex2","LeftHandIndex1",
"LeftHandIndex3","LeftHandIndex2",
"LeftHandThumb1","LeftHand",
"LeftHandThumb2","LeftHandThumb1",
"LeftHandThumb3","LeftHandThumb2",
//Right upper side
"RightShoulder","Spine3",
"RightArm","RightShoulder",
"RightArmRoll","RightArm",
"RightForeArm","RightArmRoll",
"RightForeArmRoll","RightForeArm",
"RightHand","RightForeArmRoll",
"RightHandRing","RightHand",
"RightHandRing1","RightHandRing",
"RightHandRing2","RightHandRing1",
"RightHandRing3","RightHandRing2",
"RightHandPinky1","RightHandRing",
"RightHandPinky2","RightHandPinky1",
"RightHandPinky3","RightHandPinky2",
"RightHandMiddle1","RightHand",
"RightHandMiddle2","RightHandMiddle1",
"RightHandMiddle3","RightHandMiddle2",
"RightHandIndex1","RightHand",
"RightHandIndex2","RightHandIndex1",
"RightHandIndex3","RightHandIndex2",
"RightHandThumb1","RightHand",
"RightHandThumb2","RightHandThumb1",
"RightHandThumb3","RightHandThumb2",
//Left lower side
"LeftUpLeg","Pelvis",
"LeftUpLegRoll","LeftUpLeg",
"LeftLeg","LeftUpLegRoll",
"LeftLegRoll","LeftLeg",
"LeftFoot","LeftLegRoll",
"LeftToeBase","LeftFoot",
//Right lower side
"RightUpLeg","Pelvis",
"RightUpLegRoll","RightUpLeg",
"RightLeg","RightUpLegRoll",
"RightLegRoll","RightLeg",
"RightFoot","RightLegRoll",
"RightToeBase","RightFoot"
};
// location of pivot points (local axes) for hierarchical animation
pivotsModel="A3\anims_f\data\skeleton\SkeletonPivots.p3d";
};
};

class CfgModels
{
class Default
{
sectionsInherit="";
sections[] = {};
skeletonName = "";
};
class ArmaMan : Default
{
htMin = 60; // Minimum half-cooling time (in seconds)
htMax = 1800; // Maximum half-cooling time (in seconds)
afMax = 30; // Maximum temperature in case the model is alive (in celsius)
mfMax = 0; // Maximum temperature when the model is moving (in celsius)
mFact = 1; // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)).
tBody = 37; // Metabolism temperature of the model (in celsius)

sections[] =
{
"osobnost","Head_Injury","Body_Injury","l_leg_injury","l_arm_injury","r_arm_injury","r_leg_injury","injury_body", "injury_legs", "injury_hands",
"clan","clan_sign","Camo","CamoB","Camo1","Camo2","personality","hl", "injury_head"
};
skeletonName = "OFP2_ManSkeleton";
};
class TFR_Backpack: ArmaMan{
sections[] = {"camo"};
};
class clf_prc117g_ap: ArmaMan{
sections[] = {"camo"};
};
class clf_nicecomm2: ArmaMan{
sections[] = {"camo"};
};
class clf_nicecomm2_prc117g: ArmaMan{
sections[] = {"camo"};
};
};
[свернуть]


В последствии я его заменил на model.cfg из примера по созданию рюкзаков от stalkergb.

Который выглядит так.

Скрытый текст


class Rotation
{
type = "rotation";
memory = 1;
minValue = 0;
maxValue = 1;
angle0 = 0;
angle1 = 1;
};
class CfgSkeletons
{
class Default
{
isDiscrete = 1;
skeletonInherit = "";
skeletonBones[] = {};
};
class Vehicle : Default {};
class Car : Vehicle
{
skeletonBones[]=
{
"drivewheel","",

"wheel_1_1_damper_land","",
"wheel_1_2_damper_land","",
"wheel_1_3_damper_land","",
"wheel_1_4_damper_land","",

"wheel_2_1_damper_land","",
"wheel_2_2_damper_land","",
"wheel_2_3_damper_land","",
"wheel_2_4_damper_land","",

"wheel_1_1_damper","wheel_1_1_damper_land",
"wheel_1_2_damper","wheel_1_2_damper_land",
"wheel_1_3_damper","wheel_1_3_damper_land",
"wheel_1_4_damper","wheel_1_4_damper_land",

"wheel_2_1_damper","wheel_2_1_damper_land",
"wheel_2_2_damper","wheel_2_2_damper_land",
"wheel_2_3_damper","wheel_2_3_damper_land",
"wheel_2_4_damper","wheel_2_4_damper_land",

"wheel_1_1_steering","wheel_1_1_damper",
"wheel_1_2_steering","wheel_1_2_damper",
"wheel_1_3_steering","wheel_1_3_damper",
"wheel_1_4_steering","wheel_1_4_damper",

"wheel_2_1_steering","wheel_2_1_damper",
"wheel_2_2_steering","wheel_2_2_damper",
"wheel_2_3_steering","wheel_2_3_damper",
"wheel_2_4_steering","wheel_2_4_damper",

"wheel_1_1","wheel_1_1_steering",
"wheel_1_2","wheel_1_2_steering",
"wheel_1_3","wheel_1_3_steering",
"wheel_1_4","wheel_1_4_steering",

"wheel_2_1","wheel_2_1_steering",
"wheel_2_2","wheel_2_2_steering",
"wheel_2_3","wheel_2_3_steering",
"wheel_2_4","wheel_2_4_steering",

"wheel_1_1_unhide","wheel_1_1",
"wheel_1_2_unhide","wheel_1_2",
"wheel_1_3_unhide","wheel_1_3",
"wheel_1_4_unhide","wheel_1_4",

"wheel_2_1_unhide","wheel_2_1",
"wheel_2_2_unhide","wheel_2_2",
"wheel_2_3_unhide","wheel_2_3",
"wheel_2_4_unhide","wheel_2_4",

"wheel_1_1_hide","wheel_1_1",
"wheel_1_2_hide","wheel_1_2",
"wheel_1_3_hide","wheel_1_3",
"wheel_1_4_hide","wheel_1_4",

"wheel_2_1_hide","wheel_2_1",
"wheel_2_2_hide","wheel_2_2",
"wheel_2_3_hide","wheel_2_3",
"wheel_2_4_hide","wheel_2_4",

"OtocVez","",
"OtocHlaven","OtocVez",

"damageHide","",
"damageVez","OtocVez",
"damageHlaven","OtocHlaven",

"ukaz_rychlo","",
"ukaz_rychlo2","",
"ukaz_rpm","",
"mph","",
"rpm","",
"fuel","",
"fuel_1","",
"fuel_01","",
"fuel_2","",
"fuel_3","",
"prop_01","",
"prop_02","",
"prop_2","",
"prop_1","",
"glass1","damageHide",
"glass2","damageHide",
"glass3","damageHide",
"glass4","damageHide",
};
};
class Flag: Default {};
class FlagCarrier: Default
{
skeletonInherit = "Default";
skeletonBones[] =
{
"stozar","",
"vlajka",""
};
};
class Head
{
isDiscrete = 0;
skeletonInherit = "";
skeletonBones[] =
{
"neck","",
"neck1","neck",
"head","neck1",
"jaw","head",
"chin","head",
"jaw_rf","head",
"jaw_rm","head",
"jaw_rs","head",
"jaw_lf","head",
"jaw_lm","head",
"jaw_ls","head",
"ear_r","head",
"ear_l","head",
"lip_lc","head",
"lip_lwlb","head",
"lip_lwlf","head",
"lip_lwm","head",
"lip_lwrf","head",
"lip_lwrb","head",
"lip_rc","head",
"lip_uprb","head",
"lip_uprf","head",
"lip_upm","head",
"lip_uplf","head",
"lip_uplb","head",
"nose_tip","head",
"nose_r","head",
"nose_l","head",
"zig_lt","head",
"zig_lm","head",
"zig_lb","head",
"zig_rt","head",
"zig_rm","head",
"zig_rb","head",
"cheek_r","head",
"cheek_l","head",
"eyebrow_lb","head",
"eyebrow_lm","head",
"eyebrow_lf","head",
"corr","head",
"eyebrow_rf","head",
"eyebrow_rm","head",
"eyebrow_rb","head",
"eye_upr","head",
"eye_lwr","head",
"eye_upl","head",
"eye_lwl","head",
"cheek_rf","head",
"cheek_rm","head",
"cheek_rb","head",
"cheek_lf","head",
"cheek_lm","head",
"cheek_lb","head",
"forehead_l","head",
"forehead_m","head",
"forehead_r","head",
"l_eye","head",
"r_eye","head",
"l_pupila","head",
"r_pupila","head",
"neck_t","head",
"neck_b","head",
"neck_r","head",
"neck_l","head",
"tongue_b","head",
"tongue_m","head",
"tongue_f","head"
};
};
class OFP2_ManSkeleton
{
isDiscrete = 0;
skeletonInherit = "";
skeletonBones[] =
{
"Pelvis","",
"Spine","Pelvis",
"Spine1","Spine",
"Spine2","Spine1",
"Spine3","Spine2",
"Camera","Pelvis",
"weapon","Spine1",
"launcher","Spine1",
//Head skeleton in hierarchy
"neck","Spine3",
"neck1","neck",
"head","neck1",
"HeadCutScene","head",
"jaw","head",
"chin","head",
"jaw_rf","head",
"jaw_rm","head",
"jaw_rs","head",
"jaw_lf","head",
"jaw_lm","head",
"jaw_ls","head",
"ear_r","head",
"ear_l","head",
"lip_lc","head",
"lip_lwlb","head",
"lip_lwlf","head",
"lip_lwm","head",
"lip_lwrf","head",
"lip_lwrb","head",
"lip_rc","head",
"lip_uprb","head",
"lip_uprf","head",
"lip_upm","head",
"lip_uplf","head",
"lip_uplb","head",
"nose_tip","head",
"nose_r","head",
"nose_l","head",
"zig_lt","head",
"zig_lm","head",
"zig_lb","head",
"zig_rt","head",
"zig_rm","head",
"zig_rb","head",
"cheek_r","head",
"cheek_l","head",
"eyebrow_lb","head",
"eyebrow_lm","head",
"eyebrow_lf","head",
"corr","head",
"eyebrow_rf","head",
"eyebrow_rm","head",
"eyebrow_rb","head",
"eye_upr","head",
"eye_lwr","head",
"eye_upl","head",
"eye_lwl","head",
"cheek_rf","head",
"cheek_rm","head",
"cheek_rb","head",
"cheek_lf","head",
"cheek_lm","head",
"cheek_lb","head",
"forehead_l","head",
"forehead_m","head",
"forehead_r","head",
"l_eye","head",
"r_eye","head",
"l_pupila","head",
"r_pupila","head",
"neck_t","head",
"neck_b","head",
"neck_r","head",
"neck_l","head",
"tongue_b","head",
"tongue_m","head",
"tongue_f","head",
//Left upper side
"LeftShoulder","Spine3",
"LeftArm","LeftShoulder",
"LeftArmRoll","LeftArm",
"LeftForeArm","LeftArmRoll",
"LeftForeArmRoll","LeftForeArm",
"LeftHand","LeftForeArmRoll",
"LeftHandRing","LeftHand",
"LeftHandRing1","LeftHandRing",
"LeftHandRing2","LeftHandRing1",
"LeftHandRing3","LeftHandRing2",
"LeftHandPinky1","LeftHandRing",
"LeftHandPinky2","LeftHandPinky1",
"LeftHandPinky3","LeftHandPinky2",
"LeftHandMiddle1","LeftHand",
"LeftHandMiddle2","LeftHandMiddle1",
"LeftHandMiddle3","LeftHandMiddle2",
"LeftHandIndex1","LeftHand",
"LeftHandIndex2","LeftHandIndex1",
"LeftHandIndex3","LeftHandIndex2",
"LeftHandThumb1","LeftHand",
"LeftHandThumb2","LeftHandThumb1",
"LeftHandThumb3","LeftHandThumb2",
//Right upper side
"RightShoulder","Spine3",
"RightArm","RightShoulder",
"RightArmRoll","RightArm",
"RightForeArm","RightArmRoll",
"RightForeArmRoll","RightForeArm",
"RightHand","RightForeArmRoll",
"RightHandRing","RightHand",
"RightHandRing1","RightHandRing",
"RightHandRing2","RightHandRing1",
"RightHandRing3","RightHandRing2",
"RightHandPinky1","RightHandRing",
"RightHandPinky2","RightHandPinky1",
"RightHandPinky3","RightHandPinky2",
"RightHandMiddle1","RightHand",
"RightHandMiddle2","RightHandMiddle1",
"RightHandMiddle3","RightHandMiddle2",
"RightHandIndex1","RightHand",
"RightHandIndex2","RightHandIndex1",
"RightHandIndex3","RightHandIndex2",
"RightHandThumb1","RightHand",
"RightHandThumb2","RightHandThumb1",
"RightHandThumb3","RightHandThumb2",
//Left lower side
"LeftUpLeg","Pelvis",
"LeftUpLegRoll","LeftUpLeg",
"LeftLeg","LeftUpLegRoll",
"LeftLegRoll","LeftLeg",
"LeftFoot","LeftLegRoll",
"LeftToeBase","LeftFoot",
//Right lower side
"RightUpLeg","Pelvis",
"RightUpLegRoll","RightUpLeg",
"RightLeg","RightUpLegRoll",
"RightLegRoll","RightLeg",
"RightFoot","RightLegRoll",
"RightToeBase","RightFoot"
};
// location of pivot points (local axes) for hierarchical animation
pivotsModel="";
};
class WomanSkeleton
{
isDiscrete = 0;
skeletonInherit = "";
skeletonBones[] =
{
"Pelvis","",
"Spine","Pelvis",
"Spine1","Spine",
"Spine2","Spine1",
"Spine3","Spine2",
"Camera","Pelvis",

//Head skeleton in hierarchy
"neck","Spine3",
"neck1","neck",
"head","neck1",
"jaw","head",
"chin","head",
"jaw_rm","head",
"jaw_lm","head",
"lip_lc","head",
"lip_lwlb","head",
"lip_lwlf","head",
"lip_lwm","head",
"lip_lwrf","head",
"lip_lwrb","head",
"lip_rc","head",
"lip_uprf","head",
"lip_upm","head",
"lip_uplf","head",
"nose_r","head",
"nose_l","head",
"zig_lt","head",
"zig_rt","head",
"cheek_r","head",
"cheek_l","head",
"eyebrow_lm","head",
"corr","head",
"eyebrow_rm","head",
"eye_upr","head",
"eye_lwr","head",
"eye_upl","head",
"eye_lwl","head",
"cheek_rf","head",
"cheek_lf","head",
"forehead_m","head",
"l_eye","head",
"r_eye","head",
//Left upper side
"LeftShoulder","Spine3",
"LeftArm","LeftShoulder",
"LeftArmRoll","LeftArm",
"LeftForeArm","LeftArmRoll",
"LeftForeArmRoll","LeftForeArm",
"LeftHand","LeftForeArmRoll",
"LeftInHandRing","LeftHand",
"LeftHandRing1","LeftInHandRing",
"LeftHandRing2","LeftHandRing1",
"LeftHandRing3","LeftHandRing2",
"LeftHandPinky1","LeftInHandRing",
"LeftHandPinky2","LeftHandPinky1",
"LeftHandPinky3","LeftHandPinky2",
"LeftHandMiddle1","LeftHand",
"LeftHandMiddle2","LeftHandMiddle1",
"LeftHandMiddle3","LeftHandMiddle2",
"LeftHandIndex1","LeftHand",
"LeftHandIndex2","LeftHandIndex1",
"LeftHandIndex3","LeftHandIndex2",
"LeftHandThumb1","LeftHand",
"LeftHandThumb2","LeftHandThumb1",
"LeftHandThumb3","LeftHandThumb2",
//Right upper side
"RightShoulder","Spine3",
"RightArm","RightShoulder",
"RightArmRoll","RightArm",
"RightForeArm","RightArmRoll",
"RightForeArmRoll","RightForeArm",
"RightHand","RightForeArmRoll",
"RightInHandRing","RightHand",
"RightHandRing1","RightInHandRing",
"RightHandRing2","RightHandRing1",
"RightHandRing3","RightHandRing2",
"RightHandPinky1","RightInHandRing",
"RightHandPinky2","RightHandPinky1",
"RightHandPinky3","RightHandPinky2",
"RightHandMiddle1","RightHand",
"RightHandMiddle2","RightHandMiddle1",
"RightHandMiddle3","RightHandMiddle2",
"RightHandIndex1","RightHand",
"RightHandIndex2","RightHandIndex1",
"RightHandIndex3","RightHandIndex2",
"RightHandThumb1","RightHand",
"RightHandThumb2","RightHandThumb1",
"RightHandThumb3","RightHandThumb2",
//Left lower side
"LeftUpLeg","Pelvis",
"LeftUpLegRoll","LeftUpLeg",
"LeftLeg","LeftUpLegRoll",
"LeftLegRoll","LeftLeg",
"LeftFoot","LeftLegRoll",
"LeftToeBase","LeftFoot",
//Right lower side
"RightUpLeg","Pelvis",
"RightUpLegRoll","RightUpLeg",
"RightLeg","RightUpLegRoll",
"RightLegRoll","RightLeg",
"RightFoot","RightLegRoll",
"RightToeBase","RightFoot"
};
// location of pivot points (local axes) for hierarchical animation
pivotsModel="";
};
};

class CfgModels
{
class Default
{
sectionsInherit="";
sections[] = {};
skeletonName = "";
};
class Head: Default
{
sections[] =
{
"osobnost",
"brejle"
};
skeletonName = "Head";
};
class ArmaMan : Default
{
sections[] =
{
"osobnost","Head_Injury","Body_Injury","l_leg_injury","l_arm_injury","r_arm_injury","r_leg_injury",
"clan","clan_sign","Camo","CamoB"
};
skeletonName = "OFP2_ManSkeleton";
};


class charliepack_green_prc119: ArmaMan {};
class ace_coyote_prc77: ArmaMan {};
class ace_alice_backpack_p159: ArmaMan {};



class ArmaWomanefault
{
sections[] =
{
"osobnost","Head_Injury","Body_Injury","l_leg_injury","l_arm_injury","r_arm_injury","r_leg_injury",
"clan","clan_sign","Camo","CamoB"
};
skeletonName = "WomanSkeleton";
};
class Vehicle: Default
{
sections[] =
{
"cislo",
"grupa",
"side",
"sektor",
"clan",
"clan_sign",
"podsvit pristroju",
"poskozeni",
"L svetlo",
"P svetlo",
"zasleh"
};
};
class Flag: Default
{
sections[] = {"latka"};
};
class flag_auto: Flag {};
class flag_alone: Flag {};
};
[свернуть]


В котором я прописал названия используемых моделей дв раций из аддона.

class charliepack_green_prc119: ArmaMan {};
class ace_coyote_prc77: ArmaMan {};
class ace_alice_backpack_p159: ArmaMan {};

Однако ситуации это не помогло.

Лично по моим ощущениям проблема будто бы model.cfg вовсе не работает.

Прошу совета сообщества в решении моей проблемы.

Последний раз редактировалось grenman11; 28.01.2017 в 23:18. Причина: фикс
grenman11 вне форума   Ответить с цитированием
Старый 28.01.2017, 23:04   #2
grenman11
Рядовой
 
Регистрация: 06.11.2015
Сообщений: 6
Сказал cпасибо: 0
Поблагодарили 0 раз в 0 сообщениях
На всякий случай прилеплю и содержимое config.hpp

Скрытый текст


class CfgPatches
{
class task_force_radio_items
{
units[] = {"tfar_ModuleTaskForceRadioEnforceUsage", "tfar_ModuleTaskForceRadio", "tfar_ModuleTaskForceRadioFrequencies", "TF_NATO_Radio_Crate", "TF_EAST_Radio_Crate", "TF_GUER_Radio_Crate", "TF_IND_Radio_Crate"};
weapons[] = {};
requiredVersion = 1.0;
requiredAddons[] = {"Extended_EventHandlers","CBA_main"};
author[] = {"[TF]Nkey & Levrex"};
authorUrl = "https://github.com/michail-nikolaev/task-force-arma-3-radio";
version = 0.9.7;
versionStr = "0.9.7";
versionAr[] = {0,9,7};
};
};

class CfgFactionClasses
{
/*class TFAR
{
displayName = "TFAR";
priority = 10;
side = 7;
};*/
class BIS_TK
{
rifleman_tf_faction_radio = "tf_pnr1000a";
personal_tf_faction_radio = "tf_fadak";
backpack_tf_faction_radio = "tf_mr3000";
};
class BIS_TK_INS
{
rifleman_tf_faction_radio = "tf_dtr650";
personal_tf_faction_radio = "tf_anprc148jem";
backpack_tf_faction_radio = "tf_mr3000";
};
class BIS_UN
{
rifleman_tf_faction_radio = "tf_anprc154";
personal_tf_faction_radio = "tf_anprc148jem";
backpack_tf_faction_radio = "tf_anprc155";
};
class BIS_TK_CIV
{
rifleman_tf_faction_radio = "tf_anprc154";
personal_tf_faction_radio = "tf_pd785";
backpack_tf_faction_radio = "tf_anprc155";
};
class BIS_BAF
{
rifleman_tf_faction_radio = "tf_anprc154";
personal_tf_faction_radio = "tf_anprc148jem";
backpack_tf_faction_radio = "tf_anprc155";
};
class CDF
{
rifleman_tf_faction_radio = "tf_anprc154";
personal_tf_faction_radio = "tf_anprc148jem";
backpack_tf_faction_radio = "tf_anprc155";
};
class BIS_GER
{
rifleman_tf_faction_radio = "tf_dtr650";
personal_tf_faction_radio = "tf_anprc148jem";
backpack_tf_faction_radio = "tf_gm380";
};
};

class CfgVehicleClasses
{
class TFAR_ammunition
{
displayName = "$STR_TFAR_VEHCLASS";
};
};

class CfgFontFamilies
{
class tf_font_dots
{
fonts[] = {
"\task_force_radio_items\fonts\dots\dots6",
"\task_force_radio_items\fonts\dots\dots7",
"\task_force_radio_items\fonts\dots\dots8",
"\task_force_radio_items\fonts\dots\dots9",
"\task_force_radio_items\fonts\dots\dots10",
"\task_force_radio_items\fonts\dots\dots11",
"\task_force_radio_items\fonts\dots\dots12",
"\task_force_radio_items\fonts\dots\dots13",
"\task_force_radio_items\fonts\dots\dots14",
"\task_force_radio_items\fonts\dots\dots15",
"\task_force_radio_items\fonts\dots\dots16",
"\task_force_radio_items\fonts\dots\dots17",
"\task_force_radio_items\fonts\dots\dots18",
"\task_force_radio_items\fonts\dots\dots19",
"\task_force_radio_items\fonts\dots\dots20",
"\task_force_radio_items\fonts\dots\dots21",
"\task_force_radio_items\fonts\dots\dots22",
"\task_force_radio_items\fonts\dots\dots23",
"\task_force_radio_items\fonts\dots\dots24",
"\task_force_radio_items\fonts\dots\dots25",
"\task_force_radio_items\fonts\dots\dots26",
"\task_force_radio_items\fonts\dots\dots27",
"\task_force_radio_items\fonts\dots\dots28",
"\task_force_radio_items\fonts\dots\dots29",
"\task_force_radio_items\fonts\dots\dots30",
"\task_force_radio_items\fonts\dots\dots31",
"\task_force_radio_items\fonts\dots\dots32",
"\task_force_radio_items\fonts\dots\dots33",
"\task_force_radio_items\fonts\dots\dots34",
"\task_force_radio_items\fonts\dots\dots35",
"\task_force_radio_items\fonts\dots\dots36"
};

spaceWidth = 0.6;
spacing = 0.15;
};
class tf_font_segments
{
fonts[] = {
"\task_force_radio_items\fonts\segments\segments6",
"\task_force_radio_items\fonts\segments\segments7",
"\task_force_radio_items\fonts\segments\segments8",
"\task_force_radio_items\fonts\segments\segments9",
"\task_force_radio_items\fonts\segments\segments10",
"\task_force_radio_items\fonts\segments\segments11",
"\task_force_radio_items\fonts\segments\segments12",
"\task_force_radio_items\fonts\segments\segments13",
"\task_force_radio_items\fonts\segments\segments14",
"\task_force_radio_items\fonts\segments\segments15",
"\task_force_radio_items\fonts\segments\segments16",
"\task_force_radio_items\fonts\segments\segments17",
"\task_force_radio_items\fonts\segments\segments18",
"\task_force_radio_items\fonts\segments\segments19",
"\task_force_radio_items\fonts\segments\segments20",
"\task_force_radio_items\fonts\segments\segments21",
"\task_force_radio_items\fonts\segments\segments22",
"\task_force_radio_items\fonts\segments\segments23",
"\task_force_radio_items\fonts\segments\segments24",
"\task_force_radio_items\fonts\segments\segments25",
"\task_force_radio_items\fonts\segments\segments26",
"\task_force_radio_items\fonts\segments\segments27",
"\task_force_radio_items\fonts\segments\segments28",
"\task_force_radio_items\fonts\segments\segments29",
"\task_force_radio_items\fonts\segments\segments30",
"\task_force_radio_items\fonts\segments\segments31",
"\task_force_radio_items\fonts\segments\segments32",
"\task_force_radio_items\fonts\segments\segments33",
"\task_force_radio_items\fonts\segments\segments34",
"\task_force_radio_items\fonts\segments\segments35",
"\task_force_radio_items\fonts\segments\segments36"
};

spaceWidth = 0.8;
spacing = 0.3;
};
};

class CfgVehicles {
class ReammoBox;

class TFAR_Bag_Base: ReammoBox
{
accuracy = 1000;
ace_canbecargo = "true";
ace_canbeload = "false";
ace_cangear = "false";
ace_canloadfront = "true";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
scope = 1;
supplyradius = 3;
vehicleclass = "ACE_Ammunition_Ruck";
tf_radio = 1;
tf_prototype = 1;
tf_encryptionCode = "";
tf_range = 20000;
tf_dialogUpdate = "call TFAR_fnc_updateLRDialogToChannel;";
mass = 15;
tf_hasLRradio = 1;
model = "\task_force_radio_items\models\ace_coyote_prc77.p3d";
class TransportWeapons {
};
class TransportMagazines {
};
};

class tf_rt1523g_crate: TFAR_Bag_Base
{
displayName = "RT-1523G (ASIP)";
descriptionShort = "RT-1523G (ASIP)";
picture = "\task_force_radio_items\rt1523g\rt1523g_icon.paa";
model = "\task_force_radio_items\models\charliepack_green_prc119.p3d";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"\task_force_radio_items\models\data\camo\backpack_sage_co.paa"};
scope = 2;
tf_encryptionCode = "tf_west_radio_code";
tf_dialog = "rt1523g_radio_dialog";
tf_subtype = "digital_lr";
};
class tf_anprc155_crate: TFAR_Bag_Base
{
displayName = "AN/PRC 155";
descriptionShort = "AN/PRC 155";
model = "\task_force_radio_items\models\ace_coyote_prc77.p3d";
picture = "\task_force_radio_items\anprc155\155_icon.paa";
scope = 2;
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"\task_force_radio_items\models\data\camo\backpack_green_co.paa"};
tf_encryptionCode = "tf_guer_radio_code";
tf_dialog = "anprc155_radio_dialog";
tf_subtype = "digital_lr";
};
class tf_mr3000_crate: TFAR_Bag_Base
{
displayName = "MR3000";
descriptionShort = "MR3000";
model = "\task_force_radio_items\models\ace_alice_backpack_p159.p3d";
picture = "\task_force_radio_items\mr3000\mr3000_icon.paa";
scope = 2;
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"\task_force_radio_items\models\data\camo\backpack_black_co.paa"};
tf_encryptionCode = "tf_east_radio_code";
tf_dialog = "mr3000_radio_dialog";
tf_subtype = "digital_lr";
};

class tf_anarc210_crate: TFAR_Bag_Base
{
displayName = "AN/ARC-210";
descriptionShort = "AN/ARC-210";
picture = "\task_force_radio_items\anarc210\anarc210_icon.paa";
model = "\task_force_radio_items\models\charliepack_green_prc119.p3d";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"\task_force_radio_items\models\data\camo\backpack_mcam_co.paa"};
scope = 2;
maximumLoad = 20;
tf_range = 40000;
tf_encryptionCode = "tf_west_radio_code";
tf_dialog = "anarc210_radio_dialog";
tf_subtype = "airborne";
tf_dialogUpdate = "[""CH%1"", ""CA%1""] call TFAR_fnc_updateLRDialogToChannel;";
};

class tf_anarc164_crate: TFAR_Bag_Base
{
displayName = "AN/ARC-164";
descriptionShort = "AN/ARC-164";
model = "\task_force_radio_items\models\ace_coyote_prc77.p3d";
picture = "\task_force_radio_items\anarc164\anarc164_icon.paa";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"\task_force_radio_items\models\data\camo\backpack_dpcu_co.paa"};
scope = 2;
maximumLoad = 20;
tf_range = 40000;
tf_encryptionCode = "tf_guer_radio_code";
tf_dialog = "anarc164_radio_dialog";
tf_subtype = "airborne";
tf_dialogUpdate = "[""C%1"", ""A%1""] call TFAR_fnc_updateLRDialogToChannel;";
};

class tf_mr6000l_crate: TFAR_Bag_Base
{
displayName = "MR6000L";
descriptionShort = "MR6000L";
model = "\task_force_radio_items\models\ace_alice_backpack_p159.p3d";
picture = "\task_force_radio_items\mr6000l\mr6000l_icon.paa";
scope = 2;
maximumLoad = 20;
tf_range = 40000;
tf_encryptionCode = "tf_east_radio_code";
tf_dialog = "mr6000l_radio_dialog";
tf_subtype = "airborne";
tf_dialogUpdate = "[""PRE %1"", ""ADD %1""] call TFAR_fnc_updateLRDialogToChannel;";
};

class tf_gm380_crate: TFAR_Bag_Base
{
displayName = "Motorola GM-380";
descriptionShort = "Motorola GM380 UHF/VHF/CB Radio";
model = "\task_force_radio_items\models\ace_coyote_prc77.p3d";
picture = "\task_force_radio_items\a2_radios\gm380_icon.paa";
scope = 2;
tf_encryptionCode = "tf_guer_radio_code";
tf_dialog = "gm380_radio_dialog";
tf_subtype = "digital_lr";
};
#include "vehicles.hpp"
#include "crates.hpp"
#include "modules.hpp"
};

#include "radio_ids.hpp"

class CfgWeapons
{
class Launcher;

class TFAR_Ruck_Base: Launcher {
ace_nopack = 1;
ace_sys_weapons_side[] = {"DEFAULT"};
ace_sys_weapons_type = 4094;
ace_is_radio = 1;
ace_packsize = 2000;
ace_size = 4001;
ace_weight = 6.5;
tf_radio = 1;
tf_prototype = 1;
tf_encryptionCode = "";
tf_range = 20000;
tf_dialogUpdate = "call TFAR_fnc_updateLRDialogToChannel;";
tf_hasLRradio = 1;
model = "\task_force_radio_items\models\ace_coyote_prc77.p3d";
autoreload = 1;
backgroundreload = 0;
canlock = 0;
descriptionshort = "Allows you to keep situational awareness";
dispersion = 0.0009;
displayname = "Rucksack";
enableattack = 0;
ffcount = 0;
fffrequency = 0;
ffmagnitude = 0;
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
magazinereloadtime = 0;
magazines[] = {};
mapsize = 1.8;
maxrange = 2;
maxrangeprobab = 0.1;
midrange = 1;
midrangeprobab = 0.1;
minrange = 0.1;
minrangeprobab = 0.1;
modeloptics = "";
namesound = "weapon";
optics = 0;
picture = "";
primary = 1;
reloadmagazinesound[] = {1, 1};
reloadsound[] = {1, 1};
reloadtime = 0;
scope = 1;
showempty = 0;
simulation = "ProxyWeapon";
uipicture = "";
valueweapon = 20;
class Library {
libtextdesc = "Allows you to keep situational awareness even out of direct visibility.";
};
};

class tf_rt1523g: TFAR_Ruck_Base
{
ace_is_radio = 1;
ace_weight = 6.2;
ace_packsize = 2000;
displayName = "RT-1523G (ASIP)";
descriptionShort = "RT-1523G SINCGARS (ASIP) | Green";
model = "\task_force_radio_items\models\charliepack_green_prc119.p3d";
picture = "\task_force_radio_items\rt1523g\rt1523g_icon.paa";
scope = 2;
tf_encryptionCode = "tf_west_radio_code";
tf_dialog = "rt1523g_radio_dialog";
tf_subtype = "digital_lr";
};
class tf_anprc155: TFAR_Ruck_Base
{
ace_is_radio = 1;
ace_weight = 6.8;
ace_packsize = 800;
displayName = "AN/PRC 155";
descriptionShort = "AN/PRC 155 Manpack radio";
picture = "\task_force_radio_items\anprc155\155_icon.paa";
scope = 2;
tf_encryptionCode = "tf_guer_radio_code";
tf_dialog = "anprc155_radio_dialog";
tf_subtype = "digital_lr";
};
class tf_mr3000: TFAR_Ruck_Base
{
ace_is_radio = 1;
ace_packsize = 2000;
ace_size = 6001;
ace_weight = 6.2;
displayName = "MR3000";
descriptionShort = "MR3000 Manpack radio";
model = "\task_force_radio_items\models\ace_alice_backpack_p159.p3d";
picture = "\task_force_radio_items\mr3000\mr3000_icon.paa";
scope = 2;
tf_encryptionCode = "tf_east_radio_code";
tf_dialog = "mr3000_radio_dialog";
tf_subtype = "digital_lr";
};

class tf_anarc210: TFAR_Ruck_Base
{
ace_is_radio = 1;
ace_weight = 14.0;
displayName = "AN/ARC-210";
descriptionShort = "AN/ARC-210 Airborne radio";
model = "\task_force_radio_items\models\charliepack_green_prc119.p3d";
picture = "\task_force_radio_items\anarc210\anarc210_icon.paa";
scope = 2;
tf_range = 40000;
tf_encryptionCode = "tf_west_radio_code";
tf_dialog = "anarc210_radio_dialog";
tf_subtype = "airborne";
tf_dialogUpdate = "[""CH%1"", ""CA%1""] call TFAR_fnc_updateLRDialogToChannel;";
};

class tf_anarc164: TFAR_Ruck_Base
{
ace_is_radio = 1;
ace_weight = 11.0;
displayName = "AN/ARC-164";
descriptionShort = "AN/ARC-164 Airborne radio";
picture = "\task_force_radio_items\anarc164\anarc164_icon.paa";
scope = 2;
tf_range = 40000;
tf_encryptionCode = "tf_guer_radio_code";
tf_dialog = "anarc164_radio_dialog";
tf_subtype = "airborne";
tf_dialogUpdate = "[""C%1"", ""A%1""] call TFAR_fnc_updateLRDialogToChannel;";
};

class tf_mr6000l: TFAR_Ruck_Base
{
ace_is_radio = 1;
ace_weight = 12.0;
displayName = "MR6000L";
descriptionShort = "MR6000L Airborne radio";
model = "\task_force_radio_items\models\ace_alice_backpack_p159.p3d";
picture = "\task_force_radio_items\mr6000l\mr6000l_icon.paa";
scope = 2;
tf_range = 40000;
tf_encryptionCode = "tf_east_radio_code";
tf_dialog = "mr6000l_radio_dialog";
tf_subtype = "airborne";
tf_dialogUpdate = "[""PRE %1"", ""ADD %1""] call TFAR_fnc_updateLRDialogToChannel;";
};

class tf_gm380: TFAR_Ruck_Base
{
ace_is_radio = 1;
ace_weight = 2.4;
ace_packsize = 400;
ace_size = 2001;
displayName = "Motorola GM380";
descriptionShort = "Motorola GM380 UHF/VHF/CB Radio";
picture = "\task_force_radio_items\a2_radios\gm380_icon.paa";
scope = 2;
tf_encryptionCode = "tf_guer_radio_code";
tf_dialog = "gm380_radio_dialog";
tf_subtype = "digital_lr";
};


class ItemWatch;
class tf_microdagr: ItemWatch
{
author = "Raspu, Nkey";
ace_weight = 0.3;
displayName = "MicroDAGR Radio Programmer";
descriptionShort = "Provides ability to program rifleman radios in the field";
picture = "\task_force_radio_items\microdagr\microdagr_icon.paa";
scope = 2;
scopeCurator = 2;
model = "\task_force_radio_items\models\GPS.p3d";
};

class ItemRadio;
class tf_r55: ItemRadio
{
ace_weight = 0.35;
displayName = "R-55";
descriptionShort = "$STR_TFAR_R55_DESC";
scope = 2;
scopeCurator = 2;
picture = "\task_force_radio_items\a2_radios\r55_icon.paa";
tf_prototype = 1;
tf_range = 5000;
tf_dialog = "granit_radio_dialog";
tf_encryptionCode = "tf_east_radio_code";
tf_dialogUpdate = "call TFAR_fnc_updateSWDialogToChannel;";
tf_subtype = "digital";
tf_parent = "tf_r55";
tf_additional_channel = 1;
};
class tf_pd785: ItemRadio
{
ace_weight = 0.36;
displayName = "Hytera PD-785";
descriptionShort = "Hytera PD-785";
scope = 2;
scopeCurator = 2;
picture = "\task_force_radio_items\a2_radios\pd785_icon.paa";
tf_prototype = 1;
tf_range = 5000;
tf_dialog = "pd785_radio_dialog";
tf_encryptionCode = "tf_guer_radio_code";
tf_dialogUpdate = "call TFAR_fnc_updateSWDialogToChannel;";
tf_subtype = "digital";
tf_parent = "tf_pd785";
tf_additional_channel = 1;
};
class tf_dtr650: ItemRadio
{
ace_weight = 0.22;
displayName = "Motorola DTR650";
descriptionShort = "Motorola DTR650";
scope = 2;
scopeCurator = 2;
picture = "\task_force_radio_items\a2_radios\dtr650_icon.paa";
tf_prototype = 1;
tf_range = 2000;
tf_dialog = "dtr650_radio_dialog";
tf_encryptionCode = "tf_guer_radio_code";
tf_dialogUpdate = "call TFAR_fnc_updateSWDialogToChannel;";
tf_subtype = "digital";
tf_parent = "tf_dtr650";
tf_additional_channel = 0;
};

class tf_anprc152: ItemRadio
{
ace_weight = 1.22;
displayName = "AN/PRC-152";
descriptionShort = "AN/PRC-152 (VHF/UHF)";
scope = 2;
scopeCurator = 2;
picture = "\task_force_radio_items\anprc152\152_icon.paa";
tf_prototype = 1;
tf_range = 5000;
tf_dialog = "anprc152_radio_dialog";
tf_encryptionCode = "tf_west_radio_code";
tf_dialogUpdate = "call TFAR_fnc_updateSWDialogToChannel;";
tf_subtype = "digital";
tf_parent = "tf_anprc152";
tf_additional_channel = 1;
};

class tf_anprc148jem: ItemRadio
{
ace_weight = 0.9;
displayName = "AN/PRC-148 JEM";
descriptionShort = "AN/PRC-148 JEM (VHF/UHF)";
scope = 2;
scopeCurator = 2;
picture = "\task_force_radio_items\anprc148jem\148_icon.paa";
tf_prototype = 1;
tf_range = 5000;
tf_dialog = "anprc148jem_radio_dialog";
tf_encryptionCode = "tf_guer_radio_code";
tf_dialogUpdate = "call TFAR_fnc_updateSWDialogToChannel;";
tf_subtype = "digital";
tf_parent = "tf_anprc148jem";
tf_additional_channel = 1;
};

class tf_fadak: ItemRadio
{
ace_weight = 1.0;
displayName = "FADAK";
descriptionShort = "FADAK VHF/UHF Radio";
scope = 2;
scopeCurator = 2;
picture = "\task_force_radio_items\fadak\fadak_icon.paa";
tf_prototype = 1;
tf_range = 5000;
tf_dialog = "fadak_radio_dialog";
tf_encryptionCode = "tf_east_radio_code";
tf_dialogUpdate = "call TFAR_fnc_updateSWDialogToChannel;";
tf_subtype = "digital";
tf_parent = "tf_fadak";
tf_additional_channel = 1;
};

class tf_anprc154: ItemRadio
{
displayName = "AN/PRC-154";
descriptionShort = "AN/PRC-154 Rifleman radio";
scope = 2;
scopeCurator = 2;
picture = "\task_force_radio_items\anprc154\154_icon.paa";
tf_prototype = 1;
tf_range = 2000;
tf_dialog = "anprc154_radio_dialog";
tf_encryptionCode = "tf_guer_radio_code";
tf_subtype = "digital";
tf_parent = "tf_anprc154";
tf_additional_channel = 0;
tf_dialogUpdate = "call TFAR_fnc_updateSWDialogToChannel;";
};

class tf_rf7800str: ItemRadio
{
ace_weight = 0.3;
displayName = "RF-7800S-TR";
descriptionShort = "RF-7800S-TR Rifleman radio";
scope = 2;
scopeCurator = 2;
picture = "\task_force_radio_items\rf7800str\rf7800str_icon.paa";
tf_prototype = 1;
tf_range = 2000;
tf_dialog = "rf7800str_radio_dialog";
tf_encryptionCode = "tf_west_radio_code";
tf_subtype = "digital";
tf_parent = "tf_rf7800str";
tf_additional_channel = 0;
tf_dialogUpdate = "call TFAR_fnc_updateSWDialogToChannel;";
};

class tf_pnr1000a: ItemRadio
{
ace_weight = 0.9;
displayName = "PNR-1000A";
descriptionShort = "PNR-1000A Rifleman radio";
scope = 2;
scopeCurator = 2;
picture = "\task_force_radio_items\pnr1000a\pnr1000a_icon.paa";
tf_prototype = 1;
tf_range = 2000;
tf_dialog = "pnr1000a_radio_dialog";
tf_encryptionCode = "tf_east_radio_code";
tf_subtype = "digital";
tf_parent = "tf_pnr1000a";
tf_additional_channel = 0;
tf_dialogUpdate = "call TFAR_fnc_updateSWDialogToChannel;";
};

TF_RADIO_IDS(tf_rt1523g,RT-1523G (ASIP))
TF_RADIO_IDS(tf_anprc155,AN/PRC 155)
TF_RADIO_IDS(tf_mr3000,MR3000)
TF_RADIO_IDS(tf_anarc210,AN/ARC-210)
TF_RADIO_IDS(tf_anarc164,AN/ARC-164)
TF_RADIO_IDS(tf_mr6000l,MR6000L)

TF_RADIO_IDS(tf_anprc152,AN/PRC-152)
TF_RADIO_IDS(tf_anprc148jem,AN/PRC-148 JEM)
TF_RADIO_IDS(tf_fadak,FADAK)
TF_RADIO_IDS(tf_anprc154,AN/PRC-154)
TF_RADIO_IDS(tf_rf7800str,RF-7800S-TR)
TF_RADIO_IDS(tf_pnr1000a,PNR-1000A)

TF_RADIO_IDS(tf_r55,R-55)
TF_RADIO_IDS(tf_pd785,Hytera PD-785)
TF_RADIO_IDS(tf_dtr650,Motorola DTR650)
TF_RADIO_IDS(tf_gm380,Motorola GM380)
};
[свернуть]
grenman11 вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:24. Часовой пояс GMT +3.

Powered by vBulletin®
Copyright ©2000 - 2019, vBulletin Solutions, Inc.

GMNET.RU © 2003-2019 || Дизайн студии vR