How to make functions non automatic?

I have a reloading script here, and it doesnt work unless I press all of the buttons at once. I figured that this was happening because the functions were happening all at once. How can I make them go one at a time? Thanks.

var shot : GameObject;
var shootingObject : GameObject;
var count : int;
var reloading : boolean;
var inserting : boolean;
var lockandload : boolean;
lockandload = true;
inserting = true;
reloading = true;
count = 15;

function Update () {
    if (count > 0 && Input.GetButtonDown("Fire1"))
        Shoot();
		
    if ( reloading == true && Input.GetKeyDown(KeyCode.R && KeyCode.C))
        Insert ();

    // Should only be able to shoot if we aren't reloading and still have ammo.
}

function Shoot () {
    // Do shooting stuff.
    var projectile = Instantiate(shot, transform.position, transform.rotation);
	projectile.rigidbody.AddForce(transform.forward *6000);
    count--;
}

function Insert () {
	if(inserting == true && Input.GetKeyDown(KeyCode.T)) {
		Lock ();
		inserting = false;
	}
}

function Lock () {
	inserting = false;
	if(lockandload == true && Input.GetKeyDown(KeyCode.G))
		Reload ();
}

function Reload () {
			lockandload = false;
    // Do reloading stuff.
    count += 10;
    reloading = false;
}

Use GetKey instead of GetKeyDown. GetKeyDown only happens in THE FRAME that it happens. GetKey will tell you if it’s down at all. And generally people hold keys down before clicking the mouse.

I understand you want to make it so that you press R then T and then G when needing to reload.

You could go with coroutines:

var reloading : bool = false;
function Update () {
    if (count > 0 && Input.GetButtonDown("Fire1"))
        Shoot();
 
    if ( reloading == true && Input.GetKeyDown(KeyCode.R && KeyCode.C))
        StartCoroutine(Insert ()); 
        reloading = false; // prevent many reloadings
        // In js you can also call Insert(); alone
        // but using the full syntax makes it clear the type of method you are calling
        // personnal point of view though
}
function Shoot () {
   // Do shooting stuff.
   var projectile = Instantiate(shot, transform.position, transform.rotation);
   projectile.rigidbody.AddForce(transform.forward *6000);
   count--;
   reloading = true;
}
function Insert () {
    // I remove inserting as I can't see what is the purpose of it
    while(!Input.GetKeyDown(KeyCode.T)) {   
       yield;
    }
    StartCoroutine(Lock ());
}

function Lock () {
    while(!Input.GetKeyDown(KeyCode.G)){
       yield;
    }
    StartCoroutine(Reload ());
}

function Reload () {
    // Do reloading stuff.
    count += 10;
}