Muffler weapons
by Mr Li · 08/23/2012 (2:36 pm) · 6 comments
This is the weapon muffler state . Modeled m4a1 in shooting game. :)
Which contains the ordinary state and muffler state , their properties can be adjusted according to the actual situation .
Unfortunately opened fire state bug .
stateFire[17] = false;//true, Is true, the sound does not correct
Which contains the ordinary state and muffler state , their properties can be adjusted according to the actual situation .
Unfortunately opened fire state bug .
stateFire[17] = false;//true, Is true, the sound does not correct
datablock ShapeBaseImageData(m4a1Image)
{
//...
//
stateName[0] = "Preactivate";
stateTransitionOnLoaded[0] = "Activate";
stateTransitionOnNoAmmo[0] = "NoAmmo";
// Activating the gun. Called when the weapon is first
// mounted and there is ammo.
stateName[1] = "Activate";
stateTransitionGeneric0In[1] = "SprintEnter";
stateTransitionOnTimeout[1] = "Ready";
stateTimeoutValue[1] = 0.5;
stateSequence[1] = "switch_in";
stateSound[1] = m4a1DeploySound;
// Ready to fire, just waiting for the trigger
stateName[2] = "Ready";
stateTransitionGeneric0In[2] = "SprintEnter";
stateTransitionOnMotion[2] = "ReadyMotion";
stateTransitionOnTimeout[2] = "ReadyFidget";
stateTimeoutValue[2] = 10;
stateWaitForTimeout[2] = false;
stateScaleAnimation[2] = false;
stateScaleAnimationFP[2] = false;
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnAltTriggerDown[2] = "Muffling"; //
stateSequence[2] = "idle";
// Same as Ready state but plays a fidget sequence
stateName[3] = "ReadyFidget";
stateTransitionGeneric0In[3] = "SprintEnter";
stateTransitionOnMotion[3] = "ReadyMotion";
stateTransitionOnTimeout[3] = "Ready";
stateTimeoutValue[3] = 6;
stateWaitForTimeout[3] = false;
stateTransitionOnNoAmmo[3] = "NoAmmo";
stateTransitionOnTriggerDown[3] = "Fire";
stateTransitionOnAltTriggerDown[3] = "Muffling"; //
stateSequence[3] = "idle_fidget1";
stateSound[3] = LurkerIdleSound;
// Ready to fire with player moving
stateName[4] = "ReadyMotion";
stateTransitionGeneric0In[4] = "SprintEnter";
stateTransitionOnNoMotion[4] = "Ready";
stateWaitForTimeout[4] = false;
stateScaleAnimation[4] = false;
stateScaleAnimationFP[4] = false;
stateSequenceTransitionIn[4] = true;
stateSequenceTransitionOut[4] = true;
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateTransitionOnTriggerDown[4] = "Fire";
stateTransitionOnAltTriggerDown[4] = "Muffling"; //
stateSequence[4] = "run";
// Fire the weapon. Calls the fire script which does
// the actual work.
stateName[5] = "Fire";
stateTransitionGeneric0In[5] = "SprintEnter";
//stateTransitionOnTriggerDown[5] = "NewRound";
stateTransitionOnTimeout[5] = "NewRound";
stateTransitionOnAltTriggerDown[5] = "Muffling"; //
stateTimeoutValue[5] = 0.05;//0.15;
stateFire[5] = true;
stateRecoil[5] = "";
stateAllowImageChange[5] = false;
stateSequence[5] = "fire";
stateScaleAnimation[5] = false;
stateSequenceNeverTransition[5] = true;
stateSequenceRandomFlash[5] = true; // use muzzle flash sequence
stateScript[5] = "onFire";
stateSound[5] = m4a1FireSound;
stateEmitter[5] = WeaponFireMuzzleEmitter;
stateEmitterTime[5] = 0.05;
// Put another round into the chamber if one is available
stateName[6] = "NewRound";
stateTransitionGeneric0In[6] = "SprintEnter";
stateTransitionOnNoAmmo[6] = "NoAmmo";
//stateTransitionOnTriggerDown[6] = "Ready";
stateTransitionOnTimeout[6] = "Ready";
stateTimeoutValue[6] = 0.05;//0.05;
stateTransitionOnAltTriggerDown[6] = "Muffling"; //
stateWaitForTimeout[6] = "0";
stateAllowImageChange[6] = false;
stateEjectShell[6] = true;
// No ammo in the weapon, just idle until something
// shows up. Play the dry fire sound if the trigger is
// pulled.
stateName[7] = "NoAmmo";
stateTransitionGeneric0In[7] = "SprintEnter";
stateTransitionOnMotion[7] = "NoAmmoMotion";
stateTransitionOnAmmo[7] = "ReloadClip";
stateTimeoutValue[7] = 0.1; // Slight pause to allow script to run when trigger is still held down from Fire state
stateScript[7] = "onClipEmpty";
stateSequence[7] = "idle";
stateScaleAnimation[7] = false;
stateScaleAnimationFP[7] = false;
stateTransitionOnTriggerDown[7] = "DryFire";
stateTransitionOnAltTriggerDown[7] = "Muffling"; //
stateName[8] = "NoAmmoMotion";
stateTransitionGeneric0In[8] = "SprintEnter";
stateTransitionOnNoMotion[8] = "NoAmmo";
stateWaitForTimeout[8] = false;
stateScaleAnimation[8] = false;
stateScaleAnimationFP[8] = false;
stateSequenceTransitionIn[8] = true;
stateSequenceTransitionOut[8] = true;
stateTransitionOnTriggerDown[8] = "DryFire";
stateTransitionOnAltTriggerDown[8] = "Muffling"; //
stateTransitionOnAmmo[8] = "ReloadClip";
stateSequence[8] = "run";
// No ammo dry fire
stateName[9] = "DryFire";
stateTransitionGeneric0In[9] = "SprintEnter";
stateTransitionOnAmmo[9] = "ReloadClip";
stateWaitForTimeout[9] = "0";
stateTimeoutValue[9] = 0.7;
stateTransitionOnTimeout[9] = "NoAmmo";
stateScript[9] = "onDryFire";
stateSound[9] = m4a1EmptySound;
// Play the reload clip animation
stateName[10] = "ReloadClip";
stateTransitionGeneric0In[10] = "SprintEnter";
stateTransitionOnTimeout[10] = "Ready";
stateWaitForTimeout[10] = true;
stateTimeoutValue[10] = 3.0;
stateReload[10] = true;
stateSequence[10] = "reload";
stateShapeSequence[10] = "Reload";
stateScaleShapeSequence[10] = true;
stateSound[10] = LurkerReloadSound;
// Start Sprinting
stateName[11] = "SprintEnter";
stateTransitionGeneric0Out[11] = "SprintExit";
stateTransitionOnTimeout[11] = "Sprinting";
stateWaitForTimeout[11] = false;
stateTimeoutValue[11] = 0.5;
stateWaitForTimeout[11] = false;
stateScaleAnimation[11] = false;
stateScaleAnimationFP[11] = false;
stateSequenceTransitionIn[11] = true;
stateSequenceTransitionOut[11] = true;
stateAllowImageChange[11] = false;
stateSequence[11] = "sprint";
// Sprinting
stateName[12] = "Sprinting";
stateTransitionGeneric0Out[12] = "SprintExit";
stateWaitForTimeout[12] = false;
stateScaleAnimation[12] = false;
stateScaleAnimationFP[12] = false;
stateSequenceTransitionIn[12] = true;
stateSequenceTransitionOut[12] = true;
stateAllowImageChange[12] = false;
stateSequence[12] = "sprint";
// Stop Sprinting
stateName[13] = "SprintExit";
stateTransitionGeneric0In[13] = "SprintEnter";
stateTransitionOnTimeout[13] = "Ready";
stateWaitForTimeout[13] = false;
stateTimeoutValue[13] = 0.5;
stateSequenceTransitionIn[13] = true;
stateSequenceTransitionOut[13] = true;
stateAllowImageChange[13] = false;
stateSequence[13] = "sprint";
// Ready to fire, just waiting for the trigger
stateName[14] = "MuReady";
stateTransitionGeneric0In[14] = "MuSprintEnter";
stateTransitionOnMotion[14] = "MuReadyMotion";
stateTransitionOnTimeout[14] = "MuReadyFidget";
stateTimeoutValue[14] = 10;
stateWaitForTimeout[14] = false;
stateScaleAnimation[14] = false;
stateScaleAnimationFP[14] = false;
stateTransitionOnNoAmmo[14] = "MuNoAmmo";
stateTransitionOnTriggerDown[14] = "MuFire";
stateTransitionOnAltTriggerDown[14] = "unMuffling";
stateSequence[14] = "idle";
// Same as Ready state but plays a fidget sequence
stateName[15] = "MuReadyFidget";
stateTransitionGeneric0In[15] = "MuSprintEnter";
stateTransitionOnMotion[15] = "MuReadyMotion";
stateTransitionOnTimeout[15] = "MuReady";
stateTimeoutValue[15] = 6;
stateWaitForTimeout[15] = false;
stateTransitionOnNoAmmo[15] = "MuNoAmmo";
stateTransitionOnTriggerDown[15] = "MuFire";
stateTransitionOnAltTriggerDown[15] = "unMuffling";
stateSequence[15] = "idle_fidget1";
stateSound[15] = LurkerIdleSound;
// Ready to fire with player moving
stateName[16] = "MuReadyMotion";
stateTransitionGeneric0In[16] = "MuSprintEnter";
stateTransitionOnNoMotion[16] = "MuReady";
stateWaitForTimeout[16] = false;
stateScaleAnimation[16] = false;
stateScaleAnimationFP[16] = false;
stateSequenceTransitionIn[16] = true;
stateSequenceTransitionOut[16] = true;
stateTransitionOnNoAmmo[16] = "MuNoAmmo";
stateTransitionOnTriggerDown[16] = "MuFire";
stateTransitionOnAltTriggerDown[16] = "unMuffling";
stateSequence[16] = "run";
// Fire the weapon. Calls the fire script which does
// the actual work.
stateName[17] = "MuFire";
stateTransitionGeneric0In[17] = "MuSprintEnter";
//stateTransitionOnTriggerDown[17] = "MuNewRound";
stateTransitionOnTimeout[17] = "MuNewRound";
stateTimeoutValue[17] = 0.04;//0.15;
stateFire[17] = false;
stateRecoil[17] = "";
stateAllowImageChange[17] = false;
stateSequence[17] = "Fire";
stateScaleAnimation[17] = false;
stateSequenceNeverTransition[17] = false;
stateSequenceRandomFlash[17] = false; // use muzzle flash sequence
stateScript[17] = "onFire";
stateSound[17] = m4a1OnFireSound;
stateEmitter[17] = WeaponFireMuzzleEmitter;
stateEmitterTime[17] = 0.04;
// Put another round into the chamber if one is available
stateName[18] = "MuNewRound";
stateTransitionGeneric0In[18] = "MuSprintEnter";
stateTransitionOnNoAmmo[18] = "MuNoAmmo";
//stateTransitionOnTriggerDown[18] = "MuReady";
stateWaitForTimeout[18] = "0";
stateTransitionOnTimeout[18] = "MuReady";
stateTimeoutValue[18] = 0.06;//0.05;
stateAllowImageChange[18] = false;
stateEjectShell[18] = true;
// No ammo in the weapon, just idle until something
// shows up. Play the dry fire sound if the trigger is
// pulled.
stateName[19] = "MuNoAmmo";
stateTransitionGeneric0In[19] = "MuSprintEnter";
stateTransitionOnMotion[19] = "MuNoAmmoMotion";
stateTransitionOnAmmo[19] = "MuReloadClip";
stateTimeoutValue[19] = 0.1; // Slight pause to allow script to run when trigger is still held down from Fire state
stateScript[19] = "onClipEmpty";
stateSequence[19] = "idle";
stateScaleAnimation[19] = false;
stateScaleAnimationFP[19] = false;
stateTransitionOnTriggerDown[19] = "MuDryFire";
stateName[20] = "MuNoAmmoMotion";
stateTransitionGeneric0In[20] = "MuSprintEnter";
stateTransitionOnNoMotion[20] = "MuNoAmmo";
stateWaitForTimeout[20] = false;
stateScaleAnimation[20] = false;
stateScaleAnimationFP[20] = false;
stateSequenceTransitionIn[20] = true;
stateSequenceTransitionOut[20] = true;
stateTransitionOnTriggerDown[20] = "MuDryFire";
stateTransitionOnAmmo[20] = "MuReloadClip";
stateSequence[20] = "run";
// No ammo dry fire
stateName[21] = "MuDryFire";
stateTransitionGeneric0In[21] = "MuSprintEnter";
stateTransitionOnAmmo[21] = "MuReloadClip";
stateWaitForTimeout[21] = "0";
stateTimeoutValue[21] = 0.7;
stateTransitionOnTimeout[21] = "MuNoAmmo";
stateScript[21] = "onDryFire";
stateSound[21] = m4a1EmptySound;
// Play the reload clip animation
stateName[22] = "MuReloadClip";
stateTransitionGeneric0In[22] = "MuSprintEnter";
stateTransitionOnTimeout[22] = "MuReady";
stateWaitForTimeout[22] = false;
stateTimeoutValue[22] = 3.0;
stateReload[22] = false;
stateSequence[22] = "reload";
stateShapeSequence[22] = "Reload";
stateScaleShapeSequence[22] = false;
stateSound[22] = LurkerReloadSound;
// Start Sprinting
stateName[23] = "MuSprintEnter";
stateTransitionGeneric0Out[23] = "MuSprintExit";
stateTransitionOnTimeout[23] = "MuSprinting";
stateWaitForTimeout[23] = false;
stateTimeoutValue[23] = 0.5;
stateWaitForTimeout[23] = false;
stateScaleAnimation[23] = false;
stateScaleAnimationFP[23] = false;
stateSequenceTransitionIn[23] = true;
stateSequenceTransitionOut[23] = true;
stateAllowImageChange[23] = false;
stateSequence[23] = "sprint";
// Sprinting
stateName[24] = "MuSprinting";
stateTransitionGeneric0Out[24] = "MuSprintExit";
stateWaitForTimeout[24] = false;
stateScaleAnimation[24] = false;
stateScaleAnimationFP[24] = false;
stateSequenceTransitionIn[24] = true;
stateSequenceTransitionOut[24] = true;
stateAllowImageChange[24] = false;
stateSequence[24] = "sprint";
// Stop Sprinting
stateName[25] = "MuSprintExit";
stateTransitionGeneric0In[25] = "MuSprintEnter";
stateTransitionOnTimeout[25] = "MuReady";
stateWaitForTimeout[25] = false;
stateTimeoutValue[25] = 0.5;
stateSequenceTransitionIn[25] = true;
stateSequenceTransitionOut[25] = true;
stateAllowImageChange[25] = false;
stateSequence[25] = "sprint";
stateName[26] = "Muffling";
stateTransitionOnTimeout[26] = "MuReady";
stateTimeoutValue[26] = 2.0;
stateSequence[26] = "fire_alt";
stateSound[26] = m4a1SOnSound;
stateName[27] = "unMuffling";
stateTransitionOnTimeout[27] = "Ready";
stateTimeoutValue[27] = 2.0;
stateSequence[27] = "fire_alt";
stateSound[27] = m4a1SOffSound;
};
#2
08/25/2012 (8:57 am)
Would you mind enclosing your code inside code blocks to make for easier reading?// This is code! // use [code][/code]
#3
Please edit the resource and provide an actual description for the preview text.
08/27/2012 (1:39 pm)
@Mr LiPlease edit the resource and provide an actual description for the preview text.
#4
Sorry , the first grant resources . I have improved.
Thank you.
@Scott
Thank you.
I have improved.
08/28/2012 (7:49 pm)
@Robert Sorry , the first grant resources . I have improved.
Thank you.
@Scott
Thank you.
I have improved.
#5
08/29/2012 (4:10 am)
Any chance to see a little movie, showing this gun and function in use?
#6
08/29/2012 (9:40 am)
Thanks for posting this resource Li :) 
Mr Li
HuaXiao Studio