Sounds like something you don't necessarily need an array for..
are the characters separate objects or are they separate animations inside one object?
assuming they are separate objects.. you can put them all in a family like 'Character'
and give this family a variable called 'name', and enter the name for each, warrior, knight etc
have a global variable ChosenCharacter
on Character clicked > set ChosenCharacter to Character.Name
and then upon loading the level:
Create Collision box at spawnpoint
if ChosenCharacter = Warrior --> Create Warrior..
if ChosenCharacter = Knight --> Create Knight..
if ChosenCharacter = Thief --> Create Thief..
if ChosenCharacter = etc etc --> Create etc etc..
all these repeated events is okay considering you don't have *too* many classes, but if you decide to add a lot more, there are two things you could try to condense this into just one event..
either have all the characters contained in one animation (it's why i asked earlier) and instead just
--> Create Character
--> set animation to ChosenCharacter
OR.. you could check out the 'nickname' plugin by searching the forums here. It allows you to assign nicknames to objects and create an object by it's nickname. (if your characters have numerous animations, I would recommend using this instead)
anyway, that's all optional
after you've created the Collision and Character, there are ways you can link them, but if you want to keep it simple for now you can just use the 'pin' behaviour