⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rpgsetting.cc

📁 五行MMORPG引擎系统V1.0
💻 CC
字号:
//RPGSetting.cc
/*/////////////////////////////////////////////////////////////////
RPG游戏全局配置表
	升级经验映射表
	

   李亦
	liease@163.com 4040719
	2006-7-13
/*/////////////////////////////////////////////////////////////////

#include "platform/platform.h"
#include "rpg/RPGSetting.h"
#include "rpg/RPGDefine.h"
#include "console/consoleTypes.h"
#include "console/macroManager.h"
#include "rpg/gobjects/GGoodsArray.h"
#include "rpg/gobjects/GPlayer.h"

#ifdef TGE_RPGCLIENT
#include "gui/containers/guiCellArrayCtrl.h"
#endif

namespace RPG
{

/////////////////////////////////////////////////////////////////
#define	SETTING_MONEYUNIT			"元"
#define	SETTING_GAMENAME			"学习园地"
#define	SETTING_MissionCleanup	"MissionCleanup"



/////////////////////////////////////////////////////////////////
RPGSetting	*g_pRPGSetting = NULL;

IMPLEMENT_CONOBJECT(RPGSetting);

/////////////////////////////////////////////////////////////////
// class RPGSetting 构造函数 /析构函数
RPGSetting::RPGSetting()
{
	m_pTSFileFormat = StringTable->insert(CHAR_TSFILEFORMAT);

	INIT_RPGSETTING_MEMBER(MoneyUnit, s, SETTING_MONEYUNIT);
	INIT_RPGSETTING_MEMBER(GameName, s, SETTING_GAMENAME);
	INIT_RPGSETTING_MEMBER(MissionCleanup, s, SETTING_MissionCleanup);
	//for(U32 n=0; n<GGAR_AMOUNT; n++)
	//	m_arGoodsArryUIs[n] = StringTable->getBlank();

}

RPGSetting::~RPGSetting()
{
}


void RPGSetting::Initialize(CSTR pObjName)
{

	AssertWarn(g_pRPGSetting == NULL,"只能创建一个RPGSetting实例");
	g_pRPGSetting = new RPGSetting();
	g_pRPGSetting->registerObject(pObjName);


	InitSettingData();

	//STE a = g_pRPGSetting->GetSceneStateName(GSS_LOCKED);
	//STE b = g_pRPGSetting->GetRPGConstantName(SKILL_SLOTNUM);
}

void RPGSetting::Destroy()
{
	if(g_pRPGSetting)
	{
		g_pRPGSetting->deleteObject();
		g_pRPGSetting = NULL;
	}

}


void RPGSetting::initPersistFields()
{
	Parent::initPersistFields();

	///@name 基本属性
	SETFIELD_RPGSETTING_MEMBER(RPGSetting, MoneyUnit, StringTableEntry, s, "moneyUnit", TypeString);
	SETFIELD_RPGSETTING_MEMBER(RPGSetting, GameName, StringTableEntry, s, "gameName", TypeString);
	SETFIELD_RPGSETTING_MEMBER(RPGSetting, MissionCleanup, StringTableEntry, s, "missionCleanup", TypeString);


	///@name 基本类型
	SETFIELD_RPGSETTING_TYPE(RPGSetting,	Career,		GCR_AMOUNT,	"arCareer");
	SETFIELD_RPGSETTING_TYPE(RPGSetting,	Clan,			GC_AMOUNT,	"arClan");
	SETFIELD_RPGSETTING_TYPE(RPGSetting,	Gender,		GG_AMOUNT,	"arGender");
	SETFIELD_RPGSETTING_TYPE(RPGSetting,	Body,			GBT_AMOUNT,	"arBody");

	SETFIELD_RPGSETTING_TYPE(RPGSetting,	GoodsType,		GGT_AMOUNT,		"arGoodsType");
	SETFIELD_RPGSETTING_TYPE(RPGSetting,	GoodsKind,		GGK_AMOUNT,		"arGoodsKind");
	SETFIELD_RPGSETTING_TYPE(RPGSetting,	EquipSetType,	GEST_AMOUNT,	"arEquipSetType");

	SETFIELD_RPGSETTING_TYPE(RPGSetting,	EquipType,		EQUIP_AMOUNT,	"arEquipType");
	SETFIELD_RPGSETTING_TYPE0(RPGSetting,	Equip,			EQUIP_AMOUNT,	TexTag,	"arEquipTexTag");

	SETFIELD_RPGSETTING_TYPE(RPGSetting,	GoodsArType,	GGAR_AMOUNT,	"arGoodsArType");
	SETFIELD_RPGSETTING_TYPE0(RPGSetting,	GoodsArType,	GGAR_AMOUNT,	UIName,	"arGoodsArTypeUIName");


	SETFIELD_RPGSETTING_TYPE(RPGSetting,	SceneState,		GSS_AMOUNT,	"arSceneState");
	SETFIELD_RPGSETTING_TYPE(RPGSetting,	SceneType,		GST_AMOUNT,	"arSceneType");

	SETFIELD_RPGSETTING_TYPE(RPGSetting,	TipText,			TIP_AMOUNT,	"arTipText");
	SETFIELD_RPGSETTING_TYPE(RPGSetting,	TextParseType,	TXTT_AMOUNT,	"arTextParseType");
	SETFIELD_RPGSETTING_TYPE_MACRO(RPGSetting,	RPGConstant,	RPGC_AMOUNT,	"arRPGConstant");

	SETFIELD_RPGSETTING_TYPE(RPGSetting,	TaskType,		GTT_AMOUNT,	"arTaskType");
	SETFIELD_RPGSETTING_TYPE(RPGSetting,	TaskState,		GTS_AMOUNT,	"arTaskState");
	SETFIELD_RPGSETTING_TYPE(RPGSetting,	TaskAction,		GTA_AMOUNT,	"arTaskAction");


}

//void RPGSetting::consoleInit()
//{
//}

void RPGSetting::AttachGoodsArrayWithUI(void* pOwnerAddr,ERPGGoodsArrayTypes type)
{
	if(type >= GGAR_AMOUNT)
		return;

	GuiCellArrayControl* pUICtrl;
	StringTableEntry		pUIName;
	GGoodsArray*			pGoodsArray;			
	
	pUIName = g_pRPGSetting->GetGoodsArTypeUIName(type);
	if(pUIName == NULL || pUIName[0] == 0)
		return;

	if(Sim::findObject(pUIName, pUICtrl))
	{
		pGoodsArray = dynamic_cast<GGoodsArray*>((GGoodsArray*)((U32)pOwnerAddr + ms_arGoodsArrayInfos[type].sOffset));
		AssertFatal(pGoodsArray,"GoodsArray转换出错,看年OwnerAddr指定有没错?");
		//pUICtrl->SetArrayType(type);
		pUICtrl->attachDataSource(pGoodsArray,
							ms_arGoodsArrayInfos[type].uBase,
							ms_arGoodsArrayInfos[type].uAmount);
	}
}


};//namespace RPG

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -