Jump to content
zachgibson22

Zachs Full-on guide to Custom Weapons!

Recommended Posts

Mate first of all thank you! Managed to get my rifle ingame finally, I also had the same issue tho with the arms being spastic and all.. Gone through all your options with no luck :(

And a small request would be, any chance you can add more detail with adding custom rifle mag models? I noticed you did it for your model but I can't seem to work it out.

Again thanks for a brilliant tut learnt a tone so far

Tonnie

Share this post


Link to post
Share on other sites
Mate first of all thank you! Managed to get my rifle ingame finally, I also had the same issue tho with the arms being spastic and all.. Gone through all your options with no luck :(

And a small request would be, any chance you can add more detail with adding custom rifle mag models? I noticed you did it for your model but I can't seem to work it out.

Again thanks for a brilliant tut learnt a tone so far

Tonnie

Hey Tonnie,

I'm glad you found it helpful and were able to get his far!

For your arms being spastic, you may have not done one of these 3 things:

A) When you packed the pbo with BinMake you did not check "binarize"

B) You did not name the correct location of the "handanim[]" file within the weapon config. ( don't forget to add ".rtm") //Most of the time this is the case

C) You do not have the OFP2_ManSkeleton model.cfg file in the same folder as the hand animation rtm

As far as the weapon mag model, I can make a quickie on that! Cause it really isn't too hard!

For now Ill just say this.

All I did was this:

1) export my mag (remember doesn't have to have many polys since it's just laying on the ground) :D

2) import it to O2

3) put the mesh into LOD 1.000

4) create a geometry LOD, within here you could really just put a simple box/cube around the mag, that's what I did

5) it's not exactly necessary or needed, but you could create a very low poly shadow mesh, just a simple box would do. (Don't forget to triangulate it!) (I didnt even have a shadow LOD)

6) rotate and scale it as if it were laying flat on the ground like you would see in-game

7) Don't forget to texture it!

And that should really be it!

Just make sure you have the right path name "model = "tb_arifle_hkump45\hkump_mag";" //Don't need to put ".p3d" on P3D files for some reason

Also the UI picture is easy "picture = "\tb_arifle_hkump45\UI\gear_hkump45_mag_ca"; //BUT you do need to put ".paa" for UI images

Don't forget I have the P3D of my HKUMP mag in the tutorial files too you can use as reference! "\Tutorial Files\Everything regauding my Weapon\tb_arifle_hkump45"

Good luck and add me on steam and skype if you need more help quickly!

Share this post


Link to post
Share on other sites

Ok - its taken a few days (I'm in the middle of exams) but I got it working in game. No idea why textures weren't working but in the end I just gave up and rebuilt from scratch. Its obviously not designed for Stratis :)

http://i.imgur.com/bLQmsco.jpg (333kb)

The config file I've used is not perfect but I've pasted it below if anybody is interested:

class CfgPatches
{
class WEAPON						////Every spot i say Weapon, you must enter the same info ie, alwyas enter "scarh" or "m16a3_mod1"
{
requiredaddons[] = {};
requiredversion = 0.1;
units[] = {};
weapons[] = {"WEAPON"};
magazines[] = {"WEAPON_mag"};				//mags used
};
};
/*external*/ class Mode_SemiAuto;
/*external*/ class Mode_Burst;

class CfgWeapons {
   class Pistol;
class WEAPON_base : Pistol {
	access = 3;
	afmax = 0;
	aidispersioncoefx = 4;
	aidispersioncoefy = 5;
	airateoffire = 0.5;
	airateoffiredistance = 50;
	ammo = "";
	autofire = 1;
	autoreload = 0;
	backgroundreload = 0;
	ballisticscomputer = 0;
	bullet1[] = {"A3\sounds_f\weapons\shells\9mm\metal_9mm_01.wav", 0.1, 1, 15};
	bullet10[] = {"A3\sounds_f\weapons\shells\9mm\grass_9mm_02.wav", 0.01, 1, 15};
	bullet11[] = {"A3\sounds_f\weapons\shells\9mm\grass_9mm_03.wav", 0.01, 1, 15};
	bullet12[] = {"A3\sounds_f\weapons\shells\9mm\grass_9mm_04.wav", 0.01, 1, 15};
	bullet2[] = {"A3\sounds_f\weapons\shells\9mm\metal_9mm_02.wav", 0.1, 1, 15};
	bullet3[] = {"A3\sounds_f\weapons\shells\9mm\metal_9mm_03.wav", 0.177828, 1, 15};
	bullet4[] = {"A3\sounds_f\weapons\shells\9mm\metal_9mm_04.wav", 0.177828, 1, 15};
	bullet5[] = {"A3\sounds_f\weapons\shells\9mm\dirt_9mm_01.wav", 0.1, 1, 15};
	bullet6[] = {"A3\sounds_f\weapons\shells\9mm\dirt_9mm_02.wav", 0.1, 1, 15};
	bullet7[] = {"A3\sounds_f\weapons\shells\9mm\dirt_9mm_03.wav", 0.1, 1, 15};
	bullet8[] = {"A3\sounds_f\weapons\shells\9mm\dirt_9mm_04.wav", 0.1, 1, 15};
	bullet9[] = {"A3\sounds_f\weapons\shells\9mm\grass_9mm_01.wav", 0.01, 1, 15};
	candrop = 1;
	canlock = 0;
	canshootinwater = 0;
	cartridgepos = "nabojnicestart";
	cartridgevel = "nabojniceend";
	count = 0;
	cursor = "arifle";
	cursoraim = "CursorAim";
	cursoraimon = "";
	cursorsize = 1;
	cmimmunity = 1;
	descriptionshort = "WEAPON <br />Caliber: ";
	detectrange = 0;
	dexterity = 2;
	discretedistance[] = {50};
	discretedistanceinitindex = 0;
	dispersion = 0.02;
	displayname = "WEAPON name";
	disposableweapon = 0;
	distancezoommax = 50;
	distancezoommin = 50;
	drysound[] = {"A3\sounds_f\weapons\other\dry1.wav", 0.01, 1, 20};
	emptysound[] = {"", 1, 1};
	enableattack = 1;
	ffcount = 1;
	fffrequency = 11;
	ffmagnitude = 0.5;
	fireanims[] = {};
	firelightduration = 0.05;
	firelightintensity = 0.012;
	firespreadangle = "3.0f";
	flash = "gunfire";
	flashsize = 0.5;
	forceoptics = 0;
	handanim[] = {"OFP2_ManSkeleton","PATH TO YOUR .rtm"};	//hand animation lcation
	hiddenselections[] = {};
	hiddenselectionstextures[] = {};
	hiddenunderwaterselections[] = {};
	hiddenunderwaterselectionstextures[] = {};
	htmax = 300;
	htmin = 1;
	initspeed = 0;
	irdistance = 0;
	irdotintensity = 0.001;
	irlaserend = "laser dir";
	irlaserpos = "laser pos";
	laser = 0;
	lockacquire = 1;
	lockedtargetsound[] = {"\A3\sounds_f\dummysound", 0.000316228, 6};
	lockingtargetsound[] = {"\A3\sounds_f\dummysound", 0.000316228, 2};
	magazinereloadtime = 2;
	magazines[] = {"WEAPON_mag"};							//magazines used
	maxleadspeed = 23;
	maxrange = 50;
	maxrangeprobab = 0.04;
	maxrecoilsway = 0.008;
	memorypointcamera = "eye";
	mfact = 1;
	mfmax = 0;
	midrange = 30;
	midrangeprobab = 0.3;
	minrange = 0;
	minrangeprobab = 0.1;
	model = "WEAPON P3D file without .p3d";					//weapon location of p3d...(dont add .p3d at the end)
	modelmagazine = "";
	modeloptics = "-";
	modelspecial = "";
	modes[] = {"Single"};
	multiplier = 1;
	muzzleend = "konec hlavne";
	muzzlepos = "usti hlavne";
	muzzles[] = {"this"};
	namesound = "pistol";
	optics = 1;
	opticsdisableperipherialvision = 0.67;
	opticsflare = 0;
	opticsid = 0;
	opticsppeffects[] = {};
	opticszoominit = 0.75;
	opticszoommax = 1.1;
	opticszoommin = 0.375;
	picture = "WEAPONPATH\gear_WEAPON_x_ca";
	primary = 10;
	recoil = "recoil_pistol";
	recoilprone = "recoil_pistol";
	reloadaction = "GestureReloadPistol";							//reload gesture
	reloadmagazinesound[] = {"A3\sounds_f\weapons\pistols\p07_reload.wav", 0.1, 1, 30};
	reloadsound[] = {"", 1, 1};
	reloadtime = 0.15;
	scope = 2;
	selectionfireanim = "zasleh";
	showaimcursorinternal = 1;
	showempty = 1;
	shownunderwaterselections[] = {};
	showswitchaction = 0;
	showtoplayer = 1;
	simulation = "Weapon";
	sound[] = {};
	soundbegin[] = {"sound", 1};
	soundbeginwater[] = {"sound", 1};
	soundbullet[] = {"bullet1", 0.083, "bullet2", 0.083, "bullet3", 0.083, "bullet4", 0.083, "bullet5", 0.083, "bullet6", 0.083, "bullet7", 0.083, "bullet8", 0.083, "bullet9", 0.083, "bullet10", 0.083, "bullet11", 0.083, "bullet12", 0.083};
	soundburst = 1;
	soundclosure[] = {"sound", 1};
	soundcontinuous = 0;
	soundend[] = {"sound", 1};
	soundloop[] = {"sound", 1};
	swaydecayspeed = 2;
	tbody = 100;
	texturetype = "default";
	type = 2;
	uipicture = "\A3\weapons_f\data\UI\icon_regular_CA.paa";
	useaction = 0;
	useactiontitle = "";
	useasbinocular = 0;
	usemodeloptics = 1;
	value = 4;
	weaponinfotype = "RscWeaponZeroing";
	weaponlockdelay = 0;
	weaponlocksystem = 0;
	weaponpoolavailable = 1;
	weaponsoundeffect = "";
	weight = 0;
	class Library {
		libtextdesc = "WEAPON description";
	};
	class GunClouds {
		access = 0;
		cloudletaccy = 0;
		cloudletalpha = 0.3;
		cloudletanimperiod = 1;
		cloudletcolor[] = {1, 1, 1, 0};
		cloudletduration = 0.05;
		cloudletfadein = 0;
		cloudletfadeout = 0.1;
		cloudletgrowup = 0.05;
		cloudletmaxyspeed = 100;
		cloudletminyspeed = -100;
		cloudletshape = "cloudletClouds";
		cloudletsize = 1;
		deltat = 0;
		initt = 0;
		interval = -0.02;
		size = 0.3;
		sourcesize = 0.02;
		timetolive = 0;
		class Table {
			class T0 {
				color[] = {1, 1, 1, 0};
				maxt = 0;
			};
		};
	};
	class WeaponSlotsInfo {
		allowedslots[] = {901};
		mass = 4;
		class MuzzleSlot {};
		class CowsSlot {};
		class PointerSlot {};
	};	
	class GunParticles {
		class FirstEffect {
			directionname = "Konec hlavne";
			effectname = "RifleAssaultCloud";
			positionname = "Usti hlavne";
		};
	};
	class Single: Mode_SemiAuto {
		aidispersioncoefx = 1.4;
		aidispersioncoefy = 1.7;
		airateoffire = 2;
		airateoffiredistance = 50;
		artillerycharge = 1;
		artillerydispersion = 1;
		autofire = 0;
		begin1[] = {"A3\sounds_f\weapons\pistols\pistol_st_1.wav", 2.51189, 1, 1200};
		begin2[] = {"A3\sounds_f\weapons\pistols\pistol_st_2.wav", 2.51189, 1, 1200};
		begin3[] = {"A3\sounds_f\weapons\pistols\pistol_st_3.wav", 2.51189, 1, 1200};
		burst = 1;
		canshootinwater = 0;
		closure1[] = {"A3\sounds_f\weapons\closure\closure_handgun_3.wav", 1, 1.1, 300};
		closure2[] = {"A3\sounds_f\weapons\closure\closure_handgun_3.wav", 1, 1.1, 300};
		closure3[] = {"A3\sounds_f\weapons\closure\closure_handgun_3.wav", 1, 1.1, 300};
		dispersion = 0.00093;
		displayname = "Semi";
		ffcount = 1;
		fffrequency = 11;
		ffmagnitude = 0.5;
		flash = "gunfire";
		flashsize = 0.1;
		maxrange = 50;
		maxrangeprobab = 0.2;
		midrange = 25;
		midrangeprobab = 0.7;
		minrange = 2;
		minrangeprobab = 0.3;
		multiplier = 1;
		recoil = "recoil_single_trg";
		recoilprone = "recoil_single_prone_trg";
		reloadtime = 0.13;
		requiredoptictype = -1;
		showtoplayer = 1;
		sound[] = {"", 10, 1};
		soundbegin[] = {"begin1", 0.333, "begin2", 0.333, "begin3", 0.333};
		soundbeginwater[] = {"sound", 1};
		soundburst = 0;
		soundclosure[] = {"closure1", 0.5, "closure2", 0.5};
		soundcontinuous = 0;
		soundend[] = {};
		soundloop[] = {};
		texturetype = "semi";
		useaction = 0;
		useactiontitle = "";
		weaponsoundeffect = "DefaultRifle";
	};

       class Burst: Mode_Burst {
		aidispersioncoefx = 1.4;
		aidispersioncoefy = 1.7;
		airateoffire = 2;
		airateoffiredistance = 50;
		artillerycharge = 1;
		artillerydispersion = 1;
		autofire = 0;
		begin1[] = {"A3\sounds_f\weapons\pistols\pistol_st_1.wav", 2.51189, 1, 1200};
		begin2[] = {"A3\sounds_f\weapons\pistols\pistol_st_2.wav", 2.51189, 1, 1200};
		begin3[] = {"A3\sounds_f\weapons\pistols\pistol_st_3.wav", 2.51189, 1, 1200};
		burst = 2;
		canshootinwater = 0;
		closure1[] = {"A3\sounds_f\weapons\closure\closure_handgun_3.wav", 1, 1.1, 300};
		closure2[] = {"A3\sounds_f\weapons\closure\closure_handgun_3.wav", 1, 1.1, 300};
		closure3[] = {"A3\sounds_f\weapons\closure\closure_handgun_3.wav", 1, 1.1, 300};
		dispersion = 0.00093;
		displayname = "Burst";
		ffcount = 1;
		fffrequency = 11;
		ffmagnitude = 0.5;
		flash = "gunfire";
		flashsize = 0.1;
		maxrange = 50;
		maxrangeprobab = 0.2;
		midrange = 25;
		midrangeprobab = 0.7;
		minrange = 2;
		minrangeprobab = 0.3;
		multiplier = 1;
		recoil = "recoil_single_trg";
		recoilprone = "recoil_single_prone_trg";
		reloadtime = 0.13;
		requiredoptictype = -1;
		showtoplayer = 1;
		sound[] = {"", 10, 1};
		soundbegin[] = {"begin1", 0.333, "begin2", 0.333, "begin3", 0.333};
		soundbeginwater[] = {"sound", 1};
		soundburst = 0;
		soundclosure[] = {"closure1", 0.5, "closure2", 0.5};
		soundcontinuous = 0;
		soundend[] = {};
		soundloop[] = {};
		texturetype = "semi";
		useaction = 0;
		useactiontitle = "";
		weaponsoundeffect = "DefaultRifle";
	};
};
class WEAPON : WEAPON_base {
	scope = 2;
};
};

class CfgMagazines {
/*extern*/ class 20Rnd_762x45_Mag;								//Ill keep all this info here for you
class WEAPON_Mag : 20Rnd_762x45_Mag {
	ammo = "WEAPON_ammo";
	count = 20;
	descriptionshort = "Caliber: 7.62 <br />Rounds: 20<br />Used in: WEAPON";
	displayname = "20 Rnd 7.62mm";						
	initspeed = 930;			
	lastroundstracer = 0;
	picture = "\A3\weapons_f\data\UI\M_20Rnd_762x45_CA.paa";				//Mag UI images are 256x256
	model = "WEAPONPATH\WEAPON_magazine";						
	scope = 2;
	tracersevery = 0;
};
};
class CfgAmmo {
/*external*/ class B_762x45_Ball;
class WEAPON_ammo : B_762x45_Ball {
	airfriction = -0.001425;
	caliber = 1;							//1 = 7.76.......or something like that
	cost = 1;
	deflecting = 20;
	hit = 8;							//damage?
	indirecthit = 0;
	indirecthitrange = 0;
	model = "\A3\Weapons_f\Data\bullettracer\tracer_red";		//keep this
	nvgonly = 1;
	tracerendtime = 1;
	tracerscale = 1;
	tracerstarttime = 0.05;
};
};

Thanks again for a really awesome tutorial - now to work on some game other assets!

Share this post


Link to post
Share on other sites

Awesome! I'm glad it worked! Hey if you wanted to make if for stratis you could always just apply a color layer in the Photoshopfile :)

Also I'm working on learning better ways to make the config by calling on classes that are in game, this would help a pistol be more likel a pistol by acting like one that's already in game! Soon I'll figure it all out and add it here!

Share this post


Link to post
Share on other sites
You could always just apply a color layer in the Photoshopfile :)

Yeah true! I assume that means having a duplicated config and p3d with a different class name and textures applied?

Share this post


Link to post
Share on other sites

Well that depend, do you also want to keep your curren set up. You could just save the textures and overwrite the over textures, the. You really wouldn't have to do anything else. BUT I do Know a way to have both types of the gun that share the same file. All you would need is a new P3D and folder with other textures. I'll try as go over this when I have time. For now though you could just add me on steam! And I could try and explain it

Share this post


Link to post
Share on other sites

HOLY S**T BATMAN!!! NOW WHAT?!

I turned out in my chair when i read this part :D

Share this post


Link to post
Share on other sites

Thanks Zach, all this was really helpful.

Share this post


Link to post
Share on other sites

Hi Zach, thanks for taking the time to put together such a helpful tutorial mate. Sorry to be a pain, but I am going crazy trying to figure out what is causing my problem. I've created a M1014 shotgun model and no matter what I do, I cannot get the bullets/pellets to impact in the middle of the iron sights or any attached optics. I can see no difference between my model and yours, or Kiory's Sa80.

I haven't yet gotten around to custom hand anims. Are they required in order to the the bullet impact lined up with the sights?

I was hoping you could have a quick look at my config for any obvious errors that might be causing this problem. Thanks in advance!

Config

class CfgPatches

{

class CPS_m1014shotgun

{

requiredaddons[] = {};

requiredversion = 0.1;

units[] = {"M1014_ammo_box"};

weapons[] = {"CPS_M1014"};

magazines[] = {"CPS_12g_buck","CPS_12g_slug"};

};

};

/*external*/ class Mode_SemiAuto;

class CfgWeapons {

class Default;

class Rifle;

class gunparticles;

class CPS_M1014_base : Rifle

{

scope = 2;

class Library

{

libTextDesc = "M1014 combat shotgun";

};

reloadaction = "GestureReloadEBR";

maxRecoilSway = 0.0125;

swayDecaySpeed = 1.25;

displayName = "M1014";

muzzleend = "konec hlavne";

muzzlepos = "usti hlavne";

model = "cps_m1014\m1014";

picture = "\tb_arifle_hkump45\UI\gear_tb_arifle_hkump45_x_ca";

uipicture = "\A3\weapons_f\data\UI\icon_regular_CA.paa";

handanim[] = {"OFP2_ManSkeleton"};

magazines[] = {"CPS_12g_buck","CPS_12g_slug"};

optics = 1;

cursor = "mg";

cursoraim = "CursorAim";

modelOptics = "-";

opticsZoomMin = 0.375;

opticsZoomMax = 1.1;

opticsZoomInit = 0.75;

flashSize = 1;

fireSpreadAngle = 0.7848246;

memorypointcamera = "eye";

reloadmagazinesound[] = {"CPS_M1014\sound\reload.wav", 0.1, 1, 30};

drysound[] = {"A3\sounds_f\weapons\other\dry7.wav", 0.01, 1};

magazineReloadTime = 4;

dexterity = 1.6;

bullet1[] = {"A3\sounds_f\weapons\shells\5_56\metal_556_01.wav",0.1,1,15};

bullet2[] = {"A3\sounds_f\weapons\shells\5_56\metal_556_02.wav",0.1,1,15};

bullet3[] = {"A3\sounds_f\weapons\shells\5_56\metal_556_03.wav",0.17782794,1,15};

bullet4[] = {"A3\sounds_f\weapons\shells\5_56\metal_556_04.wav",0.17782794,1,15};

bullet5[] = {"A3\sounds_f\weapons\shells\5_56\asphlat_556_01.wav",0.1,1,15};

bullet6[] = {"A3\sounds_f\weapons\shells\5_56\asphlat_556_02.wav",0.1,1,15};

bullet7[] = {"A3\sounds_f\weapons\shells\5_56\asphlat_556_03.wav",0.1,1,15};

bullet8[] = {"A3\sounds_f\weapons\shells\5_56\asphlat_556_04.wav",0.1,1,15};

bullet9[] = {"A3\sounds_f\weapons\shells\5_56\grass_556_01.wav",0.01,1,15};

bullet10[] = {"A3\sounds_f\weapons\shells\5_56\grass_556_02.wav",0.01,1,15};

bullet11[] = {"A3\sounds_f\weapons\shells\5_56\grass_556_03.wav",0.01,1,15};

bullet12[] = {"A3\sounds_f\weapons\shells\5_56\grass_556_04.wav",0.01,1,15};

soundBullet[] = {"bullet1",0.083,"bullet2",0.083,"bullet3",0.083,"bullet4",0.083,"bullet5",0.083,"bullet6",0.083,"bullet7",0.083,"bullet8",0.083,"bullet9",0.083,"bullet10",0.083,"bullet11",0.083,"bullet12",0.083};

modes[] = {"Single"};

class Single: Mode_SemiAuto

{

soundBegin[] = {"begin1",0.25,"begin2",0.25};

begin1[] = {"CPS_M1014\sound\fire.wav", 1.0, 1, 1200};

begin2[] = {"CPS_M1014\sound\fire.wav", 1.0, 1, 1200};

dispersion = 0.002;

reloadTime = 0.1;

recoil = "recoil_single_m320";

recoilProne = "recoil_single_prone_m320";

minRange = 0;

minRangeProbab = 0.5;

midRange = 60;

midRangeProbab = 0.2;

maxRange = 100;

maxRangeProbab = 0.03;

};

};

//};

class WeaponSlotsInfo {

allowedslots[] = {901};

mass = 4;

class MuzzleSlot {};

class CowsSlot {

access = 1;

compatibleitems[] = {"optic_Arco", "optic_aco", "optic_ACO_grn", "optic_hamr", "optic_Holosight"};

displayname = "Optics Slot";

linkproxy = "\A3\data_f\proxies\weapon_slots\TOP";

scope = 2;

};

class PointerSlot

{

access = 1;

compatibleitems[] = {"acc_flashlight","acc_pointer_IR"};

displayname = "Pointer Slot";

linkproxy = "\A3\data_f\proxies\weapon_slots\SIDE";

scope = 0;

};

};

class ItemInfo

{

priority = 1;

RMBhint = "XMX";

onHoverText = "TODO XMX DSS";

};

//};

class CPS_M1014 : CPS_M1014_base {

scope = 2;

};

};

class CfgMagazines

{

class Default;

class CA_Magazine;

class CPS_12g_buck: CA_Magazine

{

scope = 2;

displayName = "00 Buckshot";

ammo = "B_12Gauge_Pellets";

count = 8;

initSpeed = 396;

picture = "\tb_arifle_hkump45\UI\gear_hkump45_mag_ca";

descriptionShort = "12 gauge 00 buckshot";

displayNameShort = "00 Buckshot";

};

class CPS_12g_slug: CA_Magazine

{

scope = 2;

displayName = "12 gauge slug";

ammo = "B_12Gauge_Slug";

count = 8;

initSpeed = 396;

picture = "\tb_arifle_hkump45\UI\gear_hkump45_mag_ca";

descriptionShort = "Solid 12 gauge rifled slug";

displayNameShort = "12 gauge slug";

};

};

class CfgVehicles

{

class ReammoBox;

class ThingX;

class ReammoBox_F;

class NATO_Box_Base;

class Box_NATO_Wps_F;

class M1014_ammo_box: Box_NATO_Wps_F

{

displayName = "M1014 & ammunition";

class TransportMagazines

{

class _xx_CPS_12g_buck

{

magazine = "CPS_12g_buck";

count = 100;

};

class _xx_CPS_12g_slug

{

magazine = "CPS_12g_slug";

count = 100;

};

};

class TransportWeapons

{

class xxCPS_M1014

{

weapon = "CPS_M1014";

count = 10;

};

};

};

};

Share this post


Link to post
Share on other sites
Hi Zach, thanks for taking the time to put together such a helpful tutorial mate. Sorry to be a pain, but I am going crazy trying to figure out what is causing my problem. I've created a M1014 shotgun model and no matter what I do, I cannot get the bullets/pellets to impact in the middle of the iron sights or any attached optics. I can see no difference between my model and yours, or Kiory's Sa80.

I haven't yet gotten around to custom hand anims. Are they required in order to the the bullet impact lined up with the sights?

I was hoping you could have a quick look at my config for any obvious errors that might be causing this problem. Thanks in advance!

Config

class CfgPatches

{

class CPS_m1014shotgun

{

requiredaddons[] = {};

requiredversion = 0.1;

units[] = {"M1014_ammo_box"};

weapons[] = {"CPS_M1014"};

magazines[] = {"CPS_12g_buck","CPS_12g_slug"};

};

};

/*external*/ class Mode_SemiAuto;

class CfgWeapons {

class Default;

class Rifle;

class gunparticles;

class CPS_M1014_base : Rifle

{

scope = 2;

class Library

{

libTextDesc = "M1014 combat shotgun";

};

reloadaction = "GestureReloadEBR";

maxRecoilSway = 0.0125;

swayDecaySpeed = 1.25;

displayName = "M1014";

muzzleend = "konec hlavne";

muzzlepos = "usti hlavne";

model = "cps_m1014\m1014";

picture = "\tb_arifle_hkump45\UI\gear_tb_arifle_hkump45_x_ca";

uipicture = "\A3\weapons_f\data\UI\icon_regular_CA.paa";

handanim[] = {"OFP2_ManSkeleton"};

magazines[] = {"CPS_12g_buck","CPS_12g_slug"};

optics = 1;

cursor = "mg";

cursoraim = "CursorAim";

modelOptics = "-";

opticsZoomMin = 0.375;

opticsZoomMax = 1.1;

opticsZoomInit = 0.75;

flashSize = 1;

fireSpreadAngle = 0.7848246;

memorypointcamera = "eye";

reloadmagazinesound[] = {"CPS_M1014\sound\reload.wav", 0.1, 1, 30};

drysound[] = {"A3\sounds_f\weapons\other\dry7.wav", 0.01, 1};

magazineReloadTime = 4;

dexterity = 1.6;

bullet1[] = {"A3\sounds_f\weapons\shells\5_56\metal_556_01.wav",0.1,1,15};

bullet2[] = {"A3\sounds_f\weapons\shells\5_56\metal_556_02.wav",0.1,1,15};

bullet3[] = {"A3\sounds_f\weapons\shells\5_56\metal_556_03.wav",0.17782794,1,15};

bullet4[] = {"A3\sounds_f\weapons\shells\5_56\metal_556_04.wav",0.17782794,1,15};

bullet5[] = {"A3\sounds_f\weapons\shells\5_56\asphlat_556_01.wav",0.1,1,15};

bullet6[] = {"A3\sounds_f\weapons\shells\5_56\asphlat_556_02.wav",0.1,1,15};

bullet7[] = {"A3\sounds_f\weapons\shells\5_56\asphlat_556_03.wav",0.1,1,15};

bullet8[] = {"A3\sounds_f\weapons\shells\5_56\asphlat_556_04.wav",0.1,1,15};

bullet9[] = {"A3\sounds_f\weapons\shells\5_56\grass_556_01.wav",0.01,1,15};

bullet10[] = {"A3\sounds_f\weapons\shells\5_56\grass_556_02.wav",0.01,1,15};

bullet11[] = {"A3\sounds_f\weapons\shells\5_56\grass_556_03.wav",0.01,1,15};

bullet12[] = {"A3\sounds_f\weapons\shells\5_56\grass_556_04.wav",0.01,1,15};

soundBullet[] = {"bullet1",0.083,"bullet2",0.083,"bullet3",0.083,"bullet4",0.083,"bullet5",0.083,"bullet6",0.083,"bullet7",0.083,"bullet8",0.083,"bullet9",0.083,"bullet10",0.083,"bullet11",0.083,"bullet12",0.083};

modes[] = {"Single"};

class Single: Mode_SemiAuto

{

soundBegin[] = {"begin1",0.25,"begin2",0.25};

begin1[] = {"CPS_M1014\sound\fire.wav", 1.0, 1, 1200};

begin2[] = {"CPS_M1014\sound\fire.wav", 1.0, 1, 1200};

dispersion = 0.002;

reloadTime = 0.1;

recoil = "recoil_single_m320";

recoilProne = "recoil_single_prone_m320";

minRange = 0;

minRangeProbab = 0.5;

midRange = 60;

midRangeProbab = 0.2;

maxRange = 100;

maxRangeProbab = 0.03;

};

};

//};

class WeaponSlotsInfo {

allowedslots[] = {901};

mass = 4;

class MuzzleSlot {};

class CowsSlot {

access = 1;

compatibleitems[] = {"optic_Arco", "optic_aco", "optic_ACO_grn", "optic_hamr", "optic_Holosight"};

displayname = "Optics Slot";

linkproxy = "\A3\data_f\proxies\weapon_slots\TOP";

scope = 2;

};

class PointerSlot

{

access = 1;

compatibleitems[] = {"acc_flashlight","acc_pointer_IR"};

displayname = "Pointer Slot";

linkproxy = "\A3\data_f\proxies\weapon_slots\SIDE";

scope = 0;

};

};

class ItemInfo

{

priority = 1;

RMBhint = "XMX";

onHoverText = "TODO XMX DSS";

};

//};

class CPS_M1014 : CPS_M1014_base {

scope = 2;

};

};

class CfgMagazines

{

class Default;

class CA_Magazine;

class CPS_12g_buck: CA_Magazine

{

scope = 2;

displayName = "00 Buckshot";

ammo = "B_12Gauge_Pellets";

count = 8;

initSpeed = 396;

picture = "\tb_arifle_hkump45\UI\gear_hkump45_mag_ca";

descriptionShort = "12 gauge 00 buckshot";

displayNameShort = "00 Buckshot";

};

class CPS_12g_slug: CA_Magazine

{

scope = 2;

displayName = "12 gauge slug";

ammo = "B_12Gauge_Slug";

count = 8;

initSpeed = 396;

picture = "\tb_arifle_hkump45\UI\gear_hkump45_mag_ca";

descriptionShort = "Solid 12 gauge rifled slug";

displayNameShort = "12 gauge slug";

};

};

class CfgVehicles

{

class ReammoBox;

class ThingX;

class ReammoBox_F;

class NATO_Box_Base;

class Box_NATO_Wps_F;

class M1014_ammo_box: Box_NATO_Wps_F

{

displayName = "M1014 & ammunition";

class TransportMagazines

{

class _xx_CPS_12g_buck

{

magazine = "CPS_12g_buck";

count = 100;

};

class _xx_CPS_12g_slug

{

magazine = "CPS_12g_slug";

count = 100;

};

};

class TransportWeapons

{

class xxCPS_M1014

{

weapon = "CPS_M1014";

count = 10;

};

};

};

};

Hey Sorry to here about this, I don;t think it has to do woth the config though.

I'm thinking you should look at the O2 P3D file again and check your muzzle positions of:

muzzleend = "konec hlavne";

muzzlepos = "usti hlavne";

and make sure that they are lined up properly.

Is the gun shooting pretty accurately when not looking down sights? Ir is it that when you look do the sights it's just way off?

Share this post


Link to post
Share on other sites

Hi Zach, thanks for your quick response mate. It seems you've become the go-to agony aunt for weapon modelling :)

This is a model I've previously had no problems with, albeit in good old OFP.

You can see konec hlavne and usti hlavne are aligned, and, I think in the right places.

th_konecandusti_zps5d83edc3.jpg th_fonrtusitandkonec_zps2aebd956.jpg

Yet the damn pellets keep hitting way too high in both iron sights and otherwise.

th_2013-05-21_00003_zps81dcd610.jpg th_2013-05-21_00002_zps2fed3edf.jpg

I tried swapping out my m1014 model for your UMP model, with no success. Pellets still hitting too high.

th_2013-05-21_00004_zps6590b6b6.jpg

I just can't think what the problem could be :confused: With the two models behaving the same way, I was hoping it was a simple config issue with a new entry in Arma 3.

Thanks again for your help!

Share this post


Link to post
Share on other sites

I was having the same problem when I built my KSG-12 at the begnning. Im pretty sure its something to do with the flight mechanics of the bullets and compensating for bullet drop or something like that.

my solution was to move the muzzle memory point (or the directional point, whatever its called) down by... I think it was 0.001 units(meters?) in O2. ill post the MLODS so you can just copy and paste the memory points: MLODS

p.s. Ive done some reworking with the model.cfg and the config.cpp for a new update that Im not quite dont with yet. so it wont work if you try to PBO it, but the memory points should work just fine! in the memory LOD they'll be under muzzle_beg and muzzle_end.

Enjoy!

{DMM}Jones

Share this post


Link to post
Share on other sites

Excellent! Thanks very much J0nes, that has done the trick very nicely. Cheers mate! Looking forward to your KSG-12 update too!

Share this post


Link to post
Share on other sites

Hey guys! Couple things to say!

First off, BUMP. For those who havent seen this!

Next, I'm sorry I haven't updated this like I had hoped to! :(

I just kinda stopped modding a bit cause it was so time consuming and I actually wanted to play the game!! :D

If you have any questions, PLEASE, feel free to add me on steam! I've already been able to help quite a few people even if it had taken over an hour just to find the issue!

Don't message me on here because I don't check this site often and might not reply quickly! I'm on steam almost everyday though!

Any comments about the guide, really confusing parts, or things that you think should really be added or updated let me know!

Any good things to say or if you think others should see this post in this thread to keep it near the top of the forum!

Thanks everyone for reading /downloading/ or at least trying the guide!!!

Share this post


Link to post
Share on other sites

I'm gonna bump this again because I'm on here again finally and I see a few people having questions!

I want to update this and blah blah blah but I'm not promising anything because it's so damn time consuming :)

If I do it will go over animating the guns bolts and such, also to help out with the coding a bit. Maybe make it a bit simpler. Maybe even make it a video series:)

Thanks for the support guys and please link this to people having questions! The they can contact me!

Happy modding!

Share this post


Link to post
Share on other sites

Now this should be pinned.I did not found this until Chortles posted link on someone else thread!

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

×