Advertisement
Guest User

Kevin

a guest
Aug 15th, 2012
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Gerenic Variables//
  2. var Force : float = 1000;
  3. var Range : float = 1000;
  4. var Damage : int = 10;
  5. var CurAmmo : int;
  6. var AmmoPerClip : int;
  7. var AmmoLeft : int;
  8. var AmmoToLoad : int;
  9. var MaxAmmo : int;
  10. var ReloadTime : float = 3.3;
  11. var ShootTimer : float = 0;
  12. var ShootCooler : float = 0.5;
  13. var ShootSpeed : float = 0.15;
  14. var ShotTime : float = 0;
  15. var NextShot : float;
  16. var KeyCooler : float = 0.5;
  17. var KeyTimer : float = 0;
  18. var Gun : GameObject;
  19.  
  20. //Boolean Variables//
  21. var isAuto : boolean = false;
  22. var isBurst : boolean = false;
  23. var isSingle : boolean = false;
  24. var isSilenced : boolean = false;
  25. var isReloading : boolean = false;
  26.  
  27. //MuzzleFlash System//
  28. var MuzzleFlash : ParticleEmitter;
  29. var MuzzleFlashTimer : float = 0;
  30. var MuzzleFlashCooler : float = 0.5;
  31. var Light1 : GameObject;
  32. var Light2 : GameObject;
  33. var Light3 : GameObject;
  34.  
  35. //Decal and Particle System//
  36. var DefaultHole : GameObject;
  37. var MetalHole : GameObject;
  38. var WoodHole : GameObject;
  39. var BrickHole : GameObject;
  40. var DirtHole : GameObject;
  41. var MudHole : GameObject;
  42. var DefaultSpark : GameObject;
  43. var MetalSpark : GameObject;
  44. var WoodSpark : GameObject;
  45. var BrickSpark : GameObject;
  46. var DirtSpark : GameObject;
  47. var MudSpark : GameObject;
  48. var MaxDist : float = 1000000000;
  49. var FloatInFrontOfWall : float = 0.00001;
  50.  
  51. //Audio System//
  52. var ShootAudio : AudioClip;
  53. var ReloadAudio : AudioClip;
  54. var SilencerOn : AudioClip;
  55. var SilencerOff : AudioClip;
  56.  
  57. function Start()
  58. {
  59.     CurAmmo = AmmoPerClip;
  60.     AmmoLeft = MaxAmmo;
  61.     NextShot = ShootSpeed;
  62.     MuzzleFlash.emit = false;
  63.     DefaultPos = transform.localPosition;
  64. }
  65.  
  66. function Update()
  67. {
  68.     General();
  69.     Automatic();
  70.     BurstFire();
  71.     SingleFire();
  72.     CallManualReload();
  73. }
  74.  
  75. function General()
  76. {
  77.     if( KeyTimer > 0)
  78.     {
  79.         KeyTimer -= Time.deltaTime;
  80.     }
  81.     if(KeyTimer < 0)
  82.     {
  83.         KeyTimer = 0;
  84.     }
  85.     if( MuzzleFlashTimer > 0)
  86.     {
  87.         MuzzleFlashTimer -= Time.deltaTime;
  88.         MuzzleFlashCall();
  89.     }
  90.     if(MuzzleFlashTimer < 0)
  91.     {
  92.         MuzzleFlashTimer = 0;
  93.     }
  94.     if( ShootTimer > 0)
  95.     {
  96.         ShootTimer -= Time.deltaTime;
  97.     }
  98.     if(ShootTimer < 0)
  99.     {
  100.         ShootTimer = 0;
  101.     }
  102. }
  103.  
  104. function RayShoot()
  105. {
  106.     ShootAnimation();
  107.     var Hit : RaycastHit;
  108.     var Direction : Vector3 = transform.TransformDirection(Vector3.forward);
  109.     Debug.DrawRay(transform.position, Direction * Range, Color.blue);
  110.     if(Physics.Raycast(transform.position, transform.forward, Hit, MaxDist))
  111.     {
  112.         if(Hit.transform.tag == "Default")
  113.         {
  114.             Instantiate(DefaultHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
  115.         }
  116.         else if(Hit.transform.tag == "Metal")
  117.         {
  118.             Instantiate(MetalHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
  119.         }
  120.         else if(Hit.transform.tag == "Wood")
  121.         {
  122.             Instantiate(WoodHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
  123.         }
  124.         else if(Hit.transform.tag == "Brick")
  125.         {
  126.             Instantiate(BrickHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
  127.         }
  128.         else if(Hit.transform.tag == "Dirt")
  129.         {
  130.             Instantiate(DirtHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
  131.         }
  132.         else if(Hit.transform.tag == "Mud")
  133.         {
  134.             Instantiate(MudHole, Hit.point + (Hit.normal * FloatInFrontOfWall), Quaternion.LookRotation(Hit.normal));
  135.         }
  136.     }
  137.     CurAmmo--;
  138.     AmmoToLoad++;
  139.     if(CurAmmo < 0)
  140.     {
  141.         CurAmmo = 0;
  142.     }
  143.     if(CurAmmo == 0)
  144.     {
  145.         Reload();
  146.     }
  147. }
  148.  
  149. function MuzzleFlashCall()
  150. {
  151.     if(MuzzleFlashTimer > 0)
  152.     {
  153.         MuzzleFlash.emit = false;
  154.         Light1.active = false;
  155.         Light2.active = false;
  156.         Light3.active = false;
  157.     }
  158.     if(MuzzleFlashTimer == MuzzleFlashCooler)
  159.     {
  160.         MuzzleFlash.transform.localRotation = Quaternion.AngleAxis(Random.value * 360 * 2000000, Vector3.forward);
  161.     }
  162. }
  163.  
  164. function Automatic()
  165. {
  166.     if(Input.GetButton("Fire1") && isAuto)
  167.     {
  168.         if(CurAmmo > 0)
  169.         {
  170.             ShotTime += Time.deltaTime;
  171.             if(ShotTime >= NextShot)
  172.             {
  173.                 if( isReloading == false)
  174.                 {
  175.                     NextShot += ShootSpeed;
  176.                     ShootAnimation();
  177.                     ShootSound();
  178.                     MuzzleFlashCall();
  179.                     RayShoot();
  180.                 }
  181.             }
  182.         }
  183.     }
  184. }
  185.  
  186. function BurstFire()
  187. {
  188. }
  189.  
  190. function SingleFire()
  191. {
  192. }
  193.  
  194. function Reload()
  195. {
  196.     isReloading = true;
  197.     ReloadSound();
  198.     ReloadAnimation();
  199.     yield WaitForSeconds( ReloadTime);
  200.     isReloading = false;
  201.     CurAmmo += AmmoToLoad;
  202.     AmmoLeft -= AmmoToLoad;
  203.     AmmoToLoad = 0;
  204. }
  205.  
  206. function CallManualReload()
  207. {
  208.     if(Input.GetKeyDown(KeyCode.R) && CurAmmo > 0)
  209.     {
  210.         if(AmmoLeft > 0 && CurAmmo < AmmoPerClip)
  211.         {
  212.             if( isReloading == false)
  213.             {
  214.                 Reload();
  215.             }
  216.         }
  217.     }
  218. }
  219.  
  220. function SilencerOnAndOff()
  221. {
  222.     if(Input.GetButtonDown("Fire2"))
  223.     {
  224.         isSilenced = true;
  225.         //Animation
  226.     }
  227.     if(Input.GetButtonDown("Fire2") && isSilenced == true)
  228.     {
  229.         //Animation
  230.         isSilenced = false;
  231.     }
  232. }
  233.  
  234. function SilencerONAnimation()
  235. {
  236.     Gun.animation.Play("SilencerOn");
  237. }
  238.  
  239. function SilencerOFFAnimation()
  240. {
  241.     Gun.animation.Play("SilencerOff");
  242. }
  243.  
  244. function ShootAnimation()
  245. {
  246.     Gun.animation.Play("Shoot");
  247. }
  248.  
  249. function ReloadAnimation()
  250. {
  251.     Gun.animation.Play("Reload");
  252. }
  253.  
  254. function ShootSound()
  255. {
  256.     audio.PlayOneShot(ShootAudio);
  257. }
  258.  
  259. function ReloadSound()
  260. {
  261.     audio.PlayOneShot(ReloadAudio);
  262. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement