ROAView.cpp
上传用户:tianheyiqi
上传日期:2010-04-16
资源大小:282k
文件大小:7k
源码类别:

外挂编程

开发平台:

Visual C++

  1. // ROAView.cpp : implementation of the CROAView class
  2. //
  3. #include "stdafx.h"
  4. #include "ROA.h"
  5. #include "ROADoc.h"
  6. #include "ROAView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CROAView
  14. IMPLEMENT_DYNCREATE(CROAView, CRichEditView)
  15. BEGIN_MESSAGE_MAP(CROAView, CRichEditView)
  16. //{{AFX_MSG_MAP(CROAView)
  17. ON_COMMAND(ID_RELOAD, OnReload)
  18. //}}AFX_MSG_MAP
  19. END_MESSAGE_MAP()
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CROAView construction/destruction
  22. CROAView::CROAView()
  23. {
  24. // TODO: add construction code here
  25. }
  26. CROAView::~CROAView()
  27. {
  28. }
  29. BOOL CROAView::PreCreateWindow(CREATESTRUCT& cs)
  30. {
  31. // TODO: Modify the Window class or styles here by modifying
  32. //  the CREATESTRUCT cs
  33. cs.style |= (WS_VSCROLL);
  34. cs.style |= (ES_AUTOHSCROLL|WS_HSCROLL);
  35. cs.style |= (ES_READONLY|ES_MULTILINE);
  36. return(CRichEditView::PreCreateWindow(cs));
  37. }
  38. /////////////////////////////////////////////////////////////////////////////
  39. // CROAView drawing
  40. void CROAView::OnDraw(CDC* pDC)
  41. {
  42. CROADoc* pDoc = GetDocument();
  43. ASSERT_VALID(pDoc);
  44. // TODO: add draw code for native data here
  45. }
  46. /////////////////////////////////////////////////////////////////////////////
  47. // CROAView diagnostics
  48. #ifdef _DEBUG
  49. void CROAView::AssertValid() const
  50. {
  51. CRichEditView::AssertValid();
  52. }
  53. void CROAView::Dump(CDumpContext& dc) const
  54. {
  55. CRichEditView::Dump(dc);
  56. }
  57. CROADoc* CROAView::GetDocument() // non-debug version is inline
  58. {
  59. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CROADoc)));
  60. return (CROADoc*)m_pDocument;
  61. }
  62. #endif //_DEBUG
  63. /////////////////////////////////////////////////////////////////////////////
  64. // CROAView message handlers
  65. extern CROAApp theApp;
  66. void CROAView::OnInitialUpdate() 
  67. {
  68. CRichEditView::OnInitialUpdate();
  69. // TODO: Add your specialized code here and/or call the base class
  70. m_nWordWrap = WrapNone;
  71. WrapChanged();
  72. AddMessage("创建输出信息窗口......", eLogDebug, false);
  73. Reload();
  74. theApp.Start();
  75. }
  76. void CROAView::Reload()
  77. {
  78. BOOL bDone;
  79. utlLogout2("载入[物品信息]......", eLogCommon, false);
  80. bDone = mapItem.init(ROA_MAP_ITEMS, "物品");
  81. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  82. utlLogout2("载入[物品类型信息]......", eLogCommon, false);
  83. bDone = mapItemType.init(ROA_MAP_ITEMTYPES, "物品类型");
  84. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  85. utlLogout2("载入[装备类型信息]......", eLogCommon, false);
  86. bDone = mapEquipType.init(ROA_MAP_EQUIPTYPES, "装备类型");
  87. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  88. utlLogout2("载入[怪物信息]......", eLogCommon, false);
  89. bDone = mapMonster.init(ROA_MAP_MONSTER, "怪物信息");
  90. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  91. utlLogout2("载入[MVP怪物信息]......", eLogCommon, false);
  92. bDone = mapMvpMonster.init(ROA_MAP_MVPMONSTER, "MVP怪物信息");
  93. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  94. utlLogout2("载入[地图名称信息]......", eLogCommon, false);
  95. bDone = mapMapName.init(ROA_MAP_MAPNAME, "地图名");
  96. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  97. utlLogout2("载入[职业名称信息]......", eLogCommon, false);
  98. bDone = mapJob.init(ROA_MAP_JOB , "职业");
  99. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  100. utlLogout2("载入[性别信息]......", eLogCommon, false);
  101. bDone = mapSex.init(ROA_MAP_SEX , "性别");
  102. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  103. utlLogout2("载入[技能信息]......", eLogCommon, false);
  104. bDone = mapSkill.init(ROA_MAP_SKILL, "技能");
  105. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  106. utlLogout2("载入[地面状态信息]......", eLogCommon, false);
  107. bDone = mapStatus011f.init(ROA_MAP_STATUS011F, "地面状态");
  108. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  109. utlLogout2("载入[角色异常状态信息]......", eLogCommon, false);
  110. bDone = mapStatus0119.init(ROA_MAP_STATUS0119, "角色异常状态");
  111. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  112. utlLogout2("载入[GM帐号信息]......", eLogCommon, false);
  113. bDone = mapAvoidAid.init(ROA_AVOID_AIDS, "GM帐号");
  114. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  115. utlLogout2("载入[属性信息]......", eLogCommon, false);
  116. bDone = mapElements.init(ROA_MAP_ELEMENTS, "属性");
  117. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  118. utlLogout2("载入[技能状态]......", eLogCommon, false);
  119. bDone = mapSkillsst.init(ROA_MAP_SKILLSST, "技能状态");
  120. utlLogout3(bDone?"成功":"失败", eLogCommon, false);
  121. utlLoadBossInfo();
  122. }
  123. void CROAView::AddMessage(LPCTSTR lpszMsg, LOG_LEVEL level, BOOL bAi)
  124. {
  125. CTime time = CTime::GetCurrentTime();
  126. CString strMsg, strTemp;
  127. strMsg.Format( _T("%s[%02d/%02d %02d:%02d:%02d] %srn"), strTemp, time.GetMonth(), time.GetDay(),
  128. time.GetHour(), time.GetMinute(), time.GetSecond(), lpszMsg );
  129. COLORREF color;
  130. switch(level)
  131. {
  132. case eLogError:
  133. color = RGB(255, 0, 0);
  134. break;
  135. case eLogCommon:
  136. color = RGB(0, 0, 0);
  137. break;
  138. case eLogInfo:
  139. color = RGB(0, 128, 0);
  140. break;
  141. default:
  142. color = RGB(128, 128, 0);
  143. break;
  144. }
  145. AddColorText(strMsg, color, bAi);
  146. return;
  147. }
  148. void CROAView::AddMessage2(LPCTSTR lpszMsg, LOG_LEVEL level, BOOL bAi)
  149. {
  150. CTime time = CTime::GetCurrentTime();
  151. CString strMsg, strTemp;
  152. strMsg.Format( _T("%s[%02d/%02d %02d:%02d:%02d] %s"), strTemp, time.GetMonth(), time.GetDay(),
  153. time.GetHour(), time.GetMinute(), time.GetSecond(), lpszMsg );
  154. COLORREF color;
  155. switch(level)
  156. {
  157. case eLogError:
  158. color = RGB(255, 0, 0);
  159. break;
  160. case eLogCommon:
  161. color = RGB(0, 0, 0);
  162. break;
  163. case eLogInfo:
  164. color = RGB(0, 128, 0);
  165. break;
  166. default:
  167. color = RGB(128, 128, 0);
  168. break;
  169. }
  170. AddColorText(strMsg, color, bAi);
  171. return;
  172. }
  173. void CROAView::AddMessage3(LPCTSTR lpszMsg, LOG_LEVEL level, BOOL bAi)
  174. {
  175. CString strMsg;
  176. strMsg = lpszMsg;
  177. strMsg += "n";
  178. COLORREF color;
  179. switch(level)
  180. {
  181. case eLogError:
  182. color = RGB(255, 0, 0);
  183. break;
  184. case eLogCommon:
  185. color = RGB(0, 0, 0);
  186. break;
  187. case eLogInfo:
  188. color = RGB(0, 128, 0);
  189. break;
  190. default:
  191. color = RGB(128, 128, 0);
  192. break;
  193. }
  194. AddColorText(strMsg, color, bAi);
  195. return;
  196. }
  197. void CROAView::AddColorText(LPCTSTR lpszMsg, COLORREF color, BOOL bAi)
  198. {
  199. static CRichEditCtrl& ctrl = GetRichEditCtrl();
  200. if(!::IsWindow(ctrl))
  201. return;
  202. CHARFORMAT cf;
  203. cf.cbSize = sizeof(CHARFORMAT);
  204. cf.yHeight = 180;
  205. cf.dwMask = CFM_COLOR | CFM_SIZE | CFM_FACE | CFM_BOLD;
  206. cf.dwEffects = (bAi)?CFE_BOLD:0;
  207. cf.crTextColor = color;
  208. strcpy(cf.szFaceName, _T("Courie New"));
  209. ctrl.SetSel(ctrl.GetWindowTextLength(), ctrl.GetWindowTextLength());
  210. ctrl.SetSelectionCharFormat(cf);
  211. ctrl.ReplaceSel(lpszMsg);
  212. /* SCROLLINFO info;
  213. memset(&info, 0, sizeof(SCROLLINFO));
  214. info.fMask = SIF_ALL;
  215. if(ctrl.GetScrollInfo(SB_VERT, &info))
  216. {
  217. if(info.nMax == info.nPos)
  218. ctrl.LineScroll(1);
  219. }
  220. */
  221. return;
  222. }
  223. void CROAView::OnReload() 
  224. {
  225. Reload();
  226. }