activeobject.h
上传用户:garry_shen
上传日期:2015-04-15
资源大小:45647k
文件大小:5k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. #if !defined(AFX_ACTIVEOBJECT_H__E2D1FB60_8797_11D3_BA84_0000E8A021D8__INCLUDED_)
  2. #define AFX_ACTIVEOBJECT_H__E2D1FB60_8797_11D3_BA84_0000E8A021D8__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif
  6. #include "common.h"
  7. class CSkill;
  8. class CWeapon;
  9. class CGoods;
  10. class CCondition;
  11. #define HEALINGGAP 15
  12. #define AOS_none 0
  13. #define AOS_act_wait 0x100
  14. #define AOS_act_sleep 0x200
  15. #define AOS_act_dead 0x400
  16. #define AOS_act_fight 0x1000
  17. #define AOS_act_facesb 0x2000
  18. #define AOS_act_changemap 0x4000
  19. #define AOS_facesb ((AOS_act_facesb)|1)
  20. #define AOS_changemap ((AOS_act_changemap)|2)
  21. #define AOS_hit ((AOS_act_fight)|10)
  22. #define AOS_fight ((AOS_act_fight)|11)
  23. #define AOS_kill ((AOS_act_fight)|12)
  24. #define AOS_escape ((AOS_act_fight)|13)
  25. #define AOS_dazuo ((AOS_act_wait)|20)
  26. #define AOS_tuna ((AOS_act_wait)|21)
  27. #define AOS_unconcious (AOS_act_sleep|AOS_act_wait|50)
  28. #define AOS_sleep (AOS_act_sleep|AOS_act_wait|51)
  29. #define AOS_dead (AOS_act_dead|AOS_act_sleep|AOS_act_wait|100)
  30. typedef struct tagObjectSkill
  31. {
  32. int nScore;
  33. int nLevel;
  34. CString szMapping;
  35. CSkill * lpSkill;
  36. tagObjectSkill()
  37. {
  38. nScore = 0;
  39. nLevel = 0;
  40. szMapping = "";
  41. lpSkill = NULL;
  42. }
  43. }TObjectSkill,*PObjectSkill;
  44. TObjectSkill * GetTObjSkill(CString szEName, int nType, int nCanMap, 
  45.  int level = 0, int score = 0, CString szMapping = "");
  46. typedef struct tagPawn{
  47. CString szCName;
  48. CString szEName;
  49. int nKind;
  50. int  nYear;
  51. int  nMonth;
  52. int  nDay;
  53. }TPawn;
  54. typedef struct tagMixed
  55. {
  56. BOOL bIsInt;
  57. int nValue;
  58. CString szValue;
  59. tagMixed()
  60. {
  61. bIsInt = -1;
  62. }
  63. }TMixed;
  64. typedef struct tagTempVal
  65. {
  66. CString szName;
  67. BOOL bIsInt;
  68. int nValue;
  69. CString szValue;
  70. tagTempVal(){
  71. szName = "";
  72. bIsInt = -1;
  73. }
  74. }TTempVal;
  75. class CActiveObject  
  76. {
  77. public:
  78. char szCheck[8];
  79. CString szCName;
  80. CString szEName;
  81. CString szNickName;
  82. CString szTilte;
  83. CString szXFileName;
  84. CString szFamily;
  85. CString szTeacher;
  86. CString szPerson;
  87. CString szRoom;
  88. CString szSex;
  89. int nAge;
  90. int nShen;
  91. int nDamage;
  92. int nStr;
  93. int nInt;
  94. int nCon;
  95. int nDex;
  96. int nEff_qi;
  97. int nMax_qi;
  98. int nEff_jing;
  99. int nMax_jing;
  100. int nEff_jingli;
  101. int nMax_jingli;
  102. int nAdd_Jingli;
  103. int nEff_force;
  104. int nMax_force;
  105. int nAdd_force;
  106. int nCombat_exp;
  107. int nQianNeng;
  108. int nScore;
  109. int nGeneration;
  110. int nMoney;
  111. int nStatus;
  112. int nRefile[10];
  113. CWeapon *lpWeapon;
  114. int nBusy;
  115. int nOther;
  116. int g_HasEvent;
  117. int nEscapeNow;
  118. int nShootint;
  119. BOOL bPlayer;
  120. CTime timeDead;
  121. BOOL bNoHealing;
  122. POSITION pMapPosite;
  123. CList <TObjectSkill *,TObjectSkill *>listskill;
  124. CList <CGoods *,CGoods *>listequip;
  125. CList <CGoods *,CGoods *>listrentequip;
  126. CList <TPawn *,TPawn *> listpawngoods;
  127. CList <CActiveObject *,CActiveObject *>listfightopp;
  128. public:
  129. CActiveObject();
  130. virtual ~CActiveObject();
  131. void SetSkill(CString szEName, int nLevel = 0, int nScore = 0, CString szMapName = "");
  132. PObjectSkill GetTSkill(CString SkillName);
  133. int GetSkillLevel(CString SkillName);
  134. CString GetSkillMap(CString SkillName);
  135. CString GetAttackBaseSkill();
  136. TRetInfo RunSkillCom(CString szSkill, CString szCom, CActiveObject * lpTarget);
  137. void CheckGoods();
  138. void CheckGoods(POSITION pos);
  139. CGoods * GetGoods(char *szName);
  140. POSITION GetGoods(CGoods * lpFGoods);
  141. CGoods * GetClassGoods(int nKinds);
  142. TRetInfo RunGoodsCom(CString szGoods, CString szCom, CActiveObject * lpTarget);
  143. CString AddGoods(CGoods *lpEquip);
  144. CString SubGoods(CString szName);
  145. CString SetGoods(CGoods *lpEquip);
  146. int GetGoodCount(char *szName);
  147. int GetGoodIsNotArmedCount(char *szName);
  148. CGoods* GetGoodIsNotArmed(char *szName);
  149. CString SubGoodWhichIsNotArmed(char *szName);
  150. void DeleteTemp(CString szName);
  151. void SetTemp(CString szName, TMixed mixVal);
  152. void SetTemp(CString szName, int nValue);
  153. void SetTemp(CString szName, CString szValue);
  154. TMixed GetTemp(CString szName);
  155. void AddTemp(CString szName, int nValue);
  156. virtual void HitOb(CActiveObject *you, int &damage_bonus, CString &strRet, int nWhere);
  157. void SendMsgToAll(CString sMsg, CActiveObject *you = NULL);
  158. int  SendMsg(CString szMsg);
  159. virtual void DoHeartBeat();
  160. void ApplyCondition(CCondition * lpCondition);
  161. void ApplyCondition(int nKind, CString szName, int nVal, int nPower = 0);
  162. int  QueryCondition(CString szName);
  163. BOOL DeleteCondition(CString szName);
  164. int  GetMaxQi();
  165. bool ReceiveCure(int nQi=1);
  166. int  GetMaxJing();
  167. bool ReceiveJing(int nJing=1);
  168. void Unconcious(int nTime = 0);
  169. void Wake(void);
  170. void Die(void);
  171. void ReportStatusNum();
  172. private:
  173. POSITION GetTTempPos(CString szName);
  174. CList <TTempVal *, TTempVal *>listtempval;
  175. POSITION GetConditionPos(CString szName);
  176. void DoAction();
  177. void UpdataCondition(CCondition * lpCondition);
  178. int UpdataPoison(CCondition * lpCondition);
  179. CList <CCondition *, CCondition *>listcondition;
  180. int nTick;
  181. private:
  182. void RemoveAllEnemy();
  183. };
  184. BOOL DoAttack(CActiveObject *me, CActiveObject *you, CString &strRet, CString &szMsg);
  185. BOOL Improve(CActiveObject *me, PObjectSkill lpTSkill, int number=1);
  186. BOOL DoErrorLog(CActiveObject *kme, CActiveObject *kyou,int killlive);
  187. bool DoEscape(CActiveObject *me, CString &strMapCName, CString &strMapEName);
  188. #endif