ObjectMonster.h
上传用户:tt_chan
上传日期:2009-12-03
资源大小:4523k
文件大小:6k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. #define _MONSTER_SANDMOB 3 // 籍厘牢
  2. #define _MONSTER_ROCKMAN 4 // 荤鲍
  3. #define _MONSTER_RON 9 // 沸
  4. #define _MONSTER_MINORNUMA 18 // 穿付
  5. #define _ANIMAL_DEER 21 // 荤娇
  6. #define _MONSTER_OMA 23 // 坷付
  7. #define _MONSTER_OMAKNIGHT 25 // 坷付傈荤
  8. #define _MONSTER_OMAWARRIOR 27 // 坷付侩荤
  9. #define _MONSTER_SPITSPIDER 30 // 魔芭固
  10. #define _MONSTER_STICK 39 // 侥牢檬
  11. #define _MONSTER_DUALAXE 42 // 街档尝秦榜
  12. #define _MONSTER_THONEDARK 74 // 促农
  13. #define _MONSTER_LIGHTZOMBI 78 // 扼捞飘醋 粱厚
  14. #define _MONSTER_WHITESKELETON 94 // 归榜
  15. #define _MONSTER_BEEQUEEN 124 // 厚阜盔面
  16. #define _MONSTER_BEE 125 // 厚阜面
  17. #define _MONSTER_MAGUNGSA 143 // 付泵荤
  18. #define _MONSTER_SCULTURE1 145 // 林付脚厘
  19. #define _MONSTER_SCULTURE2 148 // 林付脚厘
  20. #define _MONSTER_SCULTUREKING 152 // 林付空
  21. #define _MONSTER_ELFMONSTER 161 // 脚荐
  22. #define _MONSTER_ELFWARRIOR 162 // 脚荐 函脚饶
  23. #define LA_UNDEAD 1
  24. class CHolySeizeInfo
  25. {
  26. public:
  27. CEvent* Event[8];
  28. CWHList<CCharObject*> SeizeList;
  29. DWORD dwOpenTime;
  30. DWORD dwSeizeTime;
  31. };
  32. class CMonsterObject : public CNPCObject
  33. {
  34. public:
  35. int m_nRace;
  36. DWORD m_dwNextWalkTime;
  37. DWORD m_dwHitTime;
  38. DWORD m_dwNextHitTime;
  39. DWORD m_dwThinkTime;
  40. DWORD m_dwSearchEnemyTime;
  41. int m_nTargetX;
  42. int m_nTargetY;
  43. BYTE m_btTargetDir;
  44. DWORD m_dwRunAwayTime;
  45. DWORD m_dwRunAwayStart;
  46. DWORD m_dwExpHitTime;
  47. DWORD m_dwLastHitTime;
  48. DWORD m_nFindPathTime;
  49. BOOL m_fDupMode;
  50. BOOL m_fRunAwayMode;
  51. BOOL m_fNoAttackMode;
  52. BOOL m_fHasMission;
  53. int m_nMissionX;
  54. int m_nMissionY;
  55. int m_nFightExp;
  56. WORD m_wEscape;
  57. BYTE m_btLifeAttrib;
  58. BOOL m_fBoHolySeize;
  59. DWORD m_dwHolySeizeStart;
  60. DWORD m_dwHolySeizeTime;
  61. DWORD m_dwGold;
  62. CWHList<_LPTGENERALITEMRCD> m_xTGenItemRcd;
  63. CWHList<_LPTUSERITEMRCD> m_xTItemRcd;
  64. public:
  65. CMonsterObject();
  66. BOOL Think();
  67. BOOL Attack();
  68. BOOL IsFrontObject(CCharObject* pCharObject);
  69. void Struck(CCharObject* pHitter);
  70. void SetLastHiter(CCharObject* pHitter);
  71. void GotoTargetXY();
  72. BOOL TargetInAttackRange();
  73. BOOL TargetInSpitRange(int& nTargetDir);
  74. void Wondering();
  75. void MonsterNormalAttack();
  76. CMonsterObject* MakeClone(int nMonRace);
  77. void MakeHolySeize(DWORD dwHTime);
  78. void BreakHolySeize();
  79. void ComeOut();
  80. void ComeDown();
  81. BOOL CheckComeOut(int nValue);
  82. void Initialize();
  83. void InheritedRun();
  84. void KickException();
  85. void Die();
  86. void ScatterBagItems();
  87. void MakeGenItem(_LPTGENERALITEMRCD lptGenItemRcd);
  88. void MonGetRandomItems();
  89. virtual BOOL IsProperTarget(CCharObject* pCharObject);
  90. virtual void Operate();
  91. virtual BOOL AttackTarget();
  92. virtual BOOL WalkTo(int nDir);
  93. virtual void SearchViewRange();
  94. virtual void Run();
  95. virtual WORD GetThisCharColor();
  96. virtual void GetCharName(char *pszCharName);
  97. };
  98. class CGenneralMonObject : public CMonsterObject
  99. {
  100. public:
  101. virtual void Run();
  102. };
  103. class CAnimalObject : public CMonsterObject
  104. {
  105. public:
  106. BOOL m_fSkeleton;
  107. int m_nMeatQuality;
  108. int m_nBodyLeathery;
  109. };
  110. // 催
  111. class CChickenObject : public CAnimalObject
  112. {
  113. public:
  114. CChickenObject();
  115. virtual void Run();
  116. };
  117. // 林付脚厘, 林付龋过
  118. class CScultureObject : public CMonsterObject
  119. {
  120. public:
  121. CScultureObject();
  122. void MeltStone();
  123. void MeltStoneAll();
  124. virtual void Run();
  125. };
  126. // 林付空
  127. class CScultureKingObject : public CMonsterObject
  128. {
  129. protected:
  130. CWHList<CMonsterObject*> m_SlaveObjectList;
  131. int m_nDangerLevel;
  132. public:
  133. CScultureKingObject();
  134. void MeltStone();
  135. void CallSlave();
  136. virtual void Run();
  137. };
  138. // 厚阜盔面
  139. class CBeeQueen : public CMonsterObject
  140. {
  141. protected:
  142. CWHList<CMonsterObject*> m_SlaveObjectList;
  143. public:
  144. CBeeQueen();
  145. void CallSlave();
  146. void MakeChildBee();
  147. virtual void Operate();
  148. virtual void Run();
  149. };
  150. // 街档尝秦榜, 付泵荤
  151. class CDualAxeObject : public CMonsterObject
  152. {
  153. protected:
  154. int m_nChainShot;
  155. int m_nChainShotCount;
  156. public:
  157. CDualAxeObject(int nChainShotCount = 2);
  158. void FlyAxeAttack(CCharObject* pTargetObject);
  159. virtual BOOL AttackTarget();
  160. virtual void Run();
  161. };
  162. // 扼捞飘葫 粱厚
  163. class CLightingZombiObject : public CMonsterObject
  164. {    
  165. public:
  166. CLightingZombiObject()
  167. {
  168. m_dwSearchTick = 1500 + rand() % 1500;
  169. }
  170. void LightingAttack(int nDir);
  171. virtual void Run();
  172. };
  173. // 沸
  174. class CRonObject : public CGenneralMonObject
  175. {
  176. public:
  177. void AroundAttack();
  178. virtual void Run();
  179. };
  180. // 窍鞭 穿付
  181. class CMinorNumaObject : public CMonsterObject
  182. {
  183. public:
  184. virtual void Run();
  185. };
  186. // 坷付 矫府令
  187. class COmaObject : public CMonsterObject
  188. {
  189. public:
  190. virtual void Run();
  191. };
  192. // 侥牢檬
  193. class CStickObject : public CMonsterObject
  194. {
  195. public:
  196. CStickObject();
  197. virtual void Run();
  198. };
  199. // 葛贰 鲍拱 (荤鲍)
  200. class CSandMobObject : public CMonsterObject
  201. {
  202. public:
  203. DWORD m_dwAppearStart;
  204. CSandMobObject();
  205. virtual void Run();
  206. };
  207. // 籍厘牢
  208. class CRockManObject : public CMonsterObject
  209. {
  210. public:
  211. CRockManObject();
  212. virtual void Run();
  213. };
  214. // 归榜
  215. class CWhiteSkeleton : public CGenneralMonObject
  216. {
  217. protected:
  218. BOOL m_fIsFirst;
  219. public:
  220. CWhiteSkeleton();
  221. void ResetSkeleton();
  222. virtual void Run();
  223. };
  224. // 魔芭固
  225. class CSpitSpiderMonster : public CGenneralMonObject
  226. {
  227. public:
  228. CSpitSpiderMonster();
  229. void SpitAttack(int nDir);
  230. virtual BOOL AttackTarget();
  231. };
  232. // 脚荐 函脚傈
  233. class CElfMonster : public CMonsterObject
  234. {
  235. protected:
  236. BOOL m_fIsFirst;
  237. public:
  238. CElfMonster();
  239. void AppearNow();
  240. void ResetElfMon();
  241. virtual void Run();
  242. };
  243. // 脚荐 函脚饶
  244. class CElfWarriorMonster : public CSpitSpiderMonster
  245. {
  246. protected:
  247. BOOL m_fIsFirst;
  248. public:
  249. CElfWarriorMonster();
  250. void AppearNow();
  251. void ResetElfMon();
  252. virtual void Run();
  253. };