reloading error fps1.27 ETeeski tutorial

Link to video - http://www.youtube.com/watch?v=G-EhZAJUdg0

Hi, I followed this video thru but I’m experiencing a bug. When I hold down Fire1 til the clip = 0 the gun stops but when I click Fire1 again, It shoots a bullet and at the same time reloads. I think this bug is the reason for another bug which is being able to reload while aiming. Any ideas on how to fix this would be greatly appreciated.

Also a random question for ETeeski. I noticed the guitar icon on your screen in your tutorials, is that Rocksmith? That game is awesome. =]

GunScript code:

var beingHeld : boolean = false;
var outsideBox : GameObject;
var countToThrow : int = -1;
var playerTransform : Transform;
var playerMovementScript : PlayerMovementScript;
var cameraObject : GameObject;
var targetXRotation : float;
var targetYRotation : float;
var targetXRotationV : float;
var targetYRotationV : float;
var rotateSpeed : float = 0.3;
var holdHeight : float = -0.5;
var holdSide : float = 0.5;
var ratioHipHold : float = 1;
var hipToAimSpeed : float = 0.1;
var ratioHipHoldV : float;
var aimRatio : float = 0.4;
var zoomAngle : float = 30;
var fireSpeed : float = 15;
var waitTilNextFire : float = 0;
var bullet : GameObject;
var bulletSpawn : GameObject;
var shootAngleRandonizationAiming : float = 5;
var shootAngleRandomizationNotAiming : float = 15;
var recoilAmount : float = 0.5;
var recoilRecoverTime : float = 0.2;
var currentRecoilZPos : float;
var currentRecoilZPosV : float;
var bulletSound : GameObject;
var muzzleFlash : GameObject;
var gunbobAmountX : float = 0.5;
var gunbobAmountY : float = 0.5;
var currentGunbobX : float;
var currentGunbobY : float;
var gunModelObjects : GameObject[];
var reloading : boolean = false;
var reloadAnimation : Animation;
var reloadSound : AudioSource;
var reloadAnimationString : String;
var clipSize : int = 25;
var currentClip : int = 25;
var maxExtraAmmo : int = 100;
var currentExtraAmmo : int = 100;

function Awake ()
{
	countToThrow = -1;
	playerTransform = GameObject.FindWithTag("Player").transform;
	playerMovementScript = GameObject.FindWithTag("Player").GetComponent(PlayerMovementScript);
	cameraObject = GameObject.FindWithTag("MainCamera");
	 
}

function LateUpdate () 
{
if ( currentClip > clipSize)
	currentClip = clipSize;
if ( currentExtraAmmo > maxExtraAmmo)
	currentExtraAmmo = maxExtraAmmo;
if ( currentClip < 0)
	currentClip = 0;
if ( currentExtraAmmo < 0)
	currentExtraAmmo = 0;	
if (beingHeld)
{
	if (!reloading  Input.GetButtonDown("Reload")  currentClip < clipSize  currentExtraAmmo > 0)
	
		{
			reloading = true;
			reloadAnimation.Play( reloadAnimationString);
			reloadSound.Play();
		}
	if (!reloading  Input.GetButtonDown("Fire1")  currentClip == 0  currentExtraAmmo > 0)
	
		{
			reloading = true;
			reloadAnimation.Play( reloadAnimationString);
			reloadSound.Play();
		}
	if (reloading  reloadAnimation.IsPlaying( reloadAnimationString))
		{
			if ( currentExtraAmmo >= clipSize - currentClip)
			 {
			 	currentExtraAmmo -= clipSize - currentClip;
			 	currentClip = clipSize;
			 }
			if ( currentExtraAmmo < clipSize - currentClip)
			 {
			 	currentClip += currentExtraAmmo;
			 	currentExtraAmmo = 0;
			 }
			reloading = false;
		}
	
	for(var modelObject : GameObject in gunModelObjects)
	{
		modelObject.layer = 8;
	}
	rigidbody.useGravity = false;
	outsideBox.GetComponent(Collider).enabled = false;
	
	currentGunbobX = Mathf.Sin( cameraObject.GetComponent( LookMouseScript).headbobStepCounter) * gunbobAmountX * ratioHipHold;
	currentGunbobY = Mathf.Cos( cameraObject.GetComponent( LookMouseScript).headbobStepCounter * 2) * gunbobAmountY * -1 * ratioHipHold;
	var holdMuzzleFlash : GameObject;
	var holdSound : GameObject;
	if (Input.GetButton("Fire1")  currentClip > 0  !reloading)
	{
		if (waitTilNextFire <= 0)
		{
			   currentClip -= 1;
			if (bullet)
				Instantiate(bullet, bulletSpawn.transform.position, bulletSpawn.transform.rotation);
			if (bulletSound)
				holdSound = Instantiate(bulletSound, bulletSpawn.transform.position, bulletSpawn.transform.rotation);
			if (muzzleFlash)
				holdMuzzleFlash = Instantiate(muzzleFlash, bulletSpawn.transform.position, bulletSpawn.transform.rotation);
					
				targetXRotation += (Random.value - 0.5) * Mathf.Lerp(shootAngleRandonizationAiming, shootAngleRandomizationNotAiming, ratioHipHold);
				targetYRotation += (Random.value - 0.5) * Mathf.Lerp(shootAngleRandonizationAiming, shootAngleRandomizationNotAiming, ratioHipHold);
				currentRecoilZPos -= recoilAmount;
				
				waitTilNextFire = 1;
		}
	}
	waitTilNextFire -= Time.deltaTime * fireSpeed;
	if (holdSound)
		holdSound.transform.parent = transform;
	if (holdMuzzleFlash)
		holdMuzzleFlash.transform.parent = transform;	
		
	currentRecoilZPos = Mathf.SmoothDamp( currentRecoilZPos, 0, currentRecoilZPosV, recoilRecoverTime);
	cameraObject.GetComponent(LookMouseScript).currentTargetCameraAngle = zoomAngle;
	
	if (Input.GetButton("Fire2")  !reloading){
		cameraObject.GetComponent(LookMouseScript).currentAimRatio = aimRatio;
		ratioHipHold = Mathf.SmoothDamp(ratioHipHold, 0, ratioHipHoldV, hipToAimSpeed);}
	
	if (Input.GetButton("Fire2") == false || reloading){
		cameraObject.GetComponent(LookMouseScript).currentAimRatio = 1;
		ratioHipHold = Mathf.SmoothDamp(ratioHipHold, 1, ratioHipHoldV, hipToAimSpeed);}
		
	transform.position = cameraObject.transform.position + (Quaternion.Euler(0, targetYRotation, 0) * Vector3(holdSide * ratioHipHold + currentGunbobX, holdHeight * ratioHipHold + currentGunbobY, 0) + Quaternion.Euler( targetXRotation, targetYRotation, 0) * Vector3(0, 0, currentRecoilZPos));
	targetXRotation = Mathf.SmoothDamp( targetXRotation, cameraObject.GetComponent(LookMouseScript).xRotation, targetXRotationV, rotateSpeed);
	targetYRotation = Mathf.SmoothDamp( targetYRotation, cameraObject.GetComponent(LookMouseScript).yRotation, targetYRotationV, rotateSpeed);
	
	transform.rotation = Quaternion.Euler(targetXRotation, targetYRotation, 0);
}
if (!beingHeld)

{
	for(var modelObject : GameObject in gunModelObjects)
	{
		modelObject.layer = 0;
	}
    rigidbody.useGravity = true;

    outsideBox.GetComponent(Collider).enabled = true;

    

    countToThrow -= 1;

    if (countToThrow == 0)

        rigidbody.AddRelativeForce(0, playerMovementScript.throwGunUpForce, playerMovementScript.throwGunForwardForce);

    

    if (Vector3.Distance(transform.position, playerTransform.position) < playerMovementScript.distToPickUpGun  Input.GetButtonDown("Use Key")  playerMovementScript.waitFrameForSwitchGuns <= 0)

    {

        playerMovementScript.currentGun.GetComponent(GunScript).beingHeld = false;

        playerMovementScript.currentGun.GetComponent(GunScript).countToThrow = 2;

        playerMovementScript.currentGun = gameObject;

        beingHeld = true;

        targetYRotation = cameraObject.GetComponent(LookMouseScript).yRotation - 180;

        playerMovementScript.waitFrameForSwitchGuns = 2;

    }

}

}

if (bullet currenClip != 0)

Skype: Santhana.bharathy@indianic.com

Thanks for taking the time to look over my code. Did you mean to change line 11 to that? I did and my game plays exactly the same as before.

well personally I like having

if (!reloading Input.GetButton(“Fire1”) currentClip == 0 currentExtraAmmo > 0)
instead of
if (!reloading Input.GetButtonDown(“Fire1”) currentClip == 0 currentExtraAmmo > 0)
(at line 73)

this way you won’t have to press the fire button again to reload it’s automatic

as for your problem at line 80 you have: if (reloading reloadAnimation.IsPlaying( reloadAnimationString))

it should be if (reloading !reloadAnimation.IsPlaying( reloadAnimationString))

i think anyways get back to me and tell me if it works