Merge pull request #7277 from acemod/maglite

Add handheld maglite ML300L flashlight, clean up flashlight addon
This commit is contained in:
commy2 2019-12-03 19:13:00 +01:00 committed by GitHub
commit 76f0d76b83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 398 additions and 42 deletions

View File

@ -1,4 +1,3 @@
class Extended_PostInit_EventHandlers {
class ADDON {
clientInit = QUOTE(call COMPILE_FILE(XEH_postInitClient));

View File

@ -7,18 +7,17 @@ class CfgVehicles {
};
class Item_Base_F;
class ACE_Flashlight_MX991Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = CSTRING(MX991_DisplayName);
author = ECSTRING(common,ACETeam);
vehicleClass = "WeaponAccessories";
editorCategory = "EdCat_Equipment";
editorSubcategory = "EdSubcat_InventoryItems";
vehicleClass = "Items";
class TransportItems {
class ACE_Flashlight_MX991 {
name = "ACE_Flashlight_MX991";
count = 1;
};
MACRO_ADDITEM(ACE_Flashlight_MX991,1);
};
};
@ -27,12 +26,12 @@ class CfgVehicles {
scopeCurator = 2;
displayName = CSTRING(KSF1_DisplayName);
author = ECSTRING(common,ACETeam);
vehicleClass = "WeaponAccessories";
editorCategory = "EdCat_Equipment";
editorSubcategory = "EdSubcat_InventoryItems";
vehicleClass = "Items";
class TransportItems {
class ACE_Flashlight_KSF1 {
name = "ACE_Flashlight_KSF1";
count = 1;
};
MACRO_ADDITEM(ACE_Flashlight_KSF1,1);
};
};
@ -41,38 +40,52 @@ class CfgVehicles {
scopeCurator = 2;
displayName = CSTRING(XL50_DisplayName);
author = ECSTRING(common,ACETeam);
vehicleClass = "WeaponAccessories";
editorCategory = "EdCat_Equipment";
editorSubcategory = "EdSubcat_InventoryItems";
vehicleClass = "Items";
class TransportItems {
class ACE_Flashlight_XL50 {
name = "ACE_Flashlight_XL50";
count = 1;
};
MACRO_ADDITEM(ACE_Flashlight_XL50,1);
};
};
class Pistol_Base_F;
class ACE_Item_Flashlight_Maglite_ML300L: Pistol_Base_F {
scope = 2;
scopeCurator = 2;
displayName = CSTRING(Maglite_ML300L_DisplayName);
author = ECSTRING(common,ACETeam);
editorCategory = "EdCat_Equipment";
editorSubcategory = "EdSubcat_InventoryItems";
vehicleClass = "Items";
class TransportItems {
MACRO_ADDITEM(ACE_Flashlight_Maglite_ML300L,1);
};
};
class NATO_Box_Base;
class EAST_Box_Base;
class IND_Box_Base;
class FIA_Box_Base_F;
class Box_NATO_Support_F: NATO_Box_Base {
class TransportItems {
MACRO_ADDITEM(ACE_Flashlight_MX991,12);
};
};
class EAST_Box_Base;
class Box_East_Support_F: EAST_Box_Base {
class TransportItems {
MACRO_ADDITEM(ACE_Flashlight_KSF1,12);
};
};
class IND_Box_Base;
class Box_IND_Support_F: IND_Box_Base {
class TransportItems {
MACRO_ADDITEM(ACE_Flashlight_XL50,12);
};
};
class FIA_Box_Base_F;
class Box_FIA_Support_F: FIA_Box_Base_F {
class TransportItems {
MACRO_ADDITEM(ACE_Flashlight_MX991,12);
@ -84,6 +97,7 @@ class CfgVehicles {
MACRO_ADDITEM(ACE_Flashlight_MX991,12);
MACRO_ADDITEM(ACE_Flashlight_KSF1,12);
MACRO_ADDITEM(ACE_Flashlight_XL50,12);
MACRO_ADDITEM(ACE_Flashlight_Maglite_ML300L,2);
};
};
};
};

View File

@ -1,17 +1,81 @@
class CfgWeapons {
class Pistol;
class Pistol_Base_F: Pistol {
class WeaponSlotsInfo;
};
class ACE_Flashlight_Maglite_ML300L: Pistol_Base_F {
author = ECSTRING(common,ACETeam);
scope = 2;
displayName = CSTRING(Maglite_ML300L_DisplayName);
descriptionShort = CSTRING(Maglite_ML300L_Description);
model = QPATHTOF(data\maglite_ml300l.p3d);
picture = QPATHTOF(UI\maglite_ml300l_ca.paa);
cursor = "";
cursorAim = "";
// binarized rtm, animation in "extras/assets/maglite"
handAnim[] = {"OFP2_ManSkeleton", QPATHTOF(data\maglite_ml300l.rtm)};
recoil = "empty";
muzzlePos = "flash";
muzzleEnd = "flash dir";
magazines[] = {"FakeMagazine"}; // Required for the weapon info box to work correctly.
textureType = "default"; // empty texture
weaponInfoType = "RscWeaponEmpty";
class WeaponSlotsInfo: WeaponSlotsInfo {
holsterScale = 0; // Item does not fit a pistol holster, so hide it.
mass = 20;
class MuzzleSlot {};
class CowsSlot {};
};
inertia = 0.2;
dexterity = 1.8;
class FlashLight {
color[] = {180,180,190};
ambient[] = {0.9,0.81,0.7};
intensity = 85;
size = 1;
innerAngle = 5;
outerAngle = 80;
coneFadeCoef = 8;
position = "flash dir";
direction = "flash";
useFlare = 1;
flareSize = 0.8;
flareMaxDistance = 100;
dayLight = 1;
class Attenuation {
start = 0.25;
constant = 0;
linear = 0;
quadratic = 1;
hardLimitStart = 140;
hardLimitEnd = 150;
};
scale[] = {0};
};
};
class ACE_ItemCore;
class CBA_MiscItem_ItemInfo;
class ACE_Flashlight_MX991: ACE_ItemCore {
author = ECSTRING(common,ACETeam);
scope = 2;
displayName = CSTRING(MX991_DisplayName);
descriptionShort = CSTRING(MX991_Description);
model = QPATHTOF(data\MX_991.p3d);
picture = QPATHTOF(UI\mx991_ca.paa);
scope = 2;
model = QPATHTOF(data\mx_991.p3d);
picture = QPATHTOF(UI\mx_991_ca.paa);
class ItemInfo: CBA_MiscItem_ItemInfo {
mass = 1;
mass = 4;
class FlashLight {
ACE_Flashlight_Colour = "red";
ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_red_ca.paa);
@ -22,13 +86,15 @@ class CfgWeapons {
class ACE_Flashlight_KSF1: ACE_ItemCore {
author = ECSTRING(common,ACETeam);
scope = 2;
displayName = CSTRING(KSF1_DisplayName);
descriptionShort = CSTRING(KSF1_Description);
model = QPATHTOF(data\KSF_1.p3d);
picture = QPATHTOF(UI\ksf1_ca.paa);
scope = 2;
model = QPATHTOF(data\ksf_1.p3d);
picture = QPATHTOF(UI\ksf_1_ca.paa);
class ItemInfo: CBA_MiscItem_ItemInfo {
mass = 1;
mass = 4;
class FlashLight {
ACE_Flashlight_Colour = "red";
ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_red_ca.paa);
@ -39,13 +105,15 @@ class CfgWeapons {
class ACE_Flashlight_XL50: ACE_ItemCore {
author = ECSTRING(common,ACETeam);
scope = 2;
displayName = CSTRING(XL50_DisplayName);
descriptionShort = CSTRING(XL50_Description);
model = QPATHTOF(data\Maglight.p3d);
picture = QPATHTOF(UI\xl50_ca.paa);
scope = 2;
model = QPATHTOF(data\maglite_xl50.p3d);
picture = QPATHTOF(UI\maglite_xl50_ca.paa);
class ItemInfo: CBA_MiscItem_ItemInfo {
mass = 1;
mass = 3;
class FlashLight {
ACE_Flashlight_Colour = "white";
ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_white_ca.paa);

Binary file not shown.

View File

@ -3,12 +3,22 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {"ACE_Flashlight_MX991", "ACE_Flashlight_KSF1", "ACE_Flashlight_XL50"};
units[] = {
"ACE_Flashlight_MX991Item",
"ACE_Flashlight_KSF1Item",
"ACE_Flashlight_XL50Item",
"ACE_Item_Flashlight_Maglite_ML300L"
};
weapons[] = {
"ACE_Flashlight_MX991",
"ACE_Flashlight_KSF1",
"ACE_Flashlight_XL50",
"ACE_Flashlight_Maglite_ML300L"
};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
author = ECSTRING(common,ACETeam);
authors[] = {"voiper"};
authors[] = {"voiper","bux","HorribleGoat"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super";
class Stage1 {
texture="z\ace\addons\flashlights\data\KSF_1_nohq.paa";
texture="z\ace\addons\flashlights\data\textures\ksf_1_nohq.paa";
uvSource="tex";
class uvTransform {
aside[]={1,0,0};
@ -48,7 +48,7 @@ class Stage4 {
};
};
class Stage5 {
texture="z\ace\addons\flashlights\data\KSF_1_smdi.paa";
texture="z\ace\addons\flashlights\data\textures\ksf_1_smdi.paa";
uvSource="tex";
class uvTransform {
aside[]={1,0,0};

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,80 @@
ambient[] = {1,1,1,1};
diffuse[] = {1,1,1,1};
forcedDiffuse[] = {0,0,0,0};
emmisive[] = {0,0,0,1};
specular[] = {0.6,0.6,0.6,1}; //amount of glossiness - the higher the number, the higher the glossiness
specularPower = 700; //area of glossiness - the higher the number, the smaller the area
PixelShaderID = "Super";
VertexShaderID = "Super";
class Stage1 {
texture = "z\ace\addons\flashlights\data\textures\maglite_ml300l_nohq.paa";
uvSource = "tex";
class uvTransform {
aside[] = {1,0,0};
up[] = {0,1,0};
dir[] = {0,0,1};
pos[] = {0,0,0};
};
};
class Stage2 {
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,dt)";
uvSource = "tex";
class uvTransform {
aside[] = {1,0,0};
up[] = {0,1,0};
dir[] = {0,0,1};
pos[] = {0,0,0};
};
};
class Stage3 {
texture = "#(argb,8,8,3)color(0,0,0,0,mc)";
uvSource = "tex";
class uvTransform {
aside[] = {1,0,0};
up[] = {0,1,0};
dir[] = {0,0,1};
pos[] = {0,0,0};
};
};
class Stage4 {
texture = "z\ace\addons\flashlights\data\textures\maglite_ml300l_as.paa";
uvSource = "tex";
class uvTransform {
aside[] = {1,0,0};
up[] = {0,1,0};
dir[] = {0,0,1};
pos[] = {0,0,1};
};
};
class Stage5 {
texture = "z\ace\addons\flashlights\data\textures\maglite_ml300l_smdi.paa";
uvSource = "tex";
class uvTransform {
aside[] = {1,0,0};
up[] = {0,1,0};
dir[] = {0,0,1};
pos[] = {0,0,0};
};
};
class Stage6 {
texture = "#(ai,64,64,1)fresnel(4.7,1.2)";
uvSource = "tex";
class uvTransform {
aside[] = {1,0,0};
up[] = {0,1,0};
dir[] = {0,0,1};
pos[] = {0,0,0};
};
};

Binary file not shown.

View File

@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super";
class Stage1 {
texture="z\ace\addons\flashlights\data\Maglite_nohq.paa";
texture="z\ace\addons\flashlights\data\textures\maglite_xl50_nohq.paa";
uvSource="tex";
class uvTransform {
aside[]={1,0,0};
@ -48,7 +48,7 @@ class Stage4 {
};
};
class Stage5 {
texture="z\ace\addons\flashlights\data\Maglite_smdi.paa";
texture="z\ace\addons\flashlights\data\textures\maglite_xl50_smdi.paa";
uvSource="tex";
class uvTransform {
aside[]={1,0,0};

View File

@ -0,0 +1,175 @@
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",
"insignia",
"ghillie_hide"
};
skeletonName = "OFP2_ManSkeleton";
};
};

View File

@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super";
class Stage1 {
texture="z\ace\addons\flashlights\data\MX_991_nohq.paa";
texture="z\ace\addons\flashlights\data\textures\mx_991_nohq.paa";
uvSource="tex";
class uvTransform {
aside[]={1,0,0};

Binary file not shown.

Binary file not shown.

View File

@ -103,5 +103,15 @@
<Russian>Цвет подсветки карты</Russian>
<Portuguese>Cor da lanterna no mapa</Portuguese>
</Key>
<Key ID="STR_ACE_Flashlights_Maglite_ML300L_DisplayName">
<English>Maglite ML300L</English>
<German>Maglite ML300L</German>
<Polish>Maglite ML300L</Polish>
</Key>
<Key ID="STR_ACE_Flashlights_Maglite_ML300L_Description">
<English>Powerful LED flashlight.</English>
<German>Leistungsstarke LED-Taschenlampe.</German>
<Polish>Mocna latarka LED.</Polish>
</Key>
</Package>
</Project>

Binary file not shown.