-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathhf_types.h
301 lines (236 loc) · 11.3 KB
/
hf_types.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
/*
* hf_types.h
*
* Created on: 2015年4月26日
* Author: yang
*/
#ifndef HF_TYPES_H_
#define HF_TYPES_H_
#include <sys/time.h>
#include <stddef.h>
#define CHUNK_SIZE 1024 //内存池块大小
#define CHUNK_COUNT 4096 //内存池块数
//#define SRV_PORT_DEFAULT 7000 //监听端口
#define CORE_NUM 1 //CPU核心数
#define PI 3.141592654
#define ThreadCount CORE_NUM*8 //线程池,线程数量
#define PackageCount 10*1024 //队列中可以存放未处理包的数量
#define View 1 //能看到,用来表示玩家之间和玩家与怪物之间
#define NotView 2 //看不到
#define EquipMentID 20000000 //装备编号
#define Money_1 101 //1号金钱
#define BAGCAPACITY 65 //背包容量
#define GOODSMAXCOUNT 99 //每个格子物品最大数量
#define PlayerView 1000 //玩家可视范围 80
#define MonsterHatredView 1000 //怪物仇恨范围 60
#define MonsterPursuitDis 600 //怪物追击玩家与起始追击点的距离
#define PlayerAttackView 150 //玩家普通攻击范围
#define MonsterAttackView 30 //怪物普通攻击范围
#define MonsterMoveDistance 5 //怪物移动一次的距离
#define PlayerMoveDistance 5 //玩家移动一次的距离 单位分米
#define RefreshDistance 100 //玩家刷新数据的距离
#define PursuitNearlyDistance 10 //怪物追击玩家,距离较近一次移动的距离
#define MonsterStopTime 5 //每次怪物运动到一个点后停留的时间
#define MonsterAttackSpeed 1 //怪物攻速 每隔多久攻击一次
//位置的状态,0 空闲,1使用,2锁定
#define POS_EMPTY 0 //位置为空
#define POS_NONEMPTY 1 //位置非空
#define POS_LOCKED 2 //位置锁定
#define PostUpdate 1 //更新
#define PostInsert 2 //插入
#define PostDelete 3 //删除
#define PhyAttackSkillID 1
#define MagicAttackSkillID 2
#define PhyMagAttackSkillID 3
//背包物品来源
#define Source_Bag 0 //来自背包
#define Source_Trade 1 //来自交易
#define Source_Buy 2 //来自购买
#define Source_Pick 3 //来自捡的
#define Source_Task 4 //来自任务
#define DefaultGoods 1 //默认奖励
#define ChooseGoods 2 //选择奖励
#define EquTypeMinValue 20000 //装备类型最小值
#define EquTypeMaxValue 29999 //装备类型最大值
#define ActiveMonster 1 //主动怪物
#define UnactiveMonster 2 //被动怪物
#define Buy_NotEnoughMoney 1 //金钱不够
#define Buy_BagFull 2 //背包满了
#define PICK_SUCCESS 1 //捡取成功
#define PICK_BAGFULL 2 //背包满了,未捡取物品
#define PICKPART_BAGFULL 3 //背包满了,捡取部分物品
#define PICK_GOODNOTEXIST 4 //捡取的物品不存在
#define PUBLIC_COOLTIME 1 //公共冷却时间
#define GOODS_CONTINUETIME 50 //掉落物品持续时间
#define MonsterDeathTime 60 //怪物死亡时间
#define RESULT_SUCCESS 1 //成功
#define RESULT_PRE_TASK 2 //未完成前置任务
#define RESULT_CONDITION_TASK 3 //未接取条件任务
#define RESULT_TASK_GOODS 4 //未持有任务物品
#define RESULT_CONDITION_TITLE 5 //为获得任务条件称号
#define RESULT_CONDITION_COPY 6 //未完成条件副本
#define RESULT_SEX 7 //性别不符
#define RESULT_LEVEL 8 //等级不足
#define RESULT_PROFESSION 9 //职业不符
#define NOT_ATTACKVIEW 1 //不在攻击范围
#define OPPOSITE_DIRECT 2 //方向相反
#define HIT 3 //命中
#define NOT_HIT 4 //未命中
#define Dodge 5 //闪避
#define RESIST 6 //抵挡
#define CRIT_HIT 7 //暴击
#define BackOut 8 //返回 怪物返回中
#define SKILL_SUCCESS 3 //技能使用成功
#define SKILL_ERROR 4 //技能使用错误
#define SKILL_NOTCOOL 5 //技能没冷却
#define SKILL_NOTEXIST 6 //技能不存在
#define RESULT_SUCCESS 1
#define RESULT_ERROR 2
#define RESULT_USER_REPEAT 2 //用户名已被注册
#define RESULT_EMAIL_REPEAT 3 //邮箱已被注册
#define RESULT_PASSWORD_ERROR 2 //密码不正确
#define RESULT_USER_NOTEXIST 3 //用户名不存在
#define RESULT_NICK_REPEAT 3 //昵称已被注册
#define ONLINE 1 //在线
#define OFFLINE 2 //不在线
#define CommonGradeCount 110 //基本等级总数
#define ChangeProfessionGrade 14 //改变职业需要的等级
#define OtherGradeCount 96 //其他等级总数 CommonGradeCount - ChangeProfessionGrade
#define RoleCritRate 0.02 //暴击率
#define RoleDodgeRate 0.05 //闪避率
#define RoleHitRate 0.99 //命中率
#define RoleResistRate 0.05 //抵挡率
#define CasterSpeed 1.00 //施法速度
#define MoveSpeed 1.00 //移动速度
#define HurtSpeed 1.00 //攻击速度
#define MaxSmallUniverse 100 //最大小宇宙
#define CommonJob 0 //基本职业
#define SaleJob 1 //销售职业
#define TechnologyJob 2 //技术职业
#define AdministrationJob 3 //行政职业
#define SmallUniverseLevelValue 60 //到这个等级小宇宙才有值
#define SmallValue 100 //到等级后小宇宙的值
#define BodyPos_Head 1 //头部1
#define BodyPos_UpperBody 2 //上身2
#define BodyPos_Pants 3 //下身3
#define BodyPos_Shoes 4 //鞋子4
#define BodyPos_Belt 5 //腰带5
#define BodyPos_Neaklace 6 //项链6
#define BodyPos_Bracelet 7 //手镯7
#define BodyPos_Ring 8 //戒指8
#define BodyPos_Phone 9 //手机9
#define BodyPos_Weapon 10 //武器10
#define Action_Idle 0 //空闲(idle)
#define Action_Walk 1 //行走(walk)
#define Action_Hurt 2 //被攻击(hurt)
#define Action_Attack 3 //发出攻击(attack)
#define Action_Death 4 //死亡(death)
#define Action_Run 5 //跑步(run)
#define Action_Talk 6 //交谈(talk)
#define Action_Picked 7 //弯腰捡(pickd)
#define Action_Pickup 8 //捡起来(picku)
#define Action_Pickint 9 //采集(picking)
#define Action_Ride 10 //骑乘(Ride)通用骑乘动作
#define Action_RideMotor 11 //骑摩托(RideMotor )
#define Action_RideBike 12 //骑自行车(RideBike)
#define SQRT3DIV2 0.866 //平方跟3
#define MAP1 1 //1号地图
#define MAP2 2 //2号地图
#define MAP3 3 //3号地图
#define MAP4 4 //4号地图
#define MAP5 5 //5号地图
#define MAP6 6 //6号地图
#define MAP7 7 //7号地图
#define MAP8 8 //8号地图
#define MAP9 9 //9号地图
#define MAP10 10 //10号地图
#define MAP_X 5120 //地图x边界区域大小
#define MAP_Z 5120 //地图z边界区域大小
#define MomentMagic 1 //瞬间恢复魔法值
#define MomentHP 2 //瞬间恢复生命值
#define SecondMagic 3 //每秒恢复魔法值
#define SecondHP 4 //每秒恢复生命值
#define MomentHPMagic 5 //瞬间恢复生命魔法值
#define SecondHPMagic 6 //每秒恢复生命魔法值
#define PlayerNotLoginUser 0 //玩家没有登录用户
#define PlayerLoginUser 1 //玩家已经登录用户
#define PlayerLoginRole 2 //玩家已经登录角色
#define AskTrading 1 //请求交易
#define AskCancelTrading 2 //取消交易
#define AskLockTrading 3 //锁定交易
#define AskCancelLock 4 //取消锁定
#define AskConfirmTrading 5 //确认交易
#define AskAddGoods 6 //增加物品
#define AskCancelGoods 7 //取消物品
#define AskAddMoney 8 //增加金钱
#define AskCancelMoney 9 //取消金钱
//玩家交易状态
#define NotTrading 0 //未进入交易状态
#define TradingProcess 1 //表示进入交易过程,未锁定
#define LockTrading 2 //表示已锁定,未交易确认
#define ConfirmTrading 3 //表示已确认交易
namespace hf_types{
typedef unsigned int hf_uint32;
typedef unsigned short hf_uint16;
typedef int hf_int32;
typedef short hf_int16;
typedef unsigned char hf_byte;
typedef hf_byte hf_uint8;
typedef char hf_char;
typedef float hf_float;
typedef double hf_double;
typedef bool hf_bool;
/**
*
* 内存块管理链表
*/
typedef struct _mem_list{
hf_uint32 index; //内存的索引
struct _mem_list *pre; //上一个块
struct _mem_list *next; //下一个块
}hf_memNode;
typedef struct _unitBlock{
_unitBlock *next;
_unitBlock *pre;
hf_uint32 index;
}UnitBLock;
//memoery block
typedef struct _block{
hf_int32 m_freecount;
hf_int32 m_usedcount;
UnitBLock *used_head;
UnitBLock *used_tail;
UnitBLock *free_head;
UnitBLock *free_tail;
}Block,*Block_ptr;
typedef void* (*TaskFun)(void*);
///
/// \brief The Client struct
/// 客户端数据结构
///
//struct Client
//{
// int sock;
// void *pack;
// struct event *read_ev;
// struct event *write_ev;
// Mutex mtx;
// int ReadN(int fd,char*buf,int sz)
// {
// int res;
// mtx.Lock();
// res = NetTask::RecvN(fd,buf,sz);
// mtx.UnLock();
// return res;
// }
// int WriteN( int fd,char *buf,int sz)
// {
// int res;
// mtx.Lock();
// res = NetTask::SendN(fd,buf,sz);
// mtx.UnLock();
// return res;
// }
//};
};
#endif /* HF_TYPES_H_ */