SetActiveRecursively being a memeber to GameObject, however
if you are using a unity version 4.x than GameObject.active and GameObject.SetActiveRecursively() have been removed.
You can use GameObject.activeSelf, GameObject.activeInHierarchy and GameObject.SetActive().
In order to activate the children, you have to iterate.
like this:
function SetActiveRecursively (go : GameObject, active : boolean)
{
go.SetActive (active);
for (var t : Transform in go.transform)
{
SetActiveRecursively (t.gameObject, active);
}
}
As the errors says. SetActiveRecursively is not part of Component so you can not use it there. I think what you want is to either switch the weapon references to be of type GameObject (and use .SetActive) or to the class the weapons actually are (and use .enabled).