Quantcast
Channel: Questions in topic: "error message"
Viewing all articles
Browse latest Browse all 2891

My burst fire script keeps giving me errors

$
0
0
Hi, I'm having some trouble with my burst fire script. It keeps giving me the errors (152,18): error CS1525: Unexpected symbol `(', expecting `,', `;', or `=' (163,1): error CS1525: Unexpected symbol `}' (152,6): error CS1547: Keyword `void' cannot be used in this context Here is the code using UnityEngine; using System.Collections; public class GunMagnum : MonoBehaviour { private const int V = 3; //Decal public GameObject decalHit; public float projectileDestroyTimer = 5f; //Ámmo public int maxAmmoTotal = 30; // Max ammo to carry Example: 30 public int maxAmmoInClipTotal = 5; // Max ammo total to be able to reload Example: 5 public int curAmmo = 30; // Current reloadable ammo Example: 30 public int ammoInClip = 8; // Current ammo in clip Example: 5 private bool isReloading = false; //Animation public string fireAnimation; //Shoot animation public string clipEmptyAnim; //Clip empty animation public string reloadAnimation; //Reload animation public float reloadTime = 1f; // How long it takes to reload public Animator reloadAnimations; public Animator ClipEmptyAnimations; //GameObjects public GameObject weapon; //Needed for aiming public ParticleSystem muzzleflash; public Animator FireAnimation; public AudioSource GunSounds; //Raycast private RaycastHit rayHit; public float shootDistance = 200f; //Recoil private float defaultRecoil = 50f; public float recoil = 50f; public float recoilAiming = 10f; //Aim public Vector3 aimPos = Vector3.zero; private Vector3 defaultPos = Vector3.zero; public float smoothTime; //How long it takes to get to the aiming position private Vector3 dampVelocity; private bool aiming = false; //Audio private AudioSource audioSource; //Audio source public AudioClip fireSound; //Sound when shooting public AudioSource clipEmptySound; //Sound when clip is empty public AudioSource reloadSound; //Sound when reloading //Weapon public float hitDamage = 12; public float LastTimeShot; public float TimeBetweenShots = 1; public float fireRate = 20f; private const float TIME_BETWEEN_SHOTS = .5f; private const int SHOTS_PER_BURST = 3; public int shotDamage = 10; // Change this variable to deal a different ammount of damage // Routine responsible for firing a burst private Coroutine shootRoutine = null; private float nextTimeToFire = 0f; //Only for testing int removedAmmoRecently; //Only for testing private IEnumerator BurstFire() { int bulletsShot = 0; while (bulletsShot < SHOTS_PER_BURST) { Shoot(); bulletsShot++; yield return new WaitForSeconds(TIME_BETWEEN_SHOTS); } shootRoutine = null; } void Start() { defaultPos = weapon.transform.localPosition; defaultRecoil = recoil; audioSource = GetComponent(); } void Update() { AimDownSight(); if (Input.GetButton("Fire1") && Time.time >=nextTimeToFire) { nextTimeToFire = Time.time + 1f / fireRate; Shoot(); } if(Input.GetButtonDown("Fire2") && !isReloading) { aiming = !aiming; } if (Input.GetKeyDown(KeyCode.R) && !isReloading) { StartCoroutine("Reload"); } } private void Shoot() { if(ammoInClip != 0 && !isReloading) { PlaySound(fireSound); GunSounds.Play(); muzzleflash.Play(); PlayAnimation(fireAnimation); GetComponent().Play("FireAnimation"); ammoInClip--; Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width/2f + Random.Range(-recoil, recoil), Screen.height/2f + Random.Range(-recoil, recoil), 0f)); if (Physics.Raycast(ray, out rayHit, shootDistance)) { GameObject decalClone = (GameObject)Instantiate(decalHit, rayHit.point, Quaternion.LookRotation(rayHit.normal, Vector3.forward)); Destroy(decalClone, projectileDestroyTimer); } void DoDamage(RaycastHit hit) { if(hit.transform.tag == "Enemy") { if(hit.transform.GetComponent()) { hit.transform.GetComponent().ApplyDamage(shotDamage); // Apply damage equal to the damage variable to the enemy } Debug.Log(hit.transform.name + " has been hit"); } } } IEnumerator Reload() { //If ammoInClip example 5 is equal or greater than 0 and ammoInClip(5) is lower than maxAmmoInClipTotal(The max amount of ammo that can be in a clip) and curAmmo(how much ammo you have like 5/30) is greater than 0 if (ammoInClip >= 0 && ammoInClip < maxAmmoInClipTotal && curAmmo > 0) { isReloading = true; reloadSound.Play(); GetComponent().Play("reloadAnimations"); yield return new WaitForSeconds(reloadTime); removedAmmoRecently = 0; //You can remove this line, it's only for testing. for (int i = 0; i < maxAmmoInClipTotal; i++) { if (ammoInClip == maxAmmoInClipTotal || curAmmo <= 0) { break; } else { ammoInClip++; curAmmo--; removedAmmoRecently++; //You can remove this line, it's only for testing. | To check how much ammo has been removed } } isReloading = false; Debug.Log("Removed " + removedAmmoRecently + " " + "ammo from pocket ammo. Ammo: " + ammoInClip + "/" + curAmmo); //You can remove this line, it's only for testing. | Prints out how much ammo that has been removed, ammo you have in clip, and how much ammo that is left } else { yield break; } } void PlayAnimation(string anim) { if (anim != "") { weapon.GetComponent().Play(anim); } } void PlaySound(AudioClip clip) { if (clip != null) { audioSource.PlayOneShot(clip); } } void AimDownSight() { if(aiming && weapon.transform.localPosition.normalized != aimPos.normalized) { weapon.transform.localPosition = Vector3.SmoothDamp (weapon.transform.localPosition, aimPos, ref dampVelocity, smoothTime); Debug.Log ("Aiming"); recoil = recoilAiming; } if(!aiming && weapon.transform.localPosition.normalized != defaultPos.normalized) { weapon.transform.localPosition = Vector3.SmoothDamp (weapon.transform.localPosition, defaultPos, ref dampVelocity, smoothTime); Debug.Log ("UnAiming"); recoil = defaultRecoil; } } void OnGUI() { GUILayout.Label("Ammo: " + ammoInClip + "/" + curAmmo); } }

Viewing all articles
Browse latest Browse all 2891

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>