Author Topic: Reload error  (Read 692 times)

For my BAR gun, it only shoots fourteen rounds when I coded for 20.

Code: [Select]
// Initial start up state
stateName[0]                     = "Activate";
stateTimeoutValue[0]             = 0.15;
stateTransitionOnTimeout[0]       = "Reload";
stateSound[0] = weaponSwitchSound;

stateName[1]                     = "Ready";
stateTransitionOnTriggerDown[1]  = "Ammo1";
stateAllowImageChange[1]         = true;
stateSequence[1] = "Ready";

//reload passage!

stateName[2]                     = "Reload";
stateAllowImageChange[2]         = true;
stateSequence[2]                = "Reload";
stateScript[2]                  = "Reload";
stateSequence[2] = "Reload";
stateTransitionOnTimeout[2]     = "Reload2";
stateWaitForTimeout[2] = true;
stateTimeoutValue[2] = 0.75;
stateSound[2] = BARReloadSound;

stateName[3]                     = "Reload2";
stateAllowImageChange[3]         = true;
stateSequence[3]                = "Reload2";
stateScript[3]                  = "Reload2";
stateSequence[3] = "Reload2";
stateTransitionOnTimeout[3]     = "Ready";
stateWaitForTimeout[3] = true;
stateTimeoutValue[3] = 0.85;
stateSound[3] = BARReload2Sound;

//ammo passage and firing
//first shot

stateName[4]                    = "Ammo1";
stateTransitionOnTimeout[4]     = "Ammo1Ready";
stateTimeoutValue[4]            = 0.20;
stateFire[4]                    = true;
stateAllowImageChange[4]        = false;
stateSequence[4]                = "nil";
stateScript[4]                  = "onFire";
stateWaitForTimeout[4] = true;
stateEmitter[4] = gunFlashEmitter;
stateEmitterTime[4] = 0.02;
stateEmitterNode[4] = "muzzleNode";
stateSound[4] = BARShotSound;

stateName[5]                     = "Ammo1Ready";
stateTransitionOnTriggerDown[5]  = "Ammo2";
stateAllowImageChange[5]         = true;
stateSequence[5] = "Ready";

//second shot

stateName[6]                    = "Ammo2";
stateTransitionOnTimeout[6]     = "Ammo2Ready";
stateTimeoutValue[6]            = 0.20;
stateFire[6]                    = true;
stateAllowImageChange[6]        = false;
stateSequence[6]                = "nil";
stateScript[6]                  = "onFire";
stateWaitForTimeout[6] = true;
stateEmitter[6] = gunFlashEmitter;
stateEmitterTime[6] = 0.02;
stateEmitterNode[6] = "muzzleNode";
stateSound[6] = BARShotSound;

stateName[7]                     = "Ammo2Ready";
stateTransitionOnTriggerDown[7]  = "Ammo3";
stateAllowImageChange[7]         = true;
stateSequence[7] = "Ready";

//third shot

stateName[8]                    = "Ammo3";
stateTransitionOnTimeout[8]     = "Ammo3Ready";
stateTimeoutValue[8]            = 0.20;
stateFire[8]                    = true;
stateAllowImageChange[8]        = false;
stateSequence[8]                = "Fire";
stateScript[8]                  = "onFire";
stateWaitForTimeout[8] = true;
stateEmitter[8] = gunFlashEmitter;
stateEmitterTime[8] = 0.02;
stateEmitterNode[8] = "muzzleNode";
stateSound[8] = BARShotSound;

stateName[9]                     = "Ammo3Ready";
stateTransitionOnTriggerDown[9]  = "Ammo4";
stateAllowImageChange[9]         = true;
stateSequence[9] = "Ready";

//fourth shot

stateName[10]                    = "Ammo4";
stateTransitionOnTimeout[10]     = "Ammo4Ready";
stateTimeoutValue[10]            = 0.20;
stateFire[10]                    = true;
stateAllowImageChange[10]        = false;
stateSequence[10]                = "Fire";
stateScript[10]                  = "onFire";
stateWaitForTimeout[10] = true;
stateEmitter[10] = gunFlashEmitter;
stateEmitterTime[10] = 0.02;
stateEmitterNode[10] = "muzzleNode";
stateSound[10] = BARShotSound;

stateName[11]                     = "Ammo4Ready";
stateTransitionOnTriggerDown[11]  = "Ammo5";
stateAllowImageChange[11]         = true;
stateSequence[11] = "Ready";

//fifth shot

stateName[12]                    = "Ammo5";
stateTransitionOnTimeout[12]     = "Ammo5Ready";
stateTimeoutValue[12]            = 0.20;
stateFire[12]                    = true;
stateAllowImageChange[12]        = false;
stateSequence[12]                = "Fire";
stateScript[12]                  = "onFire";
stateWaitForTimeout[12] = true;
stateEmitter[12] = gunFlashEmitter;
stateEmitterTime[12] = 0.02;
stateEmitterNode[12] = "muzzleNode";
stateSound[12] = BARShotSound;

stateName[13]                     = "Ammo5Ready";
stateTransitionOnTriggerDown[13]  = "Ammo6";
stateAllowImageChange[13]         = true;
stateSequence[13] = "Ready";

//sixth shot

stateName[14]                    = "Ammo6";
stateTransitionOnTimeout[14]     = "Ammo6Ready";
stateTimeoutValue[14]            = 0.20;
stateFire[14]                    = true;
stateAllowImageChange[12]        = false;
stateSequence[14]                = "Fire";
stateScript[14]                  = "onFire";
stateWaitForTimeout[14] = true;
stateEmitter[14] = gunFlashEmitter;
stateEmitterTime[14] = 0.02;
stateEmitterNode[14] = "muzzleNode";
stateSound[14] = BARShotSound;

stateName[15]                     = "Ammo6Ready";
stateTransitionOnTriggerDown[15]  = "Ammo7";
stateAllowImageChange[15]         = true;
stateSequence[15] = "Ready";

//seventh shot

stateName[16]                    = "Ammo7";
stateTransitionOnTimeout[16]     = "Ammo7Ready";
stateTimeoutValue[16]            = 0.20;
stateFire[16]                    = true;
stateAllowImageChange[16]        = false;
stateSequence[16]                = "Fire";
stateScript[16]                  = "onFire";
stateWaitForTimeout[16] = true;
stateEmitter[16] = gunFlashEmitter;
stateEmitterTime[16] = 0.02;
stateEmitterNode[16] = "muzzleNode";
stateSound[16] = BARShotSound;

stateName[17]                     = "Ammo7Ready";
stateTransitionOnTriggerDown[17]  = "Ammo8";
stateAllowImageChange[17]         = true;
stateSequence[17] = "Ready";

//eighth shot

stateName[18]                    = "Ammo8";
stateTransitionOnTimeout[18]     = "Ammo8Ready";
stateTimeoutValue[18]            = 0.20;
stateFire[18]                    = true;
stateAllowImageChange[18]        = false;
stateSequence[18]                = "Fire";
stateScript[18]                  = "onFire";
stateWaitForTimeout[18] = true;
stateEmitter[18] = gunFlashEmitter;
stateEmitterTime[18] = 0.02;
stateEmitterNode[18] = "muzzleNode";
stateSound[18] = BARShotSound;

stateName[19]                     = "Ammo8Ready";
stateTransitionOnTriggerDown[19]  = "Ammo9";
stateAllowImageChange[19]         = true;
stateSequence[19] = "Ready";

//nineth shot

stateName[20]                    = "Ammo9";
stateTransitionOnTimeout[20]     = "Ammo9Ready";
stateTimeoutValue[20]            = 0.20;
stateFire[20]                    = true;
stateAllowImageChange[20]        = false;
stateSequence[20]                = "Fire";
stateScript[20]                  = "onFire";
stateWaitForTimeout[20] = true;
stateEmitter[20] = gunFlashEmitter;
stateEmitterTime[20] = 0.02;
stateEmitterNode[20] = "muzzleNode";
stateSound[20] = BARShotSound;

stateName[21]                     = "Ammo9Ready";
stateTransitionOnTriggerDown[21]  = "Ammo10";
stateAllowImageChange[21]         = true;
stateSequence[21] = "Ready";

//Tenth shot

stateName[22]                    = "Ammo10";
stateTransitionOnTimeout[22]     = "Ammo10Ready";
stateTimeoutValue[22]            = 0.20;
stateFire[22]                    = true;
stateAllowImageChange[22]        = false;
stateSequence[22]                = "Fire";
stateScript[22]                  = "onFire";
stateWaitForTimeout[22] = true;
stateEmitter[22] = gunFlashEmitter;
stateEmitterTime[22] = 0.02;
stateEmitterNode[22] = "muzzleNode";
stateSound[22] = BARShotSound;

stateName[23]                     = "Ammo10Ready";
stateTransitionOnTriggerDown[23]  = "Ammo11";
stateAllowImageChange[23]         = true;
stateSequence[23] = "Ready";

//Eleventh shot

stateName[24]                    = "Ammo11";
stateTransitionOnTimeout[24]     = "Ammo11Ready";
stateTimeoutValue[24]            = 0.20;
stateFire[24]                    = true;
stateAllowImageChange[24]        = false;
stateSequence[24]                = "Fire";
stateScript[24]                  = "onFire";
stateWaitForTimeout[24] = true;
stateEmitter[24] = gunFlashEmitter;
stateEmitterTime[24] = 0.02;
stateEmitterNode[24] = "muzzleNode";
stateSound[24] = BARShotSound;

stateName[25]                     = "Ammo11Ready";
stateTransitionOnTriggerDown[25]  = "Ammo12";
stateAllowImageChange[25]         = true;
stateSequence[25] = "Ready";

//twelve shot

stateName[26]                    = "Ammo12";
stateTransitionOnTimeout[26]     = "Ammo12Ready";
stateTimeoutValue[26]            = 0.20;
stateFire[26]                    = true;
stateAllowImageChange[26]        = false;
stateSequence[26]                = "Fire";
stateScript[26]                  = "onFire";
stateWaitForTimeout[26] = true;
stateEmitter[26] = gunFlashEmitter;
stateEmitterTime[26] = 0.02;
stateEmitterNode[26] = "muzzleNode";
stateSound[26] = BARShotSound;

stateName[27]                     = "Ammo12Ready";
stateTransitionOnTriggerDown[27]  = "Ammo13";
stateAllowImageChange[27]         = true;
stateSequence[27] = "Ready";

//thirteen shot

stateName[28]                    = "Ammo13";
stateTransitionOnTimeout[28]     = "Ammo13Ready";
stateTimeoutValue[28]            = 0.20;
stateFire[28]                    = true;
stateAllowImageChange[28]        = false;
stateSequence[28]                = "Fire";
stateScript[28]                  = "onFire";
stateWaitForTimeout[28] = true;
stateEmitter[28] = gunFlashEmitter;
stateEmitterTime[28] = 0.02;
stateEmitterNode[28] = "muzzleNode";
stateSound[28] = BARShotSound;

stateName[29]                     = "Ammo13Ready";
stateTransitionOnTriggerDown[29]  = "Ammo14";
stateAllowImageChange[29]         = true;
stateSequence[29] = "Ready";

//fourteen shot

stateName[30]                    = "Ammo14";
stateTransitionOnTimeout[30]     = "Ammo14Ready";
stateTimeoutValue[30]            = 0.20;
stateFire[30]                    = true;
stateAllowImageChange[30]        = false;
stateSequence[30]                = "Fire";
stateScript[30]                  = "onFire";
stateWaitForTimeout[30] = true;
stateEmitter[30] = gunFlashEmitter;
stateEmitterTime[30] = 0.02;
stateEmitterNode[30] = "muzzleNode";
stateSound[30] = BARShotSound;

stateName[31]                     = "Ammo14Ready";
stateTransitionOnTriggerDown[31]  = "Ammo15";
stateAllowImageChange[31]         = true;
stateSequence[31] = "Ready";

//fifteen shot

stateName[32]                    = "Ammo15";
stateTransitionOnTimeout[32]     = "Ammo15Ready";
stateTimeoutValue[32]            = 0.20;
stateFire[32]                    = true;
stateAllowImageChange[32]        = false;
stateSequence[32]                = "Fire";
stateScript[32]                  = "onFire";
stateWaitForTimeout[32] = true;
stateEmitter[32] = gunFlashEmitter;
stateEmitterTime[32] = 0.02;
stateEmitterNode[32] = "muzzleNode";
stateSound[32] = BARShotSound;

stateName[33]                     = "Ammo15Ready";
stateTransitionOnTriggerDown[33]  = "Ammo16";
stateAllowImageChange[33]         = true;
stateSequence[33] = "Ready";

//sixteen shot

stateName[34]                    = "Ammo16";
stateTransitionOnTimeout[34]     = "Ammo16Ready";
stateTimeoutValue[34]            = 0.20;
stateFire[34]                    = true;
stateAllowImageChange[34]        = false;
stateSequence[34]                = "Fire";
stateScript[34]                  = "onFire";
stateWaitForTimeout[34] = true;
stateEmitter[34] = gunFlashEmitter;
stateEmitterTime[34] = 0.02;
stateEmitterNode[34] = "muzzleNode";
stateSound[34] = BARShotSound;

stateName[35]                     = "Ammo16Ready";
stateTransitionOnTriggerDown[35]  = "Ammo17";
stateAllowImageChange[35]         = true;
stateSequence[35] = "Ready";

//seventeen shot

stateName[36]                    = "Ammo17";
stateTransitionOnTimeout[36]     = "Ammo17Ready";
stateTimeoutValue[36]            = 0.20;
stateFire[36]                    = true;
stateAllowImageChange[36]        = false;
stateSequence[36]                = "Fire";
stateScript[36]                  = "onFire";
stateWaitForTimeout[36] = true;
stateEmitter[36] = gunFlashEmitter;
stateEmitterTime[36] = 0.02;
stateEmitterNode[36] = "muzzleNode";
stateSound[36] = BARShotSound;

stateName[37]                     = "Ammo17Ready";
stateTransitionOnTriggerDown[37]  = "Ammo18";
stateAllowImageChange[37]         = true;
stateSequence[37] = "Ready";

//Eighteen shot

stateName[38]                    = "Ammo18";
stateTransitionOnTimeout[38]     = "Ammo18Ready";
stateTimeoutValue[38]            = 0.20;
stateFire[38]                    = true;
stateAllowImageChange[38]        = false;
stateSequence[38]                = "Fire";
stateScript[38]                  = "onFire";
stateWaitForTimeout[38] = true;
stateEmitter[38] = gunFlashEmitter;
stateEmitterTime[38] = 0.02;
stateEmitterNode[38] = "muzzleNode";
stateSound[38] = BARShotSound;

stateName[39]                     = "Ammo18Ready";
stateTransitionOnTriggerDown[39]  = "Ammo19";
stateAllowImageChange[39]         = true;
stateSequence[39] = "Ready";

//Nineteen shot

stateName[40]                    = "Ammo19";
stateTransitionOnTimeout[40]     = "Ammo19Ready";
stateTimeoutValue[40]            = 0.20;
stateFire[40]                    = true;
stateAllowImageChange[40]        = false;
stateSequence[40]                = "Fire";
stateScript[40]                  = "onFire";
stateWaitForTimeout[40] = true;
stateEmitter[40] = gunFlashEmitter;
stateEmitterTime[40] = 0.02;
stateEmitterNode[40] = "muzzleNode";
stateSound[40] = BARShotSound;

stateName[41]                     = "Ammo19Ready";
stateTransitionOnTriggerDown[41]  = "AmmoR";
stateAllowImageChange[41]         = true;
stateSequence[41] = "Ready";


//twenty shot and loop back to reload

stateName[42]                    = "AmmoR";
stateTransitionOnTimeout[42]     = "Reload";
stateTimeoutValue[42]            = 0.14;
stateFire[42]                    = true;
stateAllowImageChange[42]        = false;
stateSequence[42]                = "Fire";
stateScript[42]                  = "onFire";
stateWaitForTimeout[42] = true;
stateEmitter[42] = gunFlashEmitter;
stateEmitterTime[42] = 0.02;
stateEmitterNode[42] = "muzzleNode";
stateSound[42] = BARShotSound;
};

Max states is 32. Code a decent ammo system instead of making a million identical image states.

Max states is 32. Code a decent ammo system instead of making a million identical image states.
Any suggestions on how to do so?