SkillDef.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:5k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #ifndef __SKILLDEF_H__
  2. #define __SKILLDEF_H__
  3. #define MAX_SKILL  500
  4. #define MAX_SKILLLEVEL 64
  5. #define MaxMissleDir 64
  6. #define MAXSKILLLEVELSETTINGNUM 10  //供填写技能升级时最大的相关数据种类
  7. #define MAX_MISSLESTYLE  200
  8. #define MISSLE_MIN_COLLISION_ZHEIGHT 0   //子弹落地碰撞的高度。
  9. #define MISSLE_MAX_COLLISION_ZHEIGHT 20   //子弹高于该高度时,不计算碰撞
  10. //---------------------------------------------------------------------------
  11. // MoveKind 运动类型
  12. //---------------------------------------------------------------------------
  13. enum eMissleMoveKind
  14. {
  15. MISSLE_MMK_Stand, // 原地
  16. MISSLE_MMK_Line, // 直线飞行
  17. MISSLE_MMK_Random, // 随机飞行(暗黑二女巫的Charged Bolt)
  18. MISSLE_MMK_Circle, // 环行飞行(围绕在身边,暗黑二刺客的集气)
  19. MISSLE_MMK_Helix, // 阿基米德螺旋线(暗黑二游侠的Bless Hammer)
  20. MISSLE_MMK_Follow, // 跟踪目标飞行
  21. MISSLE_MMK_Motion, // 玩家动作类
  22. MISSLE_MMK_Parabola, // 抛物线
  23. MISSLE_MMK_SingleLine, // 必中的单一直线飞行魔法
  24. MISSLE_MMK_RollBack = 100, //  子单来回飞行
  25. MISSLE_MMK_Toss , // 左右震荡
  26. };
  27. //---------------------------------------------------------------------------
  28. // FollowKind 跟随类型 (主要是针对原地、环行与螺旋线飞行有意义)
  29. //---------------------------------------------------------------------------
  30. enum eMissleFollowKind
  31. {
  32. MISSLE_MFK_None, // 不跟随任何物件
  33. MISSLE_MFK_NPC, // 跟随NPC或玩家
  34. MISSLE_MFK_Missle, // 跟随子弹
  35. };
  36. #define MAX_MISSLE_STATUS 4
  37. enum eMissleStatus
  38. {
  39. MS_DoWait,
  40. MS_DoFly,
  41. MS_DoVanish,
  42. MS_DoCollision,
  43. };
  44. enum eSkillLRInfo
  45. {
  46. BothSkill,          //左右键皆可
  47. leftOnlySkill, //左键
  48. RightOnlySkill, //右键
  49. NoneSkill, //都不可
  50. };
  51. //--------------------------------------------------------Skill.h
  52. //技能发送者的类型
  53. enum eGameActorType
  54. {
  55. Actor_Npc,
  56. Actor_Obj,
  57. Actor_Missle,
  58. Actor_Sound,
  59. Actor_None,
  60. };
  61. enum eSkillLauncherType
  62. {
  63. SKILL_SLT_Npc = 0,
  64. SKILL_SLT_Obj ,
  65. SKILL_SLT_Missle,
  66. };
  67. #ifndef _SERVER
  68. struct TOrginSkill
  69. {
  70. int nNpcIndex; // Npc的index
  71. DWORD nSkillId; // 发送的skillid
  72. };
  73. #endif
  74. enum eSkillParamType
  75. {
  76. SKILL_SPT_TargetIndex = -1,
  77. SKILL_SPT_Direction = -2,
  78. };
  79. //技能的类型
  80. enum eSKillStyle
  81. {
  82. SKILL_SS_Missles = 0, // 子弹类 本技能用于发送子弹类
  83. SKILL_SS_Melee,
  84. SKILL_SS_InitiativeNpcState, // 主动类 本技能用于改变当前Npc的主动状态
  85. SKILL_SS_PassivityNpcState, // 被动类 本技能用于改变Npc的被动状态
  86. SKILL_SS_CreateNpc, // 产生Npc类 本技能用于生成一个新的Npc
  87. SKILL_SS_BuildPoison, // 炼毒类 本技能用于炼毒
  88. SKILL_SS_AddPoison, // 加毒类 本技能用于给武器加毒性
  89. SKILL_SS_GetObjDirectly, // 取物类 本技能用于隔空取物
  90. SKILL_SS_StrideObstacle , // 跨越类 本技能用于跨越障碍
  91. SKILL_SS_BodyToObject, // 变物类 本技能用于将尸体变成宝箱
  92. SKILL_SS_Mining, // 采矿类 本技能用于采矿随机生成矿石
  93. SKILL_SS_RepairWeapon, // 修复类 本技能用于修复装备
  94. SKILL_SS_Capture, // 捕捉类 本技能用于捕捉动物Npc
  95. SKILL_SS_Thief, // 偷窃类
  96. };
  97. //同时发出的多个子弹的方向起始格式
  98. enum eMisslesForm
  99. {
  100. SKILL_MF_Wall = 0, //墙形 多个子弹呈垂直方向排列,类式火墙状
  101. SKILL_MF_Line, //线形 多个子弹呈平行于玩家方向排列
  102. SKILL_MF_Spread, //散形 多个子弹呈一定的角度的发散状
  103. SKILL_MF_Circle, //圆形 多个子弹围成一个圈
  104. SKILL_MF_Random, //随机 多个子弹随机排放
  105. SKILL_MF_Zone, //区域 多个子弹放至在某个范围内
  106. SKILL_MF_AtTarget, //定点 多个子弹根据
  107. SKILL_MF_AtFirer, //本身 多个子弹停在玩家当前位置
  108. SKILL_MF_COUNT,
  109. };
  110. enum eMeleeForm
  111. {
  112. Melee_AttackWithBlur = SKILL_MF_COUNT,
  113. Melee_Jump,
  114. Melee_JumpAndAttack,
  115. Melee_RunAndAttack,
  116. Melee_ManyAttack,
  117. };
  118. enum eSKillCostType
  119. {
  120. SKILL_SCT_MANA = 1,
  121. SKILL_SCT_LIFE = 2,
  122. SKILL_SCT_STAMINA = 8,
  123. SKILL_SCT_MONEY = 16,
  124. };
  125. enum eMisslesGenerateStyle
  126. {
  127. SKILL_MGS_NULL = 0,
  128. SKILL_MGS_SAMETIME ,    //同时
  129. SKILL_MGS_ORDER ,  //按顺序
  130. SKILL_MGS_RANDONORDER,
  131. SKILL_MGS_RANDONSAME,
  132. SKILL_MGS_CENTEREXTENDLINE,  //由中间向两周扩散
  133. };
  134. typedef struct 
  135. {
  136. int dx;
  137. int dy;
  138. }TCollisionOffset;
  139. typedef struct 
  140. {
  141. int nRegion;
  142. int nMapX;
  143. int nMapY;
  144. }
  145. TMisslePos;
  146. typedef struct 
  147. {
  148. TCollisionOffset m_Offset [4];
  149. }
  150. TCollisionMatrix;
  151. extern TCollisionMatrix g_CollisionMatrix[64];
  152. typedef struct 
  153. {
  154. int nLauncher;
  155. DWORD dwLauncherID;
  156. eSkillLauncherType eLauncherType; //发送者,一般为Npc
  157. int nParent;
  158. eSkillLauncherType eParentType;   //母  
  159. DWORD dwParentID;
  160. int nParam1;
  161. int nParam2;
  162. int nWaitTime;
  163. int nTargetId;
  164. DWORD dwTargetNpcID;
  165. }
  166. TOrdinSkillParam, * LPOrdinSkillParam;
  167. #endif //__SKILLDEF_H__