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

游戏引擎

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. #include "xmudClient.h"
  3. #include "MenuCreateNew.h"
  4. #include "CommandCheck.h"
  5. #include "D3DRMScreen.h"
  6. extern char g_tszPathName[256];
  7. extern rmfullglobals myglobs;
  8. extern CRITICAL_SECTION csAnimation;
  9. extern CList <animationCallbackArgs *, animationCallbackArgs *> animationlist;
  10. extern CList<CPlayerInfo*,CPlayerInfo*>playerlist;
  11. #define action_msg '1'
  12. #define dodge_msg '2'
  13. #define parry_msg '3'
  14. #define unarmed_parry_msg '4'
  15. #define fight_status_msg '5'
  16. #define kill_status_msg '6'
  17. #define winner_msg '7'
  18. #define add_force_msg '8'
  19. #define guard_msg '9'
  20. #define damage_msg 'a'
  21. #define catch_hunt_msg 'b'
  22. CString GetChangedMsg(CString &OrgMsg)
  23. {
  24. CStringList strList;
  25. CString szColor = "$506$";//szGreenHigt
  26. CString szCur;
  27. CString parm = ",";
  28. //だ秆
  29. char *ps=strtok((char *)(LPCTSTR)OrgMsg, (const char*)parm);
  30. strList.AddTail(ps);
  31. for(;;)
  32. {
  33. ps=strtok(NULL,(const char*)parm);
  34. if(ps==NULL)break;
  35. strList.AddTail(ps);
  36. }
  37. // OrgMsg = "[error]";
  38. OrgMsg = "薄猵ぃМ";
  39. CStdioFile fMsg;
  40. CString strFind;
  41. int nCount,nCur;
  42. szCur = strList.GetHead();
  43. switch(szCur[0])
  44. {
  45. case action_msg:
  46. if(strFind.IsEmpty())
  47. strFind = "[action]";
  48. case dodge_msg:
  49. if(strFind.IsEmpty())
  50. strFind = "[dodge_msg]";
  51. case parry_msg:
  52. if(strFind.IsEmpty())
  53. strFind = "[parry_msg]";
  54. case unarmed_parry_msg:
  55. if(strFind.IsEmpty())
  56. strFind = "[unarmed_parry_msg]";
  57. if(strList.GetCount() < 3) break;
  58. szCur = g_tszPathName;
  59. szCur += "\MudData\Msg\";
  60. szCur += strList.GetAt(strList.FindIndex(1));
  61. szCur += ".msg";
  62. if(!fMsg.Open(szCur, CFile::modeRead))
  63. {
  64. OrgMsg.Format("Open File %s error!", szCur);
  65. break;
  66. }
  67. while((fMsg.ReadString(szCur))&&(szCur != strFind));
  68. if(szCur != strFind) break;
  69. nCount = atoi(strList.GetAt(strList.FindIndex(2))) + 1;
  70. while(nCount--)
  71. fMsg.ReadString(szCur);
  72. fMsg.Close();
  73. OrgMsg = szCur;
  74. break;
  75. case fight_status_msg:
  76. if(strFind.IsEmpty())
  77. strFind = "[fight_status_msg]";
  78. case kill_status_msg:
  79. if(strFind.IsEmpty())
  80. strFind = "[kill_status_msg]";
  81. case add_force_msg:
  82. if(strFind.IsEmpty())
  83. strFind = "[add_force_msg]";
  84. if(strList.GetCount() < 2) break;
  85. szCur = g_tszPathName;
  86. szCur += "\MudData\msg.txt";
  87. if(!fMsg.Open(szCur, CFile::modeRead))
  88. {
  89. OrgMsg.Format("Open File [%s] error!", szCur);
  90. break;
  91. }
  92. while((fMsg.ReadString(szCur))&&(szCur != strFind));
  93. if(szCur != strFind) break;
  94. nCount = atoi(strList.GetAt(strList.FindIndex(1)));
  95. if(nCount <0 ) break;
  96. do {
  97. fMsg.ReadString(szCur);
  98. strList.RemoveAll();
  99. ps=strtok((char *)(LPCTSTR)szCur, (const char*)parm);
  100. strList.AddTail(ps);
  101. for(;;)
  102. {
  103. ps=strtok(NULL,(const char*)parm);
  104. if(ps==NULL)break;
  105. strList.AddTail(ps);
  106. }
  107. nCur = atoi(strList.GetHead());
  108. }while(nCur > nCount);
  109. fMsg.Close();
  110. if(strList.GetCount() < 3) break;
  111. szColor = strList.GetAt(strList.FindIndex(1));
  112. OrgMsg = strList.GetAt(strList.FindIndex(2));
  113. break;
  114. case winner_msg:
  115. if(strFind.IsEmpty())
  116. strFind = "[winner_msg]";
  117. case catch_hunt_msg:
  118. if(strFind.IsEmpty())
  119. strFind = "[catch_hunt_msg]";
  120. case guard_msg:
  121. if(strFind.IsEmpty())
  122. strFind = "[guard_msg]";
  123. if(strList.GetCount() < 2) break;
  124. szCur = g_tszPathName;
  125. szCur += "\MudData\msg.txt";
  126. if(!fMsg.Open(szCur, CFile::modeRead))
  127. {
  128. OrgMsg.Format("Open File [%s] error!", szCur);
  129. break;
  130. }
  131. while((fMsg.ReadString(szCur))&&(szCur != strFind));
  132. if(szCur != strFind) break;
  133. nCount = atoi(strList.GetAt(strList.FindIndex(1)))+1;
  134. if(nCount <=0 ) break;
  135. while(nCount--)
  136. fMsg.ReadString(szCur);
  137. fMsg.Close();
  138. strList.RemoveAll();
  139. ps=strtok((char *)(LPCTSTR)szCur, (const char*)parm);
  140. strList.AddTail(ps);
  141. for(;;)
  142. {
  143. ps=strtok(NULL,(const char*)parm);
  144. if(ps==NULL)break;
  145. strList.AddTail(ps);
  146. }
  147. if(strList.GetCount() < 2) break;
  148. szColor = strList.GetAt(strList.FindIndex(0));
  149. OrgMsg = strList.GetAt(strList.FindIndex(1));
  150. break;
  151. case damage_msg:
  152. if(strList.GetCount() < 3) break;
  153. szCur = g_tszPathName;
  154. szCur += "\MudData\msg.txt";
  155. if(!fMsg.Open(szCur, CFile::modeRead))
  156. {
  157. OrgMsg.Format("Open File [%s] error!", szCur);
  158. break;
  159. }
  160. while((fMsg.ReadString(szCur))&&(szCur != "[damage_msg]"));
  161. if(szCur != "[damage_msg]") break;
  162. strFind = strList.GetAt(strList.FindIndex(1));
  163. nCount = atoi(strList.GetAt(strList.FindIndex(2)));
  164. if(nCount <=0 ) break;
  165. while((fMsg.ReadString(szCur))&&(szCur != strFind)&&(szCur != "default"));
  166. if((szCur != strFind)&&(szCur != "default")) break;
  167. CString szCur2;
  168. szCur2 = szCur;
  169. do {
  170. fMsg.ReadString(szCur);
  171. strList.RemoveAll();
  172. ps=strtok((char *)(LPCTSTR)szCur, (const char*)parm);
  173. strList.AddTail(ps);
  174. for(;;){
  175. ps=strtok(NULL,(const char*)parm);
  176. if(ps==NULL)break;
  177. strList.AddTail(ps);
  178. }
  179. nCur = atoi(strList.GetHead());
  180. }while(nCur < nCount);
  181. fMsg.Close();
  182. if(strList.GetCount() < 2) break;
  183. OrgMsg = strList.GetAt(strList.FindIndex(1));
  184. if(szCur2 == "default")
  185. {
  186. OrgMsg += strFind;
  187. OrgMsg += "