- Home /
Script compile errors with following hack & slash tutorial
I have following the Berzerg hack & slash tutorials, (think they're very informative for beginners like me), but I've come across errors that I can't seem to fix. I've been through the videos a couple of times but can't find the problem, can anyone help? Here's my Base Character class script:
using UnityEngine; using System.Collections; using System; //added to access the enum class
public class BaseCharacter : MonoBehaviour { private string _name; private int _level; private uint _freeExp;
private Attribute[] _primaryAttribute; private Vital[] _vital; private Skill[] _skill;
public void Awake() { _name = string.Empty; _level = 0; _freeExp = 0;
_primaryAttribute = new Attribute[Enum.GetValues(typeof(AttributeName)).Length];
_vital = new Vital[Enum.GetValues(typeof(VitalName)).Length];
_skill = new Skill[Enum.GetValues(typeof(SkillName)).Length];
SetupPrimaryAttributes();
SetupVitals();
SetupSkills();
}
public string Name { get{ return _name; } set{ _name = value; } }
public int Level { get{ return _level; } set{ _level = value; } }
public uint FreeExp { get{ return _freeExp; } set{ _freeExp = value; } }
public void AddExp(uint exp) { _freeExp += exp;
CalculateLevel();
} //take avg of all of the players skills and assign that on the player level public void CalculateLevel() {
}
private void SetupPrimaryAttributes() { for(int cnt = 0; cnt < _primaryAttribute.Length; cnt++) { _primaryAttribute[cnt] = new Attribute(); } }
private void SetupVitals() { for(int cnt = 0; cnt < _vital.Length; cnt++) { _vital[cnt] = new Vital(); }
}
private void SetupSkills() {
for(int cnt = 0; cnt < _skill.Length; cnt++) {
_skill[cnt] = new Skill();
}
}
public Attribute GetPrimaryAttribute(int index) { return _primaryAttribute[index]; }
public Vital GetVital(int index) { return _vital[index]; }
public Skill GetSkill(int index) { return _skill[index]; }
private void SetupVitalModifiers() { //health GetVital((int)VitalName.Health).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .5f));
//energy
GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), 1));
//mana
GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 1));
}
private void SetupSkillModifiers() { //melee offence GetSkill((int)SkillName.Melee_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might), .33f)); GetSkill((int)SkillName.Melee_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f)); //melee defence GetSkill((int)SkillName.Melee_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f)); GetSkill((int)SkillName.Melee_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .33f)); //magic offence GetSkill((int)SkillName.Magic_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f)); GetSkill((int)SkillName.Magic_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f)); //magic defence GetSkill((int)SkillName.Magic_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f)); GetSkill((int)SkillName.Magic_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f)); //ranged offence GetSkill((int)SkillName.Ranged_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f)); GetSkill((int)SkillName.Ranged_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f)); //ranged defence GetSkill((int)SkillName.Ranged_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f)); GetSkill((int)SkillName.Ranged_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f)); }
public void StatUpdate() { for(int cnt = 0; cnt < _vital.Length; cnt++) _vital[cnt].Update();
for(int cnt = 0; cnt <_skill.Length; cnt++)
_skill[cnt].Update();
}
}
errors:
cs0103 'SkillName' does not exist in the current context. cs1502 The best overloaded method match for 'BaseCharacter.GetSkill(int)' has some invalid arguments. cs1503 Argument '#1' cannot convert 'object' expression to type 'int'.
Answer by 5seaton4 · May 09, 2011 at 01:49 AM
my guess is you spelt SkillName wrong go back to your other script and take a look.
Answer by MacMac098 · Jul 02, 2011 at 10:13 PM
using UnityEngine; using System.Collections; using System;
public class BaseCharacter : MonoBehaviour { private string _name; private int _level; private uint _freeExp;
private Attribute[] _primaryAttibute;
private Vital[] _vital;
private Skill[] _skill;
public void Awake(){
_name = string.Empty;
_level = 0;
_freeExp = 0;
_primaryAttibute = new Attribute[Enum.GetValues(typeof(AttributeName)).Length];
_vital = new Vital[Enum.GetValues(typeof(VitalName)).Length];
_skill = new Skill[Enum.GetValues(typeof(SkillName)).Length];
SetupPrimaryAttributes();
SetupVitals();
SetupSkills();
}
public string Name {
get{ return _name; }
set{ _name = value;}
}
public int Level {
get{ return _level; }
set{ _level = value;}
}
public uint FreeExp {
get{ return _freeExp; }
set{ _freeExp = value;}
}
public void AddExp(uint exp) {
_freeExp += exp;
CalculateLevel();
}
public void CalculateLevel(){
}
private void SetupPrimaryAttributes() {
for(int cnt = 0; cnt <_primaryAttibute.Length; cnt++){
_primaryAttibute[cnt] = new Attribute();
_primaryAttibute[cnt].Name = ((AttributeName)cnt).ToString();
}
}
private void SetupVitals() {
for(int cnt = 0; cnt <_vital.Length; cnt++)
_vital[cnt] = new Vital();
SetVitalModifiers();
}
private void SetupSkills() {
for(int cnt = 0; cnt <_skill.Length; cnt++)
_skill[cnt] = new Skill();
SetupSkillModifiers();
}
public Attribute GetPrimaryAttribute(int index) {
return _primaryAttibute[index];
}
public Vital GetVital(int index) {
return _vital[index];
}
public Skill GetSkill(int index) {
return _skill[index];
}
private void SetVitalModifiers(){
//health
GetVital((int)VitalName.Health).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .5f));
//energy
GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), 1));
//mana
GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 1));
}
private void SetupSkillModifiers(){
GetSkill((int)SkillName.Melee_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might), .33f));
GetSkill((int)SkillName.Melee_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));
GetSkill((int)SkillName.Melee_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
GetSkill((int)SkillName.Melee_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .33f));
GetSkill((int)SkillName.Magic_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
GetSkill((int)SkillName.Magic_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));
GetSkill((int)SkillName.Magic_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .33f));
GetSkill((int)SkillName.Magic_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));
GetSkill((int)SkillName.Ranged_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
GetSkill((int)SkillName.Ranged_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
GetSkill((int)SkillName.Ranged_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
GetSkill((int)SkillName.Ranged_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));
}
public void StatUpdate() {
for(int cnt = 0; cnt < _vital.Length; cnt++)
_vital[cnt].Update();
for(int cnt =0;cnt < _skill.Length; cnt++)
_skill[cnt].Update();
}
}