📄 verduregamedefine.hpp
字号:
// 小于0:降低攻击命中率
// 大于0:增加攻击命中率
WORD wFuJiaGongJiMingZhongLuChiXuTime;//附加攻击命中率的持续时间
DWORD dwFuJiaGongJiMingZhongLuTime; //附加攻击命中率时的时间
//防御力
signed short int siFuJiaFangYuLi; //附加防御力( 0:没有附加防御力
// 小于0:降低防御力
// 大于0:增加防御力
WORD wFuJiaFangYuLiChiXuTime; //附加防御力的持续时间
DWORD dwFuJiaFangYuLiTime; //附加防御力时的时间
//躲闪力
signed short int siFuJiaDuoSanLi; //附加躲闪力( 0:没有附加躲闪力
// 小于0:降低躲闪力
// 大于0:增加躲闪力
WORD wFuJiaDuoSanLiChiXuTime; //附加躲闪力的持续时间
DWORD dwFuJiaDuoSanLiTime; //附加躲闪力时的时间
WORD wEyeshot; //视野
BYTE byHap; //运气
WORD wGoodsNum; //拥有物品数
WORD wpGoodsTable[def_EACH_LIVELY_THING_MAX_GOODS_NUM];
WORD wMagicNum; //拥有法术数
WORD wpMagicTable[def_EACH_LIVELY_THING_MAX_MAGIC_NUM];
WORD wImageId; //图像在图像缓冲区中的位置
BYTE byLayer; //人物的所在的层(地面层或天空层)
WORD cxInMapX; //在场景中的位置X
WORD cyInMapY; //在场景中的位置Y
BYTE byPlayId; //保存我方人员还是敌方人员
BYTE byActive; //激活
WORD wFrameNum; //当前的图像帧数
BYTE byBusy; //忙
BYTE byCurrentAspect; //当前人物的方向
signed short int siMayEvent; //可能将发生的事件
WORD wMayEventObjectSitus; //导致事件发生的物件位置
BYTE byMayEventObjectType; //导致事件发生的物件类型
signed short int siMessageId; //消息的ID号
signed short int cxMoveX; //移动时的计数
signed short int cyMoveY;
signed char cxCountX; //移动时的方向偏移值
signed char cyCountY;
int nTimeCount; //时间计数
DWORD dwCelerityCount; //敏捷度计数
WORD wCurTask; //当前的任务
WORD wCurTaskX; //任务的位置
WORD wCurTaskY;
WORD wTaskCorrespondingObjectSitus; //任务所对应的物件
BYTE wTaskCorrespondingObjectType; //任务所对应的物件的类型
WORD wTaskCount; //任务计数
WORD wFinalTask; //最终任务
WORD wFinalTaskCorrespondingObjectSitus; //最终任务所对应的物件
BYTE byFinalTaskCorrespondingObjectType; //最终任务所对应的物件的类型
WORD cxFinalTaskX; //最终任务坐标
WORD cyFinalTaskY;
WORD wImageOffset;
WORD wEndTaskCount; //每一次任务需要使用的精
BYTE byAction; //行动过
USE_PATH_STACK stPathStack; //路径堆栈
virtual void LivelyThingAi(void)=0; //此函数必须存在
virtual void LivelyThingInit(void)=0; //此函数必须存在
};
//----------------------------------------------------------------
////静态的物件的描述信息
//----------------------------------------------------------------
typedef struct
{
char szEventName[21]; //事件名称名称
BYTE byLayer; //环境层中的物体所在的层
int cxInSceneX; //在场景中的X(以象素为单位)
int cyInSceneY; //在场景中的Y(以象素为单位)
WORD cxLinkInMapX; //景物之间连接后在场景中的位置X
WORD cyLinkInMapY; //景物之间连接后在场景中的位置Y
WORD cxLinkUseGrideWidth; //景物之间连接后占用格子的宽度
WORD cyLinkUseGrideHeight; //景物之间连接后占用格子的高度
WORD cxInMapX; //在场景中的位置X
WORD cyInMapY; //在场景中的位置Y
WORD wShowOrder; //显示的先后次序(在地下层与地表静态层可调整同一层物件的显示先后次序)
WORD wImageId; //图像在图像缓冲区中的位置
}TEMP_BUILD_INFO;
class STATIC_THING
{
public:
BYTE byMake[20];
WORD wMake[20];
DWORD dwMake[10];
WORD wId; //Id号
BYTE bySelfType; //自身的类型
int cxInSceneX; //在场景中的X(以象素为单位)
int cyInSceneY; //在场景中的Y(以象素为单位)
WORD cxLinkInMapX; //景物之间连接后在场景中的位置X
WORD cyLinkInMapY; //景物之间连接后在场景中的位置Y
WORD cxLinkUseGrideWidth; //景物之间连接后占用格子的宽度
WORD cyLinkUseGrideHeight; //景物之间连接后占用格子的高度
WORD cxInMapX; //在场景中的位置X
WORD cyInMapY; //在场景中的位置Y
WORD wCurrentFrame; //动作的当前帧
WORD wImageId; //图像在图像缓冲区中的位置
WORD byLayer; //环境层中的物体所在的层
WORD wShowOrder; //显示的先后次序(在地下层与地表静态层可调整同一层物件的显示先后次序)
int nTimeCount;
WORD wFrameNum; //当前的图像帧数
WORD wImageOffset; //图像偏移量
BYTE byCurrentAspect; //当前的方向
signed short int siMessageId; //消息的ID号
virtual void StaticThingAi(void)=0;
virtual void StaticThingInit(void)=0;
};
typedef struct
{
char szFileName[21]; //事件的文件名
char szEventName[21]; //事件名称名称
BYTE byObjectType; //事件的类型
DWORD dwObjectSize; //事件的长度
union
{
BOOL (*LivelyThingInitialize)(LIVELY_THING *);
BOOL (*StaticThingInitialize)(STATIC_THING *);
};
HINSTANCE sthLibrary; //事件的库
}EVENT_DLM_INFO;
/*----------------------------------------*\
| 场景定义 |
\*----------------------------------------*/
#define def_FILE_IS_SCE 200 //SCE格式的文件
#define def_SCE_FILE_ID "VD->SCE" //SCE文件标识
#define def_SCE_FILE_CURRENT_VERSION 3 //SCE文件版本号
#define def_VD_SCE_FILE_ID_SIZE 20
//----------------------------------------------------------
//场景文件的定义
//----------------------------------------------------------
typedef struct
{
char szSceneFileId[def_VD_SCE_FILE_ID_SIZE]; //文件标识。内容为“VD->SCE”
WORD wVersion; //SCE文件版本号
}SCE_FILE_HEAD;
#define def_MY_CHARACTER_MAX_NUM 10
#define def_MAX_BACKUP_SOUND_BUFF_SIZE 1024 * 150
typedef struct
{
int cxWidth; //场景的宽度(以像素为单位宽度)
int cyHeight; //场景的高度(以像素为单位高度)
int cxCurrentX; //当前显示位置(以像素为单位)
int cyCurrentY;
WORD cxCurrentBlockX; //当前位置(斜45度)块
WORD cyCurrentBlockY;
WORD cxOldCurrentBlockX;
WORD cyOldCurrentBlockY;
WORD iMapWidthAndHeight; //斜45度块的宽度和高度(在斜45度中的块的高度和宽度是相同的)
WORD cxMapWidth; //正块的宽度
signed short int siCurrentActiveCharacterId; //当前控制的人物
WORD wBuildNum; //景物数
WORD wTotalImageNum; //使用总图像数
WORD wCharacterNum; //人物数
WORD wMyCharacterNum; //我方人物数
WORD wMyCharacterId[def_MY_CHARACTER_MAX_NUM]; //我方人物在人物链中的下标
WORD wEventNum;
WORD wPropertyNum; //道具数
LPDIRECTDRAWSURFACE3 stSceneSurface;
BYTE byTransparentScaleType;
BYTE byTransparentScale;
BYTE bySystemBusy; //系统忙
DWORD dwOldTransparentScaleTime;
BYTE byForbidMoveScreen; //是否禁止移动屏幕
BYTE byQuitScene;
BYTE byGameStart; //游戏开始
BYTE byNotExecuteTask;
BYTE byCurrentActiveGroup; //当前激活的组
WORD wBoutCount; //回合数
// FILE *fpBackMusicFilePoint; //背景音乐的文件指针
/// LPDIRECTSOUNDBUFFER stpMusicPlayBuff; //当前播放的声音缓冲区
// char *cpBackMusicBuff; //声音缓冲区
// SOUND stBackMusicHead; //背景音乐的头部数据
// DWORD dwBackMusicCurrentPlaySitus; //当音乐播放的位置
}SCENE_INFO; //场景信息结构
#define def_MAX_PROPERTY 100 //场景中最大允许的物品数
typedef struct
{
WORD wId;
WORD cxInMapX; //在场景中的位置X
WORD cyInMapY; //在场景中的位置Y
BYTE byUseMake; //此块缓冲区是否使用
WORD wImageId; //图像在图像缓冲区中的位置
WORD wPropertyAmount; //物品的数量
WORD wImageOffset;
}PROPERTY_LINK;
/*----------------------------------------*\
| 地图块信息 |
\*----------------------------------------*/
typedef struct
{
WORD wUseSitus; //使用者的位置
BYTE byUse; //使用标志 0:没有使用 1:使用
BYTE byUseType; //使用者的类型 0: 人物 2:环境
BYTE byMapType; //地图块的类型 (0: 空的 1: 泥地 2:草地 ...)
BYTE byExistProperty; //是否有物品
WORD wPropertyId; //物品的Id号
}MAP_DESCRIBE;
typedef struct
{
WORD wId; //需要显示物件在物件链中的位置
BYTE byObjectType; //物件的类型
WORD ByNextSuffix; //下一个需要显示的物件的下标 0xfe:表示没有需要显示的物件
}SHOW_IMAGE_LINK;
typedef struct
{
WORD byShowObjectNum; //需要显示的物件数
SHOW_IMAGE_LINK stpShowImageInfo[def_EACH_LAYER_MAX_SHOW_IMAGE_NUM]; //每层需要显示的物件缓冲区
}SHOW_IMAGE_INFO;
typedef struct
{
signed short int siNewMouseInObjecId;
BYTE byNewMouseInObjectType; //鼠标所在处的物件的类型
signed short int siMouseHandObject; //鼠标是否拿有物品
signed short int siMouseInObjecId; //鼠标所在处的物件
WORD wImageId;
BYTE byMouseInObjectType; //鼠标所在处的物件的类型
DWORD wMouseInObjectTime; //鼠标移动到物件上的时间
WORD wFrameNum; //鼠标图像当前的帧数
int nTimeCount; //鼠标时间计数
signed short int siNewTask; //新的任务
WORD cxNewTaskX; //新的坐标
WORD cyNewTaskY;
BYTE byMouseRightDown;
BYTE byMouseLeftDown;
}MOUSE_INFO;
#define def_MAX_MESSAGE 50
typedef struct
{
int iMake[4]; //存放一些不要的参数
signed short int siGetMessageId; //接收此消息的物件ID号
BYTE byGetMessageIdType; //接收此消息的物件类型
DWORD dwMessageContent; //消息的内容
DWORD dwMessageProcreantTime; //消息产生的时间
signed int cxMessageProcreantX; //消息产生的坐标,已场景为坐标,单位为像素
signed int cyMessageProcreantY;
BYTE byMessageAvailable; //此消息是否有效 0:无效 1:有效
signed short int siMessageCounterpointId; //此消息对应的物件ID号
BYTE siMessageCounterpointIdType;//此消息对应的物件类型
BYTE byCoordinateType; //坐标类型
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -