Jump to content
Sign in to follow this  
misakagong

Reloading Mag[Help.......]

Recommended Posts

Hi, everyone. This is my first time making addon for arma3. And right now I have made a HK416 assault rifle.

 

Not perfect work as you guys can see....but I do need help with the reload problem.  :(  Here is the short vedio: https://youtu.be/zQIUBNguqGE

 

As you can see when the mag was took out and there was no problem with that. But when it was starting to insert the mags, there was nothing there until the animation finished then the mag just pop out from nowhere. 

 

And here is my code for model.cfg. Is there any step I missed?

class CfgSkeletons
{
	class Default
	{
		isDiscrete = 1;
		skeletonInherit = "";
		skeletonBones[] = {};
	};
	class HK416 : Default
	{
		SkeletonBones[]=
		{
			"trigger",		"", /// not in this model, but good to use
			"bolt",			"",
			"bolt_catch",	"",
			"magazine",		"",
			"safety",		"",
			"muzzleFlash",	"",
			"OP",			"",
			"ForeSight",	"",
			"BackSight",	""
		};
	};
};
class CfgModels
{
	class Default
	{
		sections[]=
		{
			"zasleh"
		};

		htMin = 1;		// Minimum half-cooling time (in seconds)
		htMax = 600;	// Maximum half-cooling time (in seconds)
		afMax = 0;		// 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 = 100;	 // Metabolism temperature of the model (in celsius)
		sectionsInherit="";
		skeletonName = "HK416";
	};
	class HK416 : Default
	{
		skeletonName="HK416";
                sectionsInherit = "";
		sections[] = {"zasleh","muzzleFlash","Camo"};
		class Animations
		{
			class trigger /// not in this model, but good to use
			{
				type = "rotation";
				source = "reload";
				sourceAddress = "clamp";
				selection = "trigger";
				axis = "trigger_axis";
				minValue = 0;
				maxValue = "1";
				angle0 = "0";
				angle1 = "rad -30";
			};
			class bolt
			{
				type = "translation";
				source = "reload";
				sourceAddress = clamp;
				selection = "bolt";
				axis = "bolt_axis";
				minValue = 0.5;
				maxValue = 1;
				offset0 = 0;
				offset1 = 0.3;
			};
			class bolt_2: bolt
			{
				minValue = 0;
				maxValue = 0.5;
				offset0 = 0;
				offset1 = 0.7;
			};
			class bolt_empty: bolt{
				source = "isEmptyNoReload";
				minValue = 0;
				maxValue = 1;
				offset0 = 0;
				offset1 = 1;
			};
			class bolt_reload_move_1: bolt_empty {
				source="reloadMagazine";	// z: should work like that only if weapon is empty
				minValue=0;
				maxValue=0.00001;
			};
			class bolt_reload_move_2: bolt_reload_move_1 {
				source="reloadMagazine";	// z: should work like that only if weapon is empty
				minValue=0.78;
				maxValue=0.80;
				offset1 = -1;
			};
			class bolt_catch: bolt {
				selection = "bolt_catch";
				axis = "bolt_catch_axis";
			};
			class bolt_catch_2: bolt_2 {
				selection = "bolt_catch";
				axis = "bolt_catch_axis";
			};
			class bolt_catch_empty: bolt_empty {
				selection = "bolt_catch";
				axis = "bolt_catch_axis";
			};
			class bolt_catch_reload_move_1: bolt_reload_move_1 {
				selection = "bolt_catch";
				axis = "bolt_catch_axis";
			};
			class bolt_catch_reload_move_2: bolt_reload_move_2 {
				selection = "bolt_catch";
				axis = "bolt_catch_axis";
			};
	    class magazine_hide
            {
                type="hide";
                source="reloadMagazine";
                selection="magazine";
                minValue=0.000000;
                maxValue=1.00000;
                hideValue=0.188;
                unhideValue = 0.550;
            };
            class no_magazine
            {
                type="hide";
                source="hasMagazine";
                selection="magazine";
                minValue=0.000000;
                maxValue=1.00000;
                hideValue=0.5;
                unhideValue = -1.0;
            };
            class magazine_reload_move_1
            {
                type = "translation";
                source = "reloadMagazine";
                selection = "magazine";
                axis = "magazine_axis";
                minValue = 0.145;
                maxValue = 0.170;
                offset0 = 0.0;
                offset1 = 0.5;
            };
            class magazine_reload_move_2: magazine_reload_move_1
            {
                minValue = 0.573;
                maxValue = 0.602;
                offset0 = 0.0;
                offset1 = -0.5;
            };
			class muzzleFlashROT
			{
				type="rotationX";
				source="ammoRandom";      //use ammo count as phase for animation
				sourceAddress="loop";     //loop when phase out of bounds
				selection="muzzleFlash";  //selection we want to rotate
				axis="";                  //no own axis - center of rotation is computed from selection
				centerFirstVertex=true;   //use first vertex of selection as center of rotation
				minValue=0;
				maxValue=4;               //rotation angle will be 360/4 = 90 degrees
				angle0="rad 0";
				angle1="rad 360";
			};
			class OP_ROT
			{
				type="rotation";
				source="zeroing2";    // use second muzzle zeroing for rotation
				sourceAddress="loop"; // loop when phase out of bounds
				selection="OP";       // selection we want to rotate
				axis="OP_axis";       // has its own axis
				minValue=0;
				maxValue=3;
				angle0="rad 0";
				angle1="rad 65";
			};
			class BackSight_optic
			{
				type="rotation";
				source="hasOptics";
				selection="BackSight";
				axis="BackSight_axis";
				memory=1;
				minValue=0.0000000;
				maxValue=1.0000000;
				angle0=0.000000;
				angle1=(rad 70);
			};
			class ForeSight_optic: BackSight_optic
			{
				selection="ForeSight";
				axis="ForeSight_axis";
				angle1=(rad 70);
			};
		};
	};
};

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×