mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'gunbag' of https://github.com/ir0n1e/ACE3 into ir0n1e-gunbag
This commit is contained in:
commit
7a0b9a1a16
1
addons/gunbag/$PBOPREFIX$
Normal file
1
addons/gunbag/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
|||||||
|
z\ace\addons\gunbag
|
12
addons/gunbag/CfgEventHandlers.hpp
Normal file
12
addons/gunbag/CfgEventHandlers.hpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
class Extended_PreStart_EventHandlers {
|
||||||
|
class ADDON {
|
||||||
|
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Extended_PreInit_EventHandlers {
|
||||||
|
class ADDON {
|
||||||
|
init = QUOTE( call COMPILE_FILE(XEH_preInit) );
|
||||||
|
};
|
||||||
|
};
|
99
addons/gunbag/CfgVehicles.hpp
Normal file
99
addons/gunbag/CfgVehicles.hpp
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
class CfgVehicles {
|
||||||
|
class Man;
|
||||||
|
class CAManBase: Man {
|
||||||
|
class ACE_Actions {
|
||||||
|
class ACE_MainActions {
|
||||||
|
class GVAR(WeapontoGunbag) {
|
||||||
|
displayName = CSTRING(toGunbag);
|
||||||
|
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canInteract) == 0);
|
||||||
|
statement = QUOTE([ARR_2(_player,_target)] call FUNC(toGunbag));
|
||||||
|
showDisabled = 0;
|
||||||
|
priority = 1;
|
||||||
|
icon = PATHTOF(ui\gunbag_icon_ca.paa);
|
||||||
|
};
|
||||||
|
class GVAR(WeaponoffGunbag) {
|
||||||
|
displayName = CSTRING(offGunbag);
|
||||||
|
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canInteract) == 1);
|
||||||
|
statement = QUOTE([ARR_2(_player,_target)] call FUNC(offGunbag));
|
||||||
|
showDisabled = 0;
|
||||||
|
priority = 1;
|
||||||
|
icon = PATHTOF(ui\gunbag_icon_ca.paa);
|
||||||
|
};
|
||||||
|
class GVAR(StatusGunbag) {
|
||||||
|
displayName = CSTRING(Status);
|
||||||
|
condition = QUOTE([_target] call FUNC(isGunbag));
|
||||||
|
statement = QUOTE([_target] call FUNC(status));
|
||||||
|
showDisabled = 0;
|
||||||
|
priority = 2;
|
||||||
|
icon = PATHTOF(ui\gunbag_icon_ca.paa);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_SelfActions {
|
||||||
|
class ACE_Equipment {
|
||||||
|
class GVAR(actions) {
|
||||||
|
displayName = CSTRING(displayname);
|
||||||
|
condition = QUOTE([_player] call FUNC(isGunbag));
|
||||||
|
showDisabled = 0;
|
||||||
|
priority = 0.1;
|
||||||
|
icon = PATHTOF(ui\gunbag_icon_ca.paa);
|
||||||
|
|
||||||
|
class GVAR(WeapontoGunbag) {
|
||||||
|
displayName = CSTRING(toGunbag);
|
||||||
|
condition = QUOTE([ARR_2(_player,_player)] call FUNC(canInteract) == 0);
|
||||||
|
statement = QUOTE([ARR_2(_player,_player)] call FUNC(toGunbag));
|
||||||
|
showDisabled = 0;
|
||||||
|
priority = 1;
|
||||||
|
icon = PATHTOF(ui\gunbag_icon_ca.paa);
|
||||||
|
};
|
||||||
|
class GVAR(WeaponoffGunbag) {
|
||||||
|
displayName = CSTRING(offGunbag);
|
||||||
|
condition = QUOTE([ARR_2(_player,_player)] call FUNC(canInteract) == 1);
|
||||||
|
statement = QUOTE([ARR_2(_player,_player)] call FUNC(offGunbag));
|
||||||
|
showDisabled = 0;
|
||||||
|
priority = 1;
|
||||||
|
icon = PATHTOF(ui\gunbag_icon_ca.paa);
|
||||||
|
};
|
||||||
|
class GVAR(StatusGunbag) {
|
||||||
|
displayName = CSTRING(Status);
|
||||||
|
condition = QUOTE([_player] call FUNC(isGunbag));
|
||||||
|
statement = QUOTE([_player] call FUNC(status));
|
||||||
|
showDisabled = 0;
|
||||||
|
priority = 2;
|
||||||
|
icon = PATHTOF(ui\gunbag_icon_ca.paa);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Bag_Base;
|
||||||
|
class CLASSNAME: Bag_Base {
|
||||||
|
_generalMacro = QUOTE(CLASSNAME);
|
||||||
|
author = "Ir0n1E";
|
||||||
|
scope = 2;
|
||||||
|
displayName = CSTRING(Displayname);
|
||||||
|
model = PATHTOF(data\gunbag.p3d);
|
||||||
|
picture = PATHTOF(ui\gunbag_ca.paa);
|
||||||
|
icon = PATHTOF(ui\gunbag_icon_ca.paa);
|
||||||
|
hiddenSelections[] = {QUOTE(Camo),QUOTE(insignia)};
|
||||||
|
hiddenSelectionsTextures[] = {PATHTOF(data\gunbag_co.paa)};
|
||||||
|
maximumLoad = 80;
|
||||||
|
mass = 11;
|
||||||
|
};
|
||||||
|
|
||||||
|
class DOUBLES(CLASSNAME,Tan): CLASSNAME {
|
||||||
|
displayName = CSTRING(Displayname_Tan);
|
||||||
|
picture = PATHTOF(ui\gunbag_tan_ca.paa);
|
||||||
|
hiddenSelectionsTextures[] = {PATHTOF(data\gunbag_tan_co.paa)};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Box_NATO_Support_F;
|
||||||
|
class ACE_Box_Misc: Box_NATO_Support_F {
|
||||||
|
class TransportBackpacks {
|
||||||
|
MACRO_ADDBACKPACK(CLASSNAME,3);
|
||||||
|
MACRO_ADDBACKPACK(DOUBLES(CLASSNAME,Tan),3);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
41
addons/gunbag/CfgWeapons.hpp
Normal file
41
addons/gunbag/CfgWeapons.hpp
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
class CfgWeapons {
|
||||||
|
class Rifle_Long_Base_F;
|
||||||
|
|
||||||
|
/* Long Rifles */
|
||||||
|
|
||||||
|
class GM6_base_F: Rifle_Long_Base_F {
|
||||||
|
GVAR(allowGunbag) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
class LRR_base_F: Rifle_Long_Base_F {
|
||||||
|
GVAR(allowGunbag) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
class DMR_06_base_F: Rifle_Long_Base_F {
|
||||||
|
GVAR(allowGunbag) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
class DMR_05_base_F: Rifle_Long_Base_F {
|
||||||
|
GVAR(allowGunbag) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
class DMR_04_base_F: Rifle_Long_Base_F {
|
||||||
|
GVAR(allowGunbag) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
class DMR_03_base_F: Rifle_Long_Base_F {
|
||||||
|
GVAR(allowGunbag) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
class DMR_02_base_F: Rifle_Long_Base_F {
|
||||||
|
GVAR(allowGunbag) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
class DMR_01_base_F: Rifle_Long_Base_F {
|
||||||
|
GVAR(allowGunbag) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
class EBR_base_F: Rifle_Long_Base_F {
|
||||||
|
GVAR(allowGunbag) = 1;
|
||||||
|
};
|
||||||
|
};
|
10
addons/gunbag/README.md
Normal file
10
addons/gunbag/README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
ace_gunbag
|
||||||
|
===============
|
||||||
|
|
||||||
|
Adds a gunbag for DMRs.
|
||||||
|
|
||||||
|
|
||||||
|
## Maintainers
|
||||||
|
|
||||||
|
The people responsible for merging changes to this component or answering potential questions.
|
||||||
|
|
BIN
addons/gunbag/Source/gunbag_ca.png
Normal file
BIN
addons/gunbag/Source/gunbag_ca.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
BIN
addons/gunbag/Source/gunbag_co.png
Normal file
BIN
addons/gunbag/Source/gunbag_co.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 MiB |
BIN
addons/gunbag/Source/gunbag_nohq.png
Normal file
BIN
addons/gunbag/Source/gunbag_nohq.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 MiB |
BIN
addons/gunbag/Source/gunbag_tan_ca.png
Normal file
BIN
addons/gunbag/Source/gunbag_tan_ca.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
BIN
addons/gunbag/Source/gunbag_tan_co.png
Normal file
BIN
addons/gunbag/Source/gunbag_tan_co.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.8 MiB |
6
addons/gunbag/XEH_PREP.hpp
Normal file
6
addons/gunbag/XEH_PREP.hpp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
PREP(toGunbag);
|
||||||
|
PREP(offGunbag);
|
||||||
|
PREP(status);
|
||||||
|
PREP(canInteract);
|
||||||
|
PREP(calculateMass);
|
||||||
|
PREP(isGunbag);
|
7
addons/gunbag/XEH_preInit.sqf
Normal file
7
addons/gunbag/XEH_preInit.sqf
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
ADDON = false;
|
||||||
|
|
||||||
|
#include "XEH_PREP.hpp"
|
||||||
|
|
||||||
|
ADDON = true;
|
3
addons/gunbag/XEH_preStart.sqf
Normal file
3
addons/gunbag/XEH_preStart.sqf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
#include "XEH_PREP.hpp"
|
16
addons/gunbag/config.cpp
Normal file
16
addons/gunbag/config.cpp
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
class CfgPatches {
|
||||||
|
class ADDON {
|
||||||
|
units[] = {CLASSNAME, DOUBLES(CLASSNAME,Tan), ACE_Box_Misc};
|
||||||
|
weapons[] = {};
|
||||||
|
requiredVersion = REQUIRED_VERSION;
|
||||||
|
requiredAddons[] = {"ace_interaction", "ace_movement"};
|
||||||
|
author[] = {"Ir0n1E"};
|
||||||
|
VERSION_CONFIG;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "CfgEventHandlers.hpp"
|
||||||
|
#include "CfgVehicles.hpp"
|
||||||
|
#include "CfgWeapons.hpp"
|
BIN
addons/gunbag/data/gunbag.p3d
Normal file
BIN
addons/gunbag/data/gunbag.p3d
Normal file
Binary file not shown.
89
addons/gunbag/data/gunbag.rvmat
Normal file
89
addons/gunbag/data/gunbag.rvmat
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
class StageTI
|
||||||
|
{
|
||||||
|
texture="a3\characters_f_beta\indep\data\officer_ti_ca.paa";
|
||||||
|
};
|
||||||
|
ambient[]={0.69999999,0.69999999,0.69999999,1};
|
||||||
|
diffuse[]={0.69999999,0.69999999,0.69999999,1};
|
||||||
|
forcedDiffuse[]={0.30000001,0.30000001,0.30000001,0};
|
||||||
|
emmisive[]={0,0,0,1};
|
||||||
|
specular[]={0.2,0.2,0.2,1};
|
||||||
|
specularPower=100;
|
||||||
|
PixelShaderID="Super";
|
||||||
|
VertexShaderID="Super";
|
||||||
|
class Stage1
|
||||||
|
{
|
||||||
|
texture="z\ace\addons\gunbag\data\gunbag_nohq.paa";
|
||||||
|
uvSource="tex";
|
||||||
|
class uvTransform
|
||||||
|
{
|
||||||
|
aside[]={1,0,0};
|
||||||
|
up[]={0,1,0};
|
||||||
|
dir[]={0,0,0};
|
||||||
|
pos[]={0,0,0};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class Stage2
|
||||||
|
{
|
||||||
|
texture="#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)";
|
||||||
|
uvSource="tex";
|
||||||
|
class uvTransform
|
||||||
|
{
|
||||||
|
aside[]={1,0,0};
|
||||||
|
up[]={0,1,0};
|
||||||
|
dir[]={0,0,0};
|
||||||
|
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,0};
|
||||||
|
pos[]={0,0,0};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class Stage4
|
||||||
|
{
|
||||||
|
texture="#(argb,8,8,3)color(1,1,1,1,AS)";
|
||||||
|
uvSource="tex";
|
||||||
|
class uvTransform
|
||||||
|
{
|
||||||
|
aside[]={1,0,0};
|
||||||
|
up[]={0,1,0};
|
||||||
|
dir[]={0,0,0};
|
||||||
|
pos[]={0,0,0};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class Stage5
|
||||||
|
{
|
||||||
|
texture="z\ACE\addons\gunbag\data\gunbag_smdi.paa";
|
||||||
|
uvSource="tex";
|
||||||
|
class uvTransform
|
||||||
|
{
|
||||||
|
aside[]={1,0,0};
|
||||||
|
up[]={0,1,0};
|
||||||
|
dir[]={0,0,0};
|
||||||
|
pos[]={0,0,0};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class Stage6
|
||||||
|
{
|
||||||
|
texture="#(ai,64,64,1)fresnel(1,0.3)";
|
||||||
|
uvSource="none";
|
||||||
|
};
|
||||||
|
class Stage7
|
||||||
|
{
|
||||||
|
texture="a3\data_f\env_co.paa";
|
||||||
|
uvSource="tex";
|
||||||
|
class uvTransform
|
||||||
|
{
|
||||||
|
aside[]={1,0,0};
|
||||||
|
up[]={0,1,0};
|
||||||
|
dir[]={0,0,0};
|
||||||
|
pos[]={0,0,0};
|
||||||
|
};
|
||||||
|
};
|
BIN
addons/gunbag/data/gunbag_co.paa
Normal file
BIN
addons/gunbag/data/gunbag_co.paa
Normal file
Binary file not shown.
BIN
addons/gunbag/data/gunbag_nohq.paa
Normal file
BIN
addons/gunbag/data/gunbag_nohq.paa
Normal file
Binary file not shown.
BIN
addons/gunbag/data/gunbag_smdi.paa
Normal file
BIN
addons/gunbag/data/gunbag_smdi.paa
Normal file
Binary file not shown.
BIN
addons/gunbag/data/gunbag_tan_co.paa
Normal file
BIN
addons/gunbag/data/gunbag_tan_co.paa
Normal file
Binary file not shown.
148
addons/gunbag/data/model.cfg
Normal file
148
addons/gunbag/data/model.cfg
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
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"
|
||||||
|
};
|
||||||
|
skeletonName = "OFP2_ManSkeleton";
|
||||||
|
};
|
||||||
|
|
||||||
|
class gunbag: ArmaMan {};
|
||||||
|
};
|
25
addons/gunbag/functions/fnc_calculateMass.sqf
Normal file
25
addons/gunbag/functions/fnc_calculateMass.sqf
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Author: Ir0n1E
|
||||||
|
* calculate mass of weapon an items
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Weapon <STRING>
|
||||||
|
* 1: Items <ARRAY>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* Mass <NUMBER>
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_weapon","_items"];
|
||||||
|
|
||||||
|
private _mass = getNumber (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "mass");
|
||||||
|
|
||||||
|
{
|
||||||
|
_mass = _mass + getNumber (configFile >> "CfgWeapons" >> _x >> "ItemInfo" >> "mass");
|
||||||
|
} foreach _items;
|
||||||
|
|
||||||
|
_mass
|
32
addons/gunbag/functions/fnc_canInteract.sqf
Normal file
32
addons/gunbag/functions/fnc_canInteract.sqf
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Author: Ir0n1E
|
||||||
|
* Check if client able to interact with gunbag
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Unit <OBJECT>
|
||||||
|
* 1: Target <OBJECT>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* <NUMBER> -1: can't interact 0: empty gunbag 1: full gunbag
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_unit","_target"];
|
||||||
|
|
||||||
|
private ["_result","_gunbag"];
|
||||||
|
|
||||||
|
_result = -1;
|
||||||
|
_gunbag = backpackContainer _target;
|
||||||
|
|
||||||
|
if(count (_gunbag getVariable [QGVAR(GunbagWeapon),[]]) <= 0 && {primaryWeapon _unit != ""} && {getNumber (configFile >> "CfgWeapons" >> primaryWeapon _unit >> QGVAR(allowGunbag)) == 1}) then {
|
||||||
|
_result = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
if(count (_gunbag getVariable [QGVAR(GunbagWeapon),[]]) >= 1 && {primaryWeapon _unit == ""}) then {
|
||||||
|
_result = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
_result
|
18
addons/gunbag/functions/fnc_isGunbag.sqf
Normal file
18
addons/gunbag/functions/fnc_isGunbag.sqf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* Author: Ir0n1E
|
||||||
|
* switches gunbag full/empty for mass calculation
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Unit <OBJECT>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* (BOOL)
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_unit"];
|
||||||
|
|
||||||
|
backpackContainer _unit isKindOf QUOTE(CLASSNAME)
|
45
addons/gunbag/functions/fnc_offGunbag.sqf
Normal file
45
addons/gunbag/functions/fnc_offGunbag.sqf
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* Author: Ir0n1E
|
||||||
|
* get weapon out of gunbag
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Unit <OBJECT>
|
||||||
|
* 1: Target <OBJECT>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* Nothing
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_unit","_target"];
|
||||||
|
|
||||||
|
private ["_weapon", "_items", "_gunbag", "_state"];
|
||||||
|
|
||||||
|
_gunbag = backpackContainer _target;
|
||||||
|
_state = _gunbag getVariable [QGVAR(GunbagWeapon),[]];
|
||||||
|
|
||||||
|
if (count _state <= 0) exitWith {
|
||||||
|
[localize LSTRING(empty)] call EFUNC(common,displayTextStructured);
|
||||||
|
};
|
||||||
|
|
||||||
|
_weapon = (_state select 0) select 0;
|
||||||
|
_items = (_state select 1);
|
||||||
|
|
||||||
|
_unit addWeapon _weapon;
|
||||||
|
removeAllPrimaryWeaponItems _unit;
|
||||||
|
|
||||||
|
{
|
||||||
|
_unit addWeaponItem [_weapon, _x];
|
||||||
|
} forEach _items;
|
||||||
|
|
||||||
|
// remove virtual load
|
||||||
|
[_target, backpackContainer _target, -([_weapon, _items] call FUNC(calculateMass))] call EFUNC(movement,addLoadToUnitContainer);
|
||||||
|
_gunbag setVariable [QGVAR(GunbagWeapon), [], true];
|
||||||
|
|
||||||
|
// play sound
|
||||||
|
if(["ACE_Backpacks"] call EFUNC(common,isModLoaded)) then {
|
||||||
|
[_unit, _target, backpackContainer _target] call EFUNC(backpacks,backpackOpened);
|
||||||
|
};
|
26
addons/gunbag/functions/fnc_status.sqf
Normal file
26
addons/gunbag/functions/fnc_status.sqf
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Author: Ir0n1E
|
||||||
|
* check gunbag status full/empty
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Unit <OBJECT>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* Nothing
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_unit"];
|
||||||
|
|
||||||
|
private _state = (backpackContainer _unit) getVariable [QGVAR(GunbagWeapon),[]];
|
||||||
|
|
||||||
|
if (count _state <= 0) then {
|
||||||
|
[localize LSTRING(empty)] call EFUNC(common,displayTextStructured);
|
||||||
|
} else {
|
||||||
|
private _weapon = (_state select 0) select 0;
|
||||||
|
[getText (configFile >> "CfgWeapons" >> _weapon >> "displayname"),
|
||||||
|
getText (configFile >> "CfgWeapons" >> _weapon >> "picture")] call EFUNC(common,displayTextPicture);
|
||||||
|
};
|
51
addons/gunbag/functions/fnc_toGunbag.sqf
Normal file
51
addons/gunbag/functions/fnc_toGunbag.sqf
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* Author: Ir0n1E
|
||||||
|
* put weapon into gunbag
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Unit <OBJECT>
|
||||||
|
* 1: Target <OBJECT>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* Nothing
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_unit", "_target"];
|
||||||
|
|
||||||
|
private ["_weapon", "_magazine", "_magazine_gl", "_items", "_gunbag", "_state", "_mass"];
|
||||||
|
|
||||||
|
_gunbag = backpackContainer _target;
|
||||||
|
_state = [_unit, primaryWeapon _unit] call EFUNC(common,getWeaponState);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* example returnvalue _state
|
||||||
|
* [["","","optic_Aco",""],["arifle_MX_GL_ACO_F","GL_3GL_F"],["30Rnd_65x39_caseless_mag","1Rnd_HE_Grenade_shell"],[30,1]]
|
||||||
|
*/
|
||||||
|
|
||||||
|
_weapon = (_state select 1) select 0;
|
||||||
|
_magazine = [(_state select 2) select 0, (_state select 3) select 0];
|
||||||
|
_magazine_gl = [(_state select 2) select 1, (_state select 3) select 1];
|
||||||
|
_items = _state select 0;
|
||||||
|
|
||||||
|
if ((_magazine_gl select 0) != "") then {
|
||||||
|
_unit addMagazine _magazine_gl;
|
||||||
|
};
|
||||||
|
|
||||||
|
if ((_magazine select 0) != "") then {
|
||||||
|
_unit addMagazine _magazine;
|
||||||
|
};
|
||||||
|
|
||||||
|
_unit removeWeapon _weapon;
|
||||||
|
|
||||||
|
// add virtual load
|
||||||
|
[_target, backpackContainer _target, [_weapon, _items] call FUNC(calculateMass)] call EFUNC(movement,addLoadToUnitContainer);
|
||||||
|
_gunbag setVariable [QGVAR(GunbagWeapon), [[_weapon], _items], true];
|
||||||
|
|
||||||
|
// play sound
|
||||||
|
if(["ACE_Backpacks"] call EFUNC(common,isModLoaded)) then {
|
||||||
|
[_unit, _target, backpackContainer _target] call EFUNC(backpacks,backpackOpened);
|
||||||
|
};
|
1
addons/gunbag/functions/script_component.hpp
Normal file
1
addons/gunbag/functions/script_component.hpp
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "\z\ace\addons\gunbag\script_component.hpp"
|
18
addons/gunbag/script_component.hpp
Normal file
18
addons/gunbag/script_component.hpp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#define COMPONENT gunbag
|
||||||
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
|
#define CLASSNAME ACE_Gunbag
|
||||||
|
#define DEBUG_MODE_FULL
|
||||||
|
#define DISABLE_COMPILE_CACHE
|
||||||
|
#define CBA_DEBUG_SYNCHRONOUS
|
||||||
|
#define ENABLE_PERFORMANCE_COUNTERS
|
||||||
|
|
||||||
|
#ifdef DEBUG_ENABLED_GUNBAG
|
||||||
|
#define DEBUG_MODE_FULL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DEBUG_SETTINGS_GUNBAG
|
||||||
|
#define DEBUG_SETTINGS DEBUG_SETTINGS_GUNBAG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "\z\ace\addons\main\script_macros.hpp"
|
29
addons/gunbag/stringtable.xml
Normal file
29
addons/gunbag/stringtable.xml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project name="ACE">
|
||||||
|
<Package name="gunbag">
|
||||||
|
<Key ID="STR_ACE_Gunbag_DisplayName">
|
||||||
|
<English>Gunbag</English>
|
||||||
|
<German>Waffentasche</German>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Gunbag_DisplayName_Tan">
|
||||||
|
<English>Gunbag (Tan)</English>
|
||||||
|
<German>Waffentasche (Tan)</German>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Gunbag_toGunbag">
|
||||||
|
<English>Put weapon into gunbag</English>
|
||||||
|
<German>Lege Waffe in Waffentasche</German>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Gunbag_offGunbag">
|
||||||
|
<English>Get weapon out of gunbag</English>
|
||||||
|
<German>Hole Waffe aus Waffentasche</German>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Gunbag_Status">
|
||||||
|
<English>Status Gunbag</English>
|
||||||
|
<German>Status Waffentasche</German>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Gunbag_empty">
|
||||||
|
<English>Gunbag Empty</English>
|
||||||
|
<German>Waffentasche leer</German>
|
||||||
|
</Key>
|
||||||
|
</Package>
|
||||||
|
</Project>
|
BIN
addons/gunbag/ui/gunbag_ca.paa
Normal file
BIN
addons/gunbag/ui/gunbag_ca.paa
Normal file
Binary file not shown.
BIN
addons/gunbag/ui/gunbag_icon_ca.paa
Normal file
BIN
addons/gunbag/ui/gunbag_icon_ca.paa
Normal file
Binary file not shown.
BIN
addons/gunbag/ui/gunbag_tan_ca.paa
Normal file
BIN
addons/gunbag/ui/gunbag_tan_ca.paa
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user