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

📄 verduregamedefine.hpp

📁 里面包含了许多实用的游戏开发包
💻 HPP
📖 第 1 页 / 共 3 页
字号:
   													//0:以45度斜块为坐标
   													//1:以场景为坐标
   													//2:已屏幕为坐标
}GAME_MESSAGE;

typedef struct
{
	WORD				wMessageCount;							//消息计数
	GAME_MESSAGE		stGameMessageStack[def_MAX_MESSAGE];	//消息堆栈
}GAME_MESSAGE_STACK;

#define def_BLOCK_COORDINATE 					0						//以45度斜块为坐标
#define def_SCENE_COORDINATE 					1						//以场景为坐标
#define def_SCREEN_COORDINATE 					2						//已屏幕为坐标
#define def_MAX_DYNAMIC_PROCREANT_OBJECT_NUM	1000					//最大允许产生动态物件的数目

//-----------------------------------------------------------------------------
//激活按钮组
//-----------------------------------------------------------------------------
//#define def_THING_BUTTON_ID						0x9003					//物品按钮

#define def_ACITVE_BUTTON_GROUP					0

#define def_MOVE_BUTTON_ID						0x9001					//移动按钮
#define def_ATTACK_BUTTON_ID					0x9002					//攻击按钮
#define def_USE_ENCHANTMENT_BUTTON_ID			0x9003					//魔法按钮
#define def_USE_THING_BUTTON_ID					0x9004					//使用物品
#define def_EQUIP_BUTTON_ID						0x9005					//装备物品
#define def_ATTORN_THING_BUTTON_ID				0x9006					//转让物品
#define def_CHUCK_THING_BUTTON_ID				0x9007					//丢弃物品
#define def_STATE_BUTTON_ID						0x9008					//状态按钮

//-----------------------------------------------------------------------------
//物品使用按钮组
//-----------------------------------------------------------------------------
#define def_USE_ENCHANTMENT_BUTTON_GROUP		1

#define def_SYSTEM_BUTTON_ID					0x9009					//系统
#define def_STAY_BUTTON_ID						0x900A					//待机
#define def_FACE_PANEL_ID						0x900b					//头像面板
//-----------------------------------------------------------------------------
//路径选择状态
//-----------------------------------------------------------------------------

#define def_PATH_SELECT							0x0100				//选择路径
#define	def_MOVE_WAIT							0x0101				//人物移动等待
#define def_ATTACK_SELECT						0x0102				//选择攻击目标
#define def_ATTACK_WAIT							0x0103				//人物攻击等待
#define def_USE_THING_SELECT					0x0104				//选择使用物品目标
#define def_USE_THING_WAIT						0x0105				//人物使用物品等待
#define def_GET_THING_SELECT					0x0106				//选择获取物品目标
#define def_GET_THING_WAIT						0x0107				//人物获取物品等待
#define def_DOFF_THING_SELECT					0x0108				//选择丢弃物品目标
#define def_DOFF_THING_WAIT						0x0109				//人物丢弃物品等待
#define def_CONSIGNMENT_SELECT					0x010A				//选择交换物品目标
#define def_CONSIGNMENT_WAIT					0x010B				//人物交换物品等待
#define def_USE_ENCHANTMENT_SELECT				0x010C				//选择使用魔法目标
#define def_USE_ENCHANTMENT_WAIT				0x010D				//人物使用魔法等待

typedef struct
{
	BYTE			byMake[20];
	WORD			wMake[20];
	DWORD			dwMake[10];
	char 			szName[21];						//姓名
	WORD			wSelfCode;						//自身的代号
	BYTE			bySelfType;						//自身的类型
	WORD			wId;
    signed int 		cxCurrentX;                     //位置X
    signed int 		cyCurrentY;                     //位置Y
	WORD 			wParentId;						//父(产生此物件)ID号,0xfffe:表示不需要管父ID号
	BYTE			byParentType;					//父(产生此物件)类型
	BYTE			byBusy;
    WORD 			wCurTask;                       //当前的任务
    signed int		cxCurTaskX;                      //任务的位置(有时候也用作计数)
	signed int		cyCurTaskY;
    WORD 			wTaskCorrespondingObjectSitus; 	//任务所对应的物件
    BYTE 			wTaskCorrespondingObjectType; 	//任务所对应的物件的类型
    
    WORD 			wFinalTask;                 		//最终任务
    WORD 			wFinalTaskCorrespondingObjectSitus; //最终任务所对应的物件
    BYTE 			byFinalTaskCorrespondingObjectType;	//最终任务所对应的物件的类型
    signed int		cxFinalTaskX;               		//最终任务坐标
    signed int		cyFinalTaskY;
    
    WORD			wImageId;							//图像ID号
    BYTE			byLayer;							//显示时的所在层
	DWORD			dwShowOrder;						//显示的先后次序(在地下层与地表静态层可调整同一层物件的显示先后次序)
    BYTE			byObjectType;						//标识此物件的类型:
    													//主要有直线移动型、坐标移动型(根据当前此物件所在位置
    													//与目的地所在位置求出当前移动时的方向以及下一步的位置)
    													//附带型(根据父的位置求出显示位置)、固定位置型(在固定
    													//的位置显示图像)
 	DWORD			dwProcreantTime;					//产生此物件的时间
   	DWORD			dwRuinedTime;						//销毁此物件的时间
   														//0:表示此物件销毁不由自身控制,而是由
   														//父物件或系统来处理
   														//0xfffffffe:表示任务一完成马上就销毁
	DWORD			nTimeCount;
    BYTE 			byCurrentAspect;					//当前人物的方向
   	WORD			wImageFrameCount;					//图像帧计数
   	BYTE			byCoordinateType;					//坐标类型
   														//0:以45度斜块为坐标
   														//1:以场景为坐标
   														//2:已屏幕为坐标
   BYTE				byIsRuined;							//表示是否销毁
   WORD				wImageOffset;
   signed short int siMessageId;						//消息的ID号
   BYTE				byIsActive;							//是否激活
   BYTE				byEnabled;
   BYTE				byOver;
   BYTE				byDown;
}DYNAMIC_PROCREANT_OBJECT;

typedef struct
{
	WORD wDynamicProcreantObjectNum;					//动态物件的产生计数
	DYNAMIC_PROCREANT_OBJECT	stEachDynamicObjectInfo[def_MAX_DYNAMIC_PROCREANT_OBJECT_NUM]; //每一个动态产生的物件信息
}ALL_DYNAMIC_PROCREANT_OBJECT;

typedef struct
{
	signed int cxParentX;			//父节点坐标
	signed int cyParentY;
	WORD   wToDestUseNum;				//此坐标到达目的地需要的步数
	WORD   wFindMake;
}PATH_TABLE;


#define def_BUTTON_NOT_OVER		0
#define def_BUTTON_OVER			1
#define def_BUTTON_UP			2
#define def_BUTTON_DOWN			3
#define def_BUTTON_ENABLE		4
#define def_BUTTON_DISABLE		5
#define def_BUTTON_NOT_ACTIVE	6
#define def_BUTTON_ACTIVE		7


#define def_ATTACK_TYPE					0	//攻击的类型,主要有以下几种
		/*	#define def_CROSS_TYPE				0		//十字型
			#define def_MI_ZI_TYPE				1		//米字型
			#define def_BOX_TYPE				2		//空框型
			#define def_BLOCK_TYPE				3		//实框型
		*/
#define def_ATTACK_BOUND				1	//攻击的范围

#define def_ATTACK_DISTANCE_TYPE		2	//攻击的距离类型
#define def_ATTACK_DISTANCE				3	//攻击的距离
		/*	#define def_CROSS_TYPE				0		//十字型
			#define def_MI_ZI_TYPE				1		//米字型
			#define def_BOX_TYPE				2		//空框型
			#define def_BLOCK_TYPE				3		//实框型
		*/
#define def_MAGIC_MODEL					4				//法术的类型
#define def_ATTACK_MODEL				0				//攻击型
#define def_ASSISTANT_MODEL				1				//辅助型
#define def_ATTACK_ASSISTANT_MODEL		2				//攻击(敌方)辅助(我方)型

#define def_MAX_OBJECT_NUM				20

class MAGIC_THING										//活动的物件
{
public:
	BYTE			byExecuteComplete;					//法术执行完成
	BYTE			byMagicInitOk;						//法术初始化成功
	DWORD			dwTimeCount;						//法术时间计数
	BYTE			byObjectNum;						//产生的物件数
	WORD			wEachObjectId[def_MAX_OBJECT_NUM];	//每个产生的物件的ID号
	WORD			wTaskCount;							//任务计数
	WORD			x;
	WORD			y;
	char			szMagicIcoName[21];					//法术图标在文件中的名称
	char			szMagicName[21];					//魔法名称
	WORD			wCode;								//魔法的代号
    virtual void 	MagicThingInit(void)=0;				//法术的初始化
    virtual void 	MagicThingExecuteInit(void)=0;		//法术执行初始化
    virtual void 	MagicThingExecute(void)=0;			//法术的执行
	virtual BOOL	MagicHoldCriteria(WORD wId)=0;		//是否可以拥有此法术
	virtual BYTE	MagicInfo(WORD wInfoType)=0;		//取得此法术的相关信息(主要是一个攻击距离,与攻击范围)
	virtual BOOL	MagicCapplicable(WORD wId)=0;		//是否可以使用此法术(使用法术一般要有足够的法力要求)
												//攻击者
	virtual void	MagicProcreantEffect(WORD wAttackerId,	//法术使用后产生的效果
								WORD wByAttackId)=0;
									 //被攻击者
	virtual void	MagicExpendable(WORD wId) = 0;				//使用此法术消耗的东西

};

typedef struct
{
	DWORD 		dwObjectSize;					//事件的长度
	BYTE		byType;
	HINSTANCE 	sthLibrary;						//事件的库
}MAGIC_DLM_INFO;

typedef struct
{
	DWORD 		dwObjectSize;					//事件的长度
	BYTE		byType;
	HINSTANCE 	sthLibrary;						//事件的库
}PROPERTY_DLM_INFO;

class PROPERTY_THING										//活动的物件
{
public:
	BYTE			byExecuteComplete;					//物品执行完成
	BYTE			byPropertyInitOk;					//物品初始化成功
	DWORD			dwTimeCount;						//物品时间计数
	BYTE			byObjectNum;						//产生的物件数
	WORD			wEachObjectId[def_MAX_OBJECT_NUM];	//每个产生的物件的ID号
	WORD			wTaskCount;							//任务计数
	WORD			x;
	WORD			y;
	char			szPropertyName[21];					//物品名称
	WORD			wCode;								//物品的代号
    virtual void 	PropertyThingInit(void)=0;			//物品的初始化
    virtual void 	PropertyThingExecuteInit(void)=0;	//物品执行初始化
    virtual void 	PropertyThingExecute(void)=0;		//物品的执行
	virtual BOOL	PropertyHoldCriteria(WORD wId)=0;	//是否可以拥有此物品
	virtual BYTE	PropertyInfo(WORD wInfoType)=0;		//取得此物品的相关信息(主要是一个攻击距离,与攻击范围)
	virtual BOOL	PropertyCapplicable(WORD wId)=0;		//是否可以使用此物品
												//使用者
	virtual void	PropertyProcreantEffect(WORD wAttackerId,	//物品使用后产生的效果
										 WORD wByAttackId)=0;
									 			//被攻击者
	virtual void	PropertyExpendable(WORD wId) = 0;		//使用此物品消耗的东西
};


#define def_MAX_USE_OBJECT_NUM 50
#define def_MAX_USE_OBJECT_INFO_BUFF 200
typedef struct
{
	WORD x;					//坐标
	WORD y;
	WORD wUseObjectNum;		//在此坐标可以使用到的人物数
	WORD wpUseObjectId[def_MAX_USE_OBJECT_NUM];
}MAGIC_USE_OBJECT_INFO;
 

typedef struct 
{
	WORD wMaxLength;		// 每行字符的最大长度
	WORD wLines;			// 总行数
	BYTE **cpBuff;		// 字符串数组
}LINE_STRING;

#define def_GUT_FILE_ID "VD->GUT"						//GLB文件标识
#define def_GUT_FILE_CURRENT_VERSION 1					//GLB文件版本号
#define def_GUT_FILE_MAX_ITEM			20000

typedef struct
{
	char		szGutFileId[20];					//文件标识。内容为“VD->GUT”
	DWORD		wVersion;							//TEXT文件的当前版本号。此次的版本号为1
	DWORD		dwTotalTextNum;						//总共的句数
}TEXT_FILE_HEAD;

⌨️ 快捷键说明

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