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

📄 commoninclude.h

📁 改工程是一个基于select模型实现的MUD游戏
💻 H
字号:
#pragma once




#ifndef _COMMON_INCLUDE_
#define _COMMON_INCLUDE_

#include <string>

using namespace std;

#pragma warning(disable: 4996)


#define SKILLNUM	7
#define OBJECTNUM	10
#define EQUIPNUM	3


//命令类型
enum CMD{

//游戏命令
CMD_AUTHEN=1,   //验证
CMD_REGISTER,	//注册
CMD_CREATEROLE,	//创建角色
CMD_GETOBJLIST,	//获取npc物品列表
CMD_SELLOBJ,	//买东西
CMD_GETOLLIST,  //获取在线列表
CMD_GETROLEINFO,//获取角色信息
CMD_GETOBJECTINFO,//获取物品资源信息
CMD_GETNPCINFO,//获取npc信息
CMD_CHECKHASNPC,//核实是否有npc
CMD_GETLEVELINFO,//获取等级信息
CMD_GETMONSTERINFO,//获取怪物信息
CMD_GETSKILLINFO,//获取技能信息
CMD_NOTICE,//宝物通知

//发话命令
CMD_SPEAK,
CMD_GETMESSAGE,


//更新数据部分命令
CMD_UPDATE,//更新
CMD_UPDATEROLEINFO//战斗后角色信息更新
};


//命令结构
typedef struct tagCommand
{
	CMD CommandID;//命令类型
	int DataSize;//后续数据大小
}SCommand;



//当前操作:接收命令,接收数据,执行命令
enum SCurrOp
{recvCmd,recvData,execCmd};


//物品类型:防具,武器,鞋子,药品(具体类型)
enum objectType
{OT_ARMOUR=1,OT_ARM,OT_SHOE,OT_HP,OT_MP};


//技能
struct skill
{
	char skillName[20];//技能名称
	int damage;//伤害
	int needmp;//消耗的mp
	//int needlevel;//需要等级
};



//物品,包括:装备,武器,药品,
struct Myobject
{
	char objectName[20];//物品名称
	objectType moType;//物品类型
	int value;//物品值
	int buy;//物品够买价格
	int needLevel;//需要等级
};


typedef struct tagPackage
{
	string ownObjectName;
	int num;
}Package;

//经验
struct exp
{
	int currLevel;
	int needExp;
};

//怪物数据
struct monster
{
	char monsterName[20];
	int hp;
	int mp;
	int attack;
	int defence;
	int hasmoney;
	int hasexp;
	int ct;//敏捷
	int prob;
	char skillName[20];
	int skilldamage;
	int needmp;
};


//npc信息
struct npc
{
	char npcName[20];
	char item1[16];//所卖东西名称
	char item2[16];
	char item3[16];
	char item4[16];
	char item5[16];
};

//地图信息结构
struct tagmapinfo
{
	char mapName[20];

};


//在线玩家数据
struct OnLineList
{
	char uName[20];//用户名
	char nName[20];//昵称
	int pos[2];//地图位置
};

//角色职业
enum occupation
{OC_WARRIOR,OC_RABBI,OC_DOCTOR};


//性别
enum sex
{FEMALE,MALE};



struct LevelInfo
{
	int curlv;
	int hp;
	int mp;
	int attack;
	int defendence;
	int celerity;
	int needexp;
	char hasskill[20];
};



//角色信息
struct player
{
	char nickName[20];//昵称
	int hp;//hp值
	int mp;//mp值
	int attack;//攻击
	int defendence;//防御
	int celerity;//敏捷
	int money;//金钱
	int exp;//经验
	occupation ownOccup;//职业
	sex ownSex;//性别
	string ownEquip[EQUIPNUM];//身上装备名称(目前只有防具,武器,鞋子3种装备可以装备)
	string ownSkill[SKILLNUM];//技能数组(最多只支持7个技能)
	Package ownObject[OBJECTNUM];//包裹物品信息(最多只能带10类物品)
	int pos[2];//地图位置,[0]row,[1]vol
	int level;//等级
};


//消息结构
struct GameMessage
{
	char message[512];//信息体
	char recver[20];//接收人
};


//数据操作类型
enum dbOpType
{DBOP_TYPE_NUM=1,DBOP_TYPE_STRING,DBOP_TYPE_ALL};

//新的更新数据结构
struct updateNewDS
{
	char op[40];//更新的操作项
	dbOpType opType;//操作类型
	char item[20];//更新信息
	int num;//数目
};


//客户端数据定义

#ifdef _CLIENT_INCLUDE_

const int mapCow=4;
const int mapVol=4;

//地图描述
char* map[mapCow][mapVol]={
"落云村","十里坡","枫叶古道","侠客岛",
"龙门小镇","乐山大佛","幽冥谷","苍茫山",
"未名湖","洛阳集镇","黄山镇","桃花岛",
"苍凉荒漠","西海草原","玄冰宫","天山天池"
};


//特殊装备
char* spEquip[5]={
"龙之伏魔剑",
"虎之天魔锤",
"凤之五彩衣",
"风之踏燕履",
"火之烈焰甲"
};


//npc物品栏数目
#define GOODSNUM	5

enum dir
{EAST,SOUTH,WEST,NORTH};







#endif


//服务器端函数

#ifdef _SERVER_INCLUDE_

#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")

//封装的套接字结构,
typedef struct tagSocketInfo
{
	SOCKET socket;
	char username[20];
	bool isAuthen;
	SCurrOp scurrop;
	SCommand scmd;
	char * data;
}SocketInfo;




enum DBopCmd
{DB_ADD=1,DB_UPDATE,DB_CMP};

#endif

#endif

⌨️ 快捷键说明

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