Okay so I have been working on an FPS, (like most people) and i need to disable my Reload function while I’m shooting my gun. I can get it to work by putting if(!Firing){return} at the beginning of the function and it won’t reload at all. Even when I’m all out of ammo. Any help would be appreciated.
var fireRate : float = .5;
var bulletShell : Transform;
var BulletShellSpead : float;
var MuzzleFlash : Transform;
var Smoke : Transform;
var Sound : AudioClip;
var strayFactor : float;
var bulletPrefab : Transform;
var bulletSpeed : int;
var GrenadeSpeed : float;
var Grenade : Transform;
var GrenadeAmmo : int;
var MaxAmmo : int;
var CurrentClip : int = 10;
var CurrentExtraAmmo : int = 100;
var ClipSize : int = 10;
var ReloadTime : float;
var ClickSound : AudioClip;
var ReloadSound : AudioClip;
var Reloading : boolean = false;
var Firing : boolean = false;
private var nextFire = .5;
function LateUpdate()
{
if(GrenadeAmmo < 0)
GrenadeAmmo = 0;
if(CurrentClip < 0)
CurrentClip = 0;
if(CurrentClip > MaxAmmo)
CurrentClip = MaxAmmo;
if(Input.GetButtonDown("Fire1")&& CurrentClip <= 0)
{
NoAmmo();
}
}
function Update()
{
if(Input.GetKeyDown(KeyCode.R))
{
Reload();
}
if(Input.GetKeyDown(KeyCode.E))
{
GrenadeThrow();
}
if(CurrentClip > 0)
{
if(Input.GetButtonDown("Fire1") && Time.time > nextFire)
{
nextFire = Time.time + fireRate;
Firing = true;
print("ouch");
Shoot();
var bulletShell = Instantiate(bulletShell, GameObject.Find("Spawn3").transform.position, Quaternion.identity);
bulletShell.rigidbody.AddForce(transform.right * BulletShellSpead);
var MuzzleFlash = Instantiate(MuzzleFlash, GameObject.Find("Spawn").transform.position, Quaternion.identity);
var Smoke = Instantiate(Smoke, GameObject.Find("Spawn").transform.position, Quaternion.identity);
animation.Play("PistolShoot");
audio.PlayOneShot(Sound);
Firing = false;
}
}
}
function GrenadeThrow()
{
if(GrenadeAmmo > 0)
{
var grenade = Instantiate(Grenade, transform.position, Quaternion.identity);
grenade.rigidbody.AddForce(transform.forward * GrenadeSpeed);
}
GrenadeAmmo --;
}
function Shoot()
{
var randomNumberX = Random.Range(-strayFactor, strayFactor);
var randomNumberY = Random.Range(-strayFactor, strayFactor);
var randomNumberZ = Random.Range(-strayFactor, strayFactor);
var bullet = Instantiate(bulletPrefab, GameObject.Find("Spawn").transform.position, transform.rotation);
bullet.transform.Rotate(randomNumberX, randomNumberY, randomNumberZ);
bullet.rigidbody.AddForce(bullet.transform.forward * bulletSpeed);
bullet.tag = "Bullet";
CurrentClip --;
}
function Reload()
{
if(!Firing)
{
return;
}
if(CurrentExtraAmmo <= 0)
{
NoAmmo();
}
else
{
if(CurrentClip <= 14)
{
Reloading = true;
animation.Play("Reload");
audio.PlayOneShot(ReloadSound);
}
yield WaitForSeconds(ReloadTime);
Reloading = false;
if(CurrentExtraAmmo >= ClipSize - CurrentClip)
{
CurrentExtraAmmo -= ClipSize - CurrentClip;
CurrentClip = ClipSize;
}
if(CurrentExtraAmmo <= ClipSize - CurrentClip)
{
CurrentClip += CurrentExtraAmmo;
CurrentExtraAmmo = 0;
}
}
}
function NoAmmo()
{
Firing = false;
animation.Play("Emepty");
audio.PlayOneShot(ClickSound);
}
function OnGUI()
{
if(CurrentClip <= 5)
{
GUI.contentColor = Color.red;
}
GUI.Box(Rect(Screen.width / 1.16, Screen.height / 80, 100, 20), ""+ CurrentClip + "/" + CurrentExtraAmmo);
}