BurgZergArcade RPG - BaseCharacter script errors.

Dear readers,

I’ve been following a tutorial serie from BurgZergArcade about how to make a RPG with Unity for a couple of days now and this is the first time that I’m really encountering a problem with my scripts. Right now the tutorial is telling me how to make scripts for character statistics and how to make a base character. However, at the completion of my script I’ll still get 6 errors of the same kind when I try to save my script. Every of them is related to my script named ‘BaseCharacter’ made with C#:

Three errors of this kind:

Type System.Array' does not contain a definition for Lenght’ and no extension method Lenght' of type System.Array’ could be found (are you missing a using directive or an assembly reference?)

for lines 19,20 and 21.

And also these three errors:

Type Attribute[]' does not contain a definition for Lenght’ and no extension method Lenght' of type Attribute[]’ could be found (are you missing a using directive or an assembly reference?)

(For line 56)

Type Vital[]' does not contain a definition for Lenght’ and no extension method Lenght' of type Vital[]’ could be found (are you missing a using directive or an assembly reference?)

(For line 62)

Type Skill[]' does not contain a definition for Lenght’ and no extension method Lenght' of type Skill[]’ could be found (are you missing a using directive or an assembly reference?)

(For line 68)

I am completely stuck with these errors and I have no clue how to fix it. I was hoping that anyone of you could possibly help me fix these errors.

Here are my scripts (All of them made with C#):

BaseCharacter script:

using UnityEngine;

using System.Collections;

using System; //added to acces 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)).Lenght];
	_vital = new Vital[Enum.GetValues(typeof(VitalName)).Lenght];
	_skill = new Skill[Enum.GetValues(typeof(SkillName)).Lenght];
	
	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 as the player level
public void CalculateLevel() {
}


private void SetupPrimaryAttributes() {
	for(int cnt = 0; cnt < _primaryAttribute.Lenght; cnt++) {
		_primaryAttribute[cnt] = new Attribute();
	}
}
	
private void SetupVitals() {
	for(int cnt = 0; cnt < _vital.Lenght; cnt++) {
		_vital[cnt] = new Vital();
	}
}

private void SetupSkills() {
	for(int cnt = 0; cnt < _skill.Lenght; 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();
}

}

Related scripts:

ModifiedStat script:

using System.Collections.Generic;

public class ModifiedStat : BaseStat {

private List _mods; //A list of Attributes that modify this stat

private int _modValue; //The amount added to the baseValue from the modifiers

public ModifiedStat() {
	_mods = new List<ModifyingAttribute>();
	_modValue = 0;
}

public void AddModifier( ModifyingAttribute mod) {
	_mods.Add(mod);
}

private void CalculateModValue() {
	_modValue = 0;
	
	if(_mods.Count > 0)
		foreach(ModifyingAttribute att in _mods)
			_modValue += (int)(att.attribute.AdjustedBaseValue * att.ratio);
}

public new int AdjustedBaseValue {
		get{ return BaseValue + BuffValue + _modValue; }
}

public void Update() {
	CalculateModValue();
}

}

public struct ModifyingAttribute {
public Attribute attribute;
public float ratio;

public ModifyingAttribute(Attribute att, float rat) {
	attribute = att;
	ratio = rat;
}

}

BaseStat script:

public class BaseStat {
private int _baseValue; //the base value of this stat
private int _buffValue; //the amount of the buff to this stat
private int _expToLevel; //the total amount of exp needed to raise this skill
private float _levelModifier; //the modifier applied to the exp needed to raise the skill

public BaseStat() {
	_baseValue = 0;
	_buffValue = 0;
	_levelModifier = 1.1f;
	_expToLevel = 100;
}

#region Basic Setters and Getters
//Basic Setters and Getters
public int BaseValue {
get{ return _baseValue; }
set{ _baseValue = value; }
}

public int BuffValue {
	get{ return _buffValue; }
	set{ _buffValue = value; }
}


public int ExpToLevel {
	get{ return _expToLevel; }
	set{ _expToLevel = value; }
}


public float LevelModifier {
	get{ return _levelModifier; }
	set{ _levelModifier = value; }
}

#endregion

private int CalculateExpToLevel() {
	return (int)(_expToLevel * _levelModifier);
}

public void LevelUp() {
	_expToLevel = CalculateExpToLevel();
	_baseValue++;
}

public int AdjustedBaseValue {
	get{ return _baseValue + _buffValue; }
}

}

Attributes Script:

public class Attribute : BaseStat {

public Attribute() {
	ExpToLevel = 50;
	LevelModifier = 1.05f;
}

}

public enum AttributeName {
Might,
Constitution,
Nimbleness,
Speed,
Concentration,
Willpower,
Charisma
}

Vital Script:

public class Vital : ModifiedStat {
private int _curValue;

public Vital() {
	_curValue = 0;
	ExpToLevel = 50;
	LevelModifier = 1.1f;
}

public int CurValue {
	get{
		if(_curValue > AdjustedBaseValue)
			_curValue = AdjustedBaseValue;
		
		return _curValue;
	}
	set{ _curValue = value; }
}

}

public enum VitalName {
Health,
Energy,
Mana
}

Skill Script:

public class Skill : ModifiedStat {
private bool _known;

public Skill() {
	_known = false;
	ExpToLevel = 25;
	LevelModifier = 1.1f;
}

public bool Known {
	get{ return _known; }
	set{ _known = value; }
}

}

public enum SkillName {
Melee_Offence,
Melee_Defence,
Ranged_Offence,
Ranged_Defence,
Magic_Offence,
Magic_Defence
}

Excuse me for the wall of text. Any help would be very appreciated.

The answer is right in the errors. You spelled the word Length incorrectly.

Hope that helps.

Oh wow… I feel really stupid about that. Thanks a lot! :slight_smile:

does it matter whether i use unitron or mlnodevelop because when i made the ModifiedStat it came up with and error:

Assets/Ascripts/!Character/Charcter classes/ModifiedStat.cs(8,9): error CS0246: The type or namespace name `List’ could not be found. Are you missing a using directive or an assembly reference?

(i use unitron)