Hi, first I want to say you I searched in all same topic and question and I didn’t find an answer so please don’t give me this kind of answer :
or
Hey, here’s a lot of same question :
…
So, I’m making an FPS, and I want to my player can’t shot or anything else (exept walking) if he is reloading.
My script :
#pragma strict
///////////////////////////////////////////////////////////////////VARIABLES///////////////////////////////////////////////////////////////////////
var bulletCasing : Rigidbody;
var ejectSpeed : int = 100;
var fireRate : float = 0.5;
private var nextFire : float = 0.0;
private var fullAuto = false;
var clip : int = 30;
var maxclip : int = 30;
var reserve : int = 300;
var minreserve : int = 0;
var shotsound : AudioClip;
var reloadsound : AudioClip;
var MunMax : boolean = true;
var reloadsoundplay : boolean = false;
var eject : Transform;
var anim : Animator;
var isShooting : boolean = false;
var isReloading : boolean = false;
///////////////////////////////////////////////////////////////////FONCTION UPDATE////////////////////////////////////////////////////////////////
function Start () {
anim = GetComponent(Animator);
}
function Update () {
// SECTION DE TIR
if(Input.GetButton("Fire1") && Time.time > nextFire){
if(clip >= 1){
nextFire = Time.time + fireRate;
var bullet : Rigidbody;
bullet = Instantiate(bulletCasing, eject.position, eject.rotation);
clip -= 1;
GetComponent.<AudioSource>().PlayOneShot(shotsound);
animation.Play("shot");
bullet.velocity = eject.TransformDirection(Vector3.left * ejectSpeed);
}
}
//SECTION DE CADENCE DE TIR
if(Input.GetKeyDown("v")){
fullAuto = !fullAuto;
}
//SECTION DE RECHARGE
if(Input.GetKeyDown("r")){
if(reloadsoundplay == true){
GetComponent.<AudioSource>().PlayOneShot(reloadsound);
animation.Play("reload");
}
if(reserve > 30){
RemoveReserve();
clip += maxclip - clip;
}
if(reserve < 30){
clip += reserve;
RemoveReserve();
}
}
//CHANGEMENT DE CADENCE DE TIR
if(fullAuto == true){
fireRate = 0.1;
}else{
fireRate = 0.5;
}
//BLOQUER LA RESERVE A 0
if(reserve <= 0){
reserve = 0;
}
//JOUER LE SON UNIQUEMENT QUAND LE CHARGEUR ACTUEL N'EST PAS COMPLET
if(clip == maxclip){
reloadsoundplay = false;
}
if(clip < maxclip){
reloadsoundplay = true;
}
}
///////////////////////////////////////////////////////////////////FUNCTION ON GUI///////////////////////////////////////////////////////////////////////
function OnGUI(){
GUI.Box(Rect(10,10,130,25), clip+ " / " +reserve);
}
///////////////////////////////////////////////////////////////////FUNCTION REMOVE RESERVE///////////////////////////////////////////////////////////////
function RemoveReserve(){
reserve -= maxclip - clip;
}