Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Gerenic Variables//
- var Force : float = 1000;
- var Range : float = 1000;
- var Damage : int = 10;
- var CurAmmo : int;
- var AmmoPerClip : int;
- var AmmoLeft : int;
- var AmmoToLoad : int;
- var MaxAmmo : int;
- var ReloadTime : float = 3.3;
- var ShootTimer : float = 0;
- var ShootCooler : float = 0.5;
- var ShootSpeed : float = 0.15;
- var ShotTime : float = 0;
- var NextShot : float;
- var KeyCooler : float = 0.5;
- var KeyTimer : float = 0;
- var Gun : GameObject;
- //Boolean Variables//
- var isAuto : boolean = false;
- var isBurst : boolean = false;
- var isSingle : boolean = false;
- var isSilenced : boolean = false;
- var isReloading : boolean = false;
- //MuzzleFlash System//
- var MuzzleFlash : ParticleEmitter;
- var MuzzleFlashTimer : float = 0;
- var MuzzleFlashCooler : float = 0.5;
- var Light1 : GameObject;
- var Light2 : GameObject;
- var Light3 : GameObject;
- //Decal and Particle System//
- var DefaultHole : GameObject;
- var MetalHole : GameObject;
- var WoodHole : GameObject;
- var BrickHole : GameObject;
- var DirtHole : GameObject;
- var MudHole : GameObject;
- var DefaultSpark : GameObject;
- var MetalSpark : GameObject;
- var WoodSpark : GameObject;
- var BrickSpark : GameObject;
- var DirtSpark : GameObject;
- var MudSpark : GameObject;
- var MaxDist : float = 1000000000;
- var FloatInFrontOfWall : float = 0.00001;
- //Audio System//
- var ShootAudio : AudioClip;
- var ReloadAudio : AudioClip;
- var SilencerOn : AudioClip;
- var SilencerOff : AudioClip;
- function Start()
- {
- CurAmmo = AmmoPerClip;
- AmmoLeft = MaxAmmo;
- NextShot = ShootSpeed;
- MuzzleFlash.emit = false;
- DefaultPos = transform.localPosition;
- }
- function Update()
- {
- General();
- Automatic();
- BurstFire();
- SingleFire();
- CallManualReload();
- }
- function General()
- {
- if( KeyTimer > 0)
- {
- KeyTimer -= Time.deltaTime;
- }
- if(KeyTimer < 0)
- {
- KeyTimer = 0;
- }
- if( MuzzleFlashTimer > 0)
- {
- MuzzleFlashTimer -= Time.deltaTime;
- MuzzleFlashCall();
- }
- if(MuzzleFlashTimer < 0)
- {
- MuzzleFlashTimer = 0;
- }
- if( ShootTimer > 0)
- {
- ShootTimer -= Time.deltaTime;
- }
- if(ShootTimer < 0)
- {
- ShootTimer = 0;
- }
- }
- function RayShoot()
- {
- ShootAnimation();
- var Hit : RaycastHit;
- var Direction : Vector3 = transform.TransformDirection(Vector3.forward);
- Debug.DrawRay(transform.position, Direction * Range, Color.blue);
- if(Physics.Raycast(transform.position, transform.forward, Hit, MaxDist))
- {
- if(Hit.transform.tag == "Default")
- {
- Instantiate(DefaultHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
- }
- else if(Hit.transform.tag == "Metal")
- {
- Instantiate(MetalHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
- }
- else if(Hit.transform.tag == "Wood")
- {
- Instantiate(WoodHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
- }
- else if(Hit.transform.tag == "Brick")
- {
- Instantiate(BrickHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
- }
- else if(Hit.transform.tag == "Dirt")
- {
- Instantiate(DirtHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
- }
- else if(Hit.transform.tag == "Mud")
- {
- Instantiate(MudHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
- }
- }
- CurAmmo--;
- AmmoToLoad++;
- if(CurAmmo < 0)
- {
- CurAmmo = 0;
- }
- if(CurAmmo == 0)
- {
- Reload();
- }
- }
- function MuzzleFlashCall()
- {
- if(MuzzleFlashTimer > 0)
- {
- MuzzleFlash.emit = false;
- Light1.active = false;
- Light2.active = false;
- Light3.active = false;
- }
- if(MuzzleFlashTimer == MuzzleFlashCooler)
- {
- MuzzleFlash.transform.localRotation = Quaternion.AngleAxis(Random.value * 360 * 2000000, Vector3.forward);
- }
- }
- function Automatic()
- {
- if(Input.GetButton("Fire1") && isAuto)
- {
- if(CurAmmo > 0)
- {
- ShotTime += Time.deltaTime;
- if(ShotTime >= NextShot)
- {
- if( isReloading == false)
- {
- NextShot += ShootSpeed;
- ShootAnimation();
- ShootSound();
- MuzzleFlashCall();
- RayShoot();
- }
- }
- }
- }
- }
- function BurstFire()
- {
- }
- function SingleFire()
- {
- }
- function Reload()
- {
- isReloading = true;
- ReloadSound();
- ReloadAnimation();
- yield WaitForSeconds( ReloadTime);
- isReloading = false;
- CurAmmo += AmmoToLoad;
- AmmoLeft -= AmmoToLoad;
- AmmoToLoad = 0;
- }
- function CallManualReload()
- {
- if(Input.GetKeyDown(KeyCode.R) && CurAmmo > 0)
- {
- if(AmmoLeft > 0 && CurAmmo < AmmoPerClip)
- {
- if( isReloading == false)
- {
- Reload();
- }
- }
- }
- }
- function SilencerOnAndOff()
- {
- if(Input.GetButtonDown("Fire2"))
- {
- isSilenced = true;
- //Animation
- }
- if(Input.GetButtonDown("Fire2") && isSilenced == true)
- {
- //Animation
- isSilenced = false;
- }
- }
- function SilencerONAnimation()
- {
- Gun.animation.Play("SilencerOn");
- }
- function SilencerOFFAnimation()
- {
- Gun.animation.Play("SilencerOff");
- }
- function ShootAnimation()
- {
- Gun.animation.Play("Shoot");
- }
- function ReloadAnimation()
- {
- Gun.animation.Play("Reload");
- }
- function ShootSound()
- {
- audio.PlayOneShot(ShootAudio);
- }
- function ReloadSound()
- {
- audio.PlayOneShot(ReloadAudio);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement