📄 verduregamedefine.hpp
字号:
//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 + -