How make a simply Skill System for IrrWizard

Post those lines of code you feel like sharing or find what you require for your project here; or simply use them as tutorials.
Post Reply
Gladius_Coldhead
Posts: 56
Joined: Thu Oct 12, 2006 5:15 am

How make a simply Skill System for IrrWizard

Post by Gladius_Coldhead »

Hi!
Lets go learn how make a good Skill Class for IrrWizard(or other framework);

First, Create two files and rename to GameSkill.cpp and GameSkill.h;


GameSkill.h:

Code: Select all

#if !defined(AFX_CGAMESKILL_H_INCLUDED_)
#define AFX_CGAMESKILL_H_INCLUDED_

#include "../core/GameManager.h"
#include <irrlicht.h>

using namespace irr;
using namespace core;
using namespace gui;
using namespace video;
using namespace scene;

class CGameManager;

const int SKILLTPYE_PASSIVE = 0; // skill type for passive skills
const int SKILLTPYE_COMBAT = 1; // skill type for combat skills
const int SKILLTPYE_ACTION = 2;  //skill type for action skills
//more skilltypes…

class CGameSkill
{
public:
    CGameSkill(int sid, char* sname, int stype, int value); //initial declaration
  virtual ~CGameSkill();  
  
  void SetSkillName(char* skillname); //set one name to skill
  void SetSkillID(int skillid); //set the ID
  void SetSkillType(int skilltype); //set the type, use here the Skill Type ;D
  void SetSkillValue(int skillvalue); //skill value
  
//get values
  char* GetSkillName();
  int GetSkillID();
  int GetSkillType();
  int GetSkillValue();
  
  
private:
  //skill atributes
   char* Skill_Name; 
   int Skill_ID; 
   int Skill_Type;
   int Skill_Value;
   CGameManager* pManager;
};
#endif
GameSkill.cpp:

Code: Select all

#include "GameSkill.h"  //duh u.u

CGameSkill::CGameSkill(int sid, char* sname, int stype, int value)
{
    SetSkillName(sname);
    SetSkillID(sid);
    SetSkillType(stype);     
    SetSkillValue(value);                                  
}

CGameSkill::~CGameSkill(void)
{
}

void CGameSkill::SetSkillName(char* skillname)
{
   Skill_Name = skillname;
}
void CGameSkill::SetSkillID(int skillid)
{
 Skill_ID = skillid;                          
}
void CGameSkill::SetSkillType(int skilltype)
{
 Skill_Type = skilltype;                          
}
void CGameSkill::SetSkillValue(int skillvalue)
{
 Skill_Value = skillvalue;                          
}

char* CGameSkill::GetSkillName()
{
    return Skill_Name;
}
int CGameSkill::GetSkillID()
{
    return Skill_ID;  
}
int CGameSkill::GetSkillType()
{
  return Skill_Type;
}  
int CGameSkill::GetSkillValue()
{
  return Skill_Value;
}  
well, this is the class of skill, you can add more atribues, more things.

Now we go create the Skill Manager.
Create more two files, and rename to GameSkillManager.h and GameSkillManager.cpp.

GameSkillManager.h:

Code: Select all

#if !defined(AFX_GAMESKILLMANAGER_H_INCLUDED_)
#define AFX_GAMESKILLMANAGER_H_INCLUDED_

#include "../core/GameManager.h"
#include "GameSkill.h"

class CGameManager;

class CGameSkillManager
{
public:
	CGameSkillManager(void);
	~CGameSkillManager(void);
	
    void InitSkills(); //init the skills values
    bool Init(CGameManager* pManager);
    
    void Rise_Skill();
    void Use_Skill(int skillid);
    //add here more things to manager the skills
	
private :
    CGameManager* pManager; 
};

#endif
GameSkillManager.cpp:

Code: Select all

#include "GameSkillManager.h"


CGameSkillManager::CGameSkillManager(void)
{
}

CGameSkillManager::~CGameSkillManager(void)
{
}


bool CGameSkillManager::Init(CGameManager* pManager)
{
  //something here @.@
 return true;    
}

void CGameSkillManager::InitSkills()
{
     CGameSkill* sk_opendoor = new CGameSkill(0, "Open Lock Doors", SKILLTPYE_ACTION, 10);
     CGameSkill* sk_diplomacy = new CGameSkill(1, "Diplomacy", SKILLTPYE_PASSIVE, 10);
     CGameSkill* sk_pistols = new CGameSkill(2, "Pistols", SKILLTPYE_COMBAT, 10);
     CGameSkill* sk_snipers = new CGameSkill(3, "Snipers", SKILLTPYE_COMBAT, 10);
     CGameSkill* sk_snipers_heavy = new CGameSkill(4, "Heavy Snipers", SKILLTPYE_COMBAT, 10);
     CGameSkill* sk_meeleweapons  = new CGameSkill(5, "Melee Weapons", SKILLTPYE_COMBAT, 10);
     CGameSkill* sk_region_lore = new CGameSkill(6, "Region Lore", SKILLTPYE_PASSIVE, 10);
     CGameSkill* sk_games = new CGameSkill(7, "Gambler", SKILLTPYE_ACTION, 10);
     CGameSkill* sk_intimidation = new CGameSkill(8, "Intimidation", SKILLTPYE_PASSIVE, 10);
     CGameSkill* sk_mount = new CGameSkill(9, "Mount", SKILLTPYE_ACTION, 10);
     //other skills
}

well, now use your brain and finish the system xD

Enjoy
Good Luck xD
lug
Posts: 79
Joined: Tue May 02, 2006 5:15 am
Contact:

Re: How make a simply Skill System for IrrWizard

Post by lug »

Gladius_Coldhead wrote:
//get values
char* GetSkillName();
int GetSkillID();
int GetSkillType();
int GetSkillValue();
That's pretty cool. I would recommend making the above get values inline since they're really small in the .h file:

inline int GetSkillValue()
{
return skillvalue;
};

I'm currently playing morrowind on xbox 1 and this post caught my eyes. :)
Post Reply