- Home /
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.
Answer by Adamcbrz · Mar 03, 2012 at 05:25 AM
The answer is right in the errors. You spelled the word Length incorrectly.
Hope that helps.
Answer by IvarX · Mar 03, 2012 at 11:08 AM
Oh wow.. I feel really stupid about that. Thanks a lot! :)
Answer by CritekGaming · Dec 01, 2012 at 06:29 AM
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)
Please don't post new questions in the answer section of another question. One only people who have commented on the answer will see your question which means it is less likely to get answered. Two you can't give credit to people for answering you question. Three it makes it hard for others to find the answers they need if questions are baried in other questions. (stepping down off my soap box).
But to address your issue no it doesn't matter which coding tool you use. Those are glorified text editors and while helpful are doing little to tie in with unity. Unity compiles the code so any text editor will work. So keep going with what you are comfortable.
The error you are getting is saying that the namespaces you are including with the "using" keyword does not contain List. $$anonymous$$ake sure you add "using System.Collections.Generic". I think that is the right namespace.
Your answer
![](https://koobas.hobune.stream/wayback/20220613064709im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Burgzergarcade Why am i getting an error after re-importing? 1 Answer
Error CS1503, Error CS1502 1 Answer
Camera's wont change 2 Answers
BCE0044: Expecting : Found = Error! 2 Answers
insert a semicolon at the end?? 1 Answer