Gun locator script isnt working

it says, that this script already has a definition for HitWeapons what am i doing wrong?
please give the answer in C#

 public GameObject SelectedWeapon;
 public GameObject LastSelectedWeapon;
 public GameObject GunHolder;
 
 public int PickupDistance = 6;
 public int O = 0;
 
 private bool HitWeapons = false;
 
 private Ray ray;
 private RaycastHit hit;

 // Use this for initialization
 void Start () 
 {
 GunHolder = GameObject.FindWithTag("GunHolder");
 }
 
 // Update is called once per frame
 void Update () 
 {
 ray = transform.camera.ScreenPointToRay (new Vector3(Screen.width / 2, Screen.height / 2, 0));
 HitWeapons = true;
 if(Physics.Raycast(ray, hit, PickupDistance))
 {
 if(hit.collider.gameObject.tag == "PickUp")
 {
 HitWeapons = false;
 SelectedWeapon = hit.collider.gameObject;
 isEquipped : boolean = CheckWeapons();
 if(lastSelectedWeapon != selectedWeapon)
 {
 if(lastSelectedWeapon != null) 
 {
 lastSelectedWeapon.GetComponent("SelectableWeapon").unSelect();
 lastSelectedWeapon = selectedWeapon;
 selectedWeapon.GetComponent("SelectableWeapon").select(isEquipped);
 }
 }
 }
 }
 
 if(!HitWeapons)
 {
 if(lastSelectedWeapon != null)
 {
 lastSelectedWeapon.GetComponent("SelectableWeapon").unSelect();
 selectedWeapon = null;
 lastSelectedWeapon = null;
 }
 }
 
 if(selectedWeapon && Input.GetButtonDown("Pickup"))
 {
 if(gunscript.takingOut)
 {
 return;
 for(i = O ; i < playerWeapons.weapons.length; i++)
 {
 if(playerWeapons.weapons *== selectedWeapon.GetComponent(SelectableWeapon).weapon)*

{
return;
}

playerWeapons.weapons[playerWeapons.selectedWeapon].gameObject.BroadcastMessage(“deselectWeapon”);
playerWeapons.weapons[playerWeapons.selectedWeapon] = selectedWeapon.GetComponent(SelectableWeapon).weapon;
playerWeapons.SelectWeapon(playerWeapons.selectedWeapon);
selectedWeapon.GetComponent(“SelectableWeapon”).select(true);
}
}
}
}

void CheckWeapons ()
{
for (i = O; i < playerWeapons.weapons.length; i++)
{
if (playerWeapons.weapons == selectedWeapon.GetComponent(“SelectableWeapon”).weapon)
{
return true;
}
}

return false;

}

void HitWeapons ()
{
if(Physics.Raycast(ray, hit, PickupDistance))
{
if(hit.collider.gameObject.tag == “Weapons”)
{
RayHitWeapon = true;
}
}

if(Physics.Raycast(ray, hit, PickupDistance))
{
if(!hit.collider.gameObject.tag == “Weapons”)
{
RayHitWeapon = false;
}
}
}

I would say the problem is you have a boolean called HitWeapons, and then try to declare a method called HitWeapons as well

just give the function a unique name

EDIT:

public GameObject SelectedWeapon;
 public GameObject LastSelectedWeapon;
 public GameObject GunHolder;

 public int PickupDistance = 6;
 public int O = 0;

 private bool hitWeapons = false;

 private Ray ray;
 private RaycastHit hit;

 // Use this for initialization
 void Start () 
 {
 GunHolder = GameObject.FindWithTag("GunHolder");
 }

 // Update is called once per frame
 void Update () 
 {
 ray = transform.camera.ScreenPointToRay (new Vector3(Screen.width / 2, Screen.height / 2, 0));
 hitWeapons = true;
 if(Physics.Raycast(ray, hit, PickupDistance))
 {
 if(hit.collider.gameObject.tag == "PickUp")
 {
 hitWeapons = false;
 SelectedWeapon = hit.collider.gameObject;
 isEquipped : boolean = CheckWeapons();
 if(lastSelectedWeapon != selectedWeapon)
 {
 if(lastSelectedWeapon != null) 
 {
 lastSelectedWeapon.GetComponent("SelectableWeapon").unSelect();
 lastSelectedWeapon = selectedWeapon;
 selectedWeapon.GetComponent("SelectableWeapon").select(isEquipped);
 }
 }
 }
 }

 if(!HitWeapons)
 {
 if(lastSelectedWeapon != null)
 {
 lastSelectedWeapon.GetComponent("SelectableWeapon").unSelect();
 selectedWeapon = null;
 lastSelectedWeapon = null;
 }
 }

 if(selectedWeapon && Input.GetButtonDown("Pickup"))
 {
 if(gunscript.takingOut)
 {
 return;
 for(i = O ; i < playerWeapons.weapons.length; i++)
 {
 if(playerWeapons.weapons *== selectedWeapon.GetComponent(SelectableWeapon).weapon)*

{
return;
}

playerWeapons.weapons[playerWeapons.selectedWeapon].gameObject.BroadcastMessage(“deselectWeapon”);
playerWeapons.weapons[playerWeapons.selectedWeapon] = selectedWeapon.GetComponent(SelectableWeapon).weapon;
playerWeapons.SelectWeapon(playerWeapons.selectedWeapon);
selectedWeapon.GetComponent(SelectableWeapon).select(true); //(removed quotes)
}
}
}
}

void CheckWeapons ()
{
for (i = O; i < playerWeapons.weapons.length; i++)
{
if (playerWeapons.weapons == selectedWeapon.GetComponent(SelectableWeapon).weapon)
return true;
}
}

return false;

}

void HitWeapons ()
{
if(Physics.Raycast(ray, hit, PickupDistance))
{
if(hit.collider.gameObject.tag == “Weapons”)
{
RayHitWeapon = true;
}
}

if(Physics.Raycast(ray, hit, PickupDistance))
{
if(!hit.collider.gameObject.tag == “Weapons”)
{
RayHitWeapon = false;
}
}
}