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

游戏引擎

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. #include "XMudClient.h"
  3. #include "CommandCheck.h"
  4. #include "MenuCreateNew.h"
  5. #include "MenuLoadOldPlay.h"
  6. #include "CommunicateMsg.h"
  7. #include "midi.h"
  8. #include "faceplate.h"
  9. #include "CmdFunction.h"
  10. #include "InitInternet.h"
  11. #include "ChessWnd.h"
  12. #include "MainScreen.h"
  13. #include "3DFunction.h"
  14. #include "D3DRMScreen.h"
  15. #include "MyMusic.h"
  16. extern LPDIRECT3DRMFRAME3 g_lpplayer;
  17. extern LPDIRECT3DRMFRAME3 g_sFrame;
  18. extern D3DVECTOR g_PlayAndCameraPos;
  19. extern CList <animationCallbackArgs *, animationCallbackArgs *> animationlist;
  20. extern PathInfo info;
  21. extern int g_playerState;
  22. extern LPDIRECT3DRM3 g_lpD3DRM;
  23. extern rmfullglobals myglobs;
  24. extern int g_nGameState;
  25. extern CMenuCreateNew m_MenuCreateNew;
  26. extern CMenuLoadOldPlay m_MenuLoadOldPlay;
  27. extern SOCKET hLCltForRSvrSock;
  28. extern BOOL g_bGetInputMessage;
  29. extern CList<CPlayerInfo*,CPlayerInfo*>playerlist;
  30. extern D3DVECTOR g_lightgammer;
  31. extern LPDIRECT3DRMLIGHT g_parallel;
  32. extern CMainScreen m_MainScreen;
  33. extern int playershout = 0;
  34. CStringList g_strlistChannel;
  35. CStringList g_strlistSelfMsg;
  36. CStringList g_strlistMesssage;
  37. CStringList g_strlistPlayerOnline;
  38. CStringList g_strlistOnline;
  39. CStringList g_equiprentlist;
  40. CStringList ListCom;
  41. TOldMsg m_OldMsg;
  42. extern long GetParameterLength(CString MyString);
  43. extern BOOL g_Clear3DMessage[2];
  44. extern BOOL bSelectDefault;
  45. extern void SaveConfigFile(void);
  46. void SendShowMsg(char *ps)
  47. {
  48. long ExLength=0;
  49. CString szRecMess, szTmp, szName;
  50. szRecMess = ps;
  51. szTmp = szName = szRecMess.Left(5);
  52. if(!stricmp(szTmp,szNewColor))
  53. {
  54. ExLength = GetParameterLength(szRecMess);
  55. szTmp = szName = szRecMess.Left(5+ExLength);
  56. }
  57. for(int i=5+ExLength;i<szRecMess.GetLength();i++){
  58. register unsigned char sTmpCh;
  59. sTmpCh = szRecMess.GetAt(i);
  60. szTmp += sTmpCh;
  61. if(IsDBCSLeadByte(sTmpCh)){
  62. if(++i<szRecMess.GetLength()){
  63. szTmp += szRecMess.GetAt(i);
  64. }else{
  65. break;
  66. }
  67. }
  68. if(szTmp.GetLength() >= 79){
  69. if(g_strlistMesssage.GetCount() > 17){
  70. g_strlistMesssage.RemoveHead();
  71. }
  72. g_strlistMesssage.AddTail(szTmp);
  73. szTmp = szName;
  74. }
  75. }
  76. if(szTmp.GetLength() > 5+ExLength){
  77. if(g_strlistMesssage.GetCount() > 17){
  78. g_strlistMesssage.RemoveHead();
  79. }
  80. g_strlistMesssage.AddTail(szTmp);
  81. szTmp = szName;
  82. }
  83. g_Clear3DMessage[0]=TRUE;
  84. g_Clear3DMessage[1]=TRUE;
  85. }
  86. void AddSelfMsg(CString ps)
  87. {
  88. CString szRecMess, szTmp, szName;
  89. int Scroll = 0;
  90. szRecMess = ps; 
  91. szTmp = szName = szRecMess.Left(5);
  92. for(int i=5;i<szRecMess.GetLength();i++)
  93. {
  94. register unsigned char sTmpCh;
  95. sTmpCh = szRecMess.GetAt(i);
  96. szTmp += sTmpCh;
  97. if(IsDBCSLeadByte(sTmpCh))
  98. {
  99. if(++i<szRecMess.GetLength())
  100. {
  101. szTmp += szRecMess.GetAt(i);
  102. }
  103. else
  104. {
  105. break;
  106. }
  107. }
  108. if(szTmp.GetLength() >= 79)
  109. {
  110. if(g_strlistSelfMsg.GetCount() > 99)
  111. {
  112. g_strlistSelfMsg.RemoveHead();
  113. }
  114. g_strlistSelfMsg.AddTail(szTmp);
  115. szTmp = szName;
  116. Scroll++;
  117. }
  118. }
  119. if(szTmp.GetLength() > 5)
  120. {
  121. if(g_strlistSelfMsg.GetCount() > 99)
  122. {
  123. g_strlistSelfMsg.RemoveHead();
  124. }
  125. g_strlistSelfMsg.AddTail(szTmp);
  126. szTmp = szName;
  127. Scroll++;
  128. }
  129. m_MainScreen.mTalkFD.bReDraw[0]=TRUE;
  130. m_MainScreen.mTalkFD.bReDraw[1]=TRUE;
  131. m_MainScreen.DisplaySelfMessage(TRUE);
  132. }
  133. void GetCommandMsg(CString strMsg)
  134. {
  135. if(strMsg.IsEmpty())
  136. return;
  137. switch(g_nGameState){
  138. case GAME_CREATEPLAYER:
  139. if(g_bGetInputMessage){
  140. if(strMsg.IsEmpty()){
  141. g_bGetInputMessage = FALSE;
  142. return;
  143. }
  144. m_MenuCreateNew.CreateNewInputMsg(strMsg);
  145. }
  146. break;
  147. default:
  148. break;
  149. }
  150. return;
  151. }
  152. void InitCommandList()
  153. {
  154. ListCom.AddTail("JoinChannel");
  155. ListCom.AddTail("Channel");
  156. ListCom.AddTail("Talk");
  157. ListCom.AddTail("Shout");
  158. ListCom.AddTail("Tell");
  159. ListCom.AddTail("Who-l");
  160. ListCom.AddTail("Who");
  161. ListCom.AddTail("LeaveChannel");
  162. ListCom.AddTail("DefendTell");
  163. ListCom.AddTail("DefendDel");
  164. ListCom.AddTail("GetOut");
  165. ListCom.AddTail("Ask");
  166. //ListCom.AddTail("Look");
  167. ListCom.AddTail("Apprentice");
  168. ListCom.AddTail("Skill");
  169. ListCom.AddTail("Fight");
  170. ListCom.AddTail("Kill");
  171. ListCom.AddTail("DaZuo");
  172. ListCom.AddTail("TuNa");
  173. ListCom.AddTail("YunGong");
  174. ListCom.AddTail("Mapping");
  175. ListCom.AddTail("Escape");
  176. ListCom.AddTail("Restart");
  177. ListCom.AddTail("Use");
  178. ListCom.AddTail("Look");
  179. ListCom.AddTail("Give");
  180. ListCom.AddTail("Drop");
  181. ListCom.AddTail("Arm");
  182. ListCom.AddTail("Unarm");
  183. ListCom.AddTail("Practice");
  184. ListCom.AddTail("JoinTeam");
  185. ListCom.AddTail("LeaveTeam");
  186. ListCom.AddTail("Who-t");
  187. ListCom.AddTail("Format");
  188. ListCom.AddTail("Unformat");
  189. ListCom.AddTail("Assign");
  190. ListCom.AddTail("Cancel");
  191. ListCom.AddTail("NewLeader");
  192. ListCom.AddTail("NewFamily");
  193. ListCom.AddTail("NewNPC");
  194. ListCom.AddTail("SetSkill");
  195. ListCom.AddTail("Exit");
  196. ListCom.AddTail("MusicOff");
  197. ListCom.AddTail("MusicOn");
  198. ListCom.AddTail("+");
  199. ListCom.AddTail("-");
  200. ListCom.AddTail("SwitchPort");
  201. ListCom.AddTail("AcceptFight");
  202. ListCom.AddTail("RejectFight");
  203. ListCom.AddTail("Save");
  204. ListCom.AddTail("Help");
  205. ListCom.AddTail("Rent");
  206. }
  207. void CheckInputCom(char * szSendMsg)
  208. {
  209. CComApprentice m_ComApprentice;
  210. CPlayerInfo *lpPlayerInfo;
  211. CChessWnd m_ChessWnd;
  212. lpPlayerInfo = playerlist.GetHead();
  213. CStringList strls;
  214. CString parm,strtmp;
  215. CString msg;
  216. char *ps;
  217. int i = 0,j;
  218. msg=(LPSTR)DONT_KNOW;
  219. parm=CString(" ntr");
  220. ps=strtok(szSendMsg,(const char*)parm);
  221. while (ps) {
  222. strls.AddTail(ps);
  223. ps=strtok(NULL,(const char*)parm);
  224. }
  225. if(strls.GetCount() < 1) return;
  226. strtmp=strls.GetHead();
  227. if(strtmp[0] == ':') {
  228. if( (GetTickCount() - myglobs.nWaitNext) > 1000 )
  229. {
  230. POSITION pos;
  231. CMainScreen::TEmote * lpEmote;
  232. strtmp = strtmp.Right(strtmp.GetLength()-1);
  233. pos = m_MainScreen.listAllEmote.GetHeadPosition();
  234. while (pos != NULL)
  235. {
  236. lpEmote = m_MainScreen.listAllEmote.GetNext(pos);
  237. if(lpEmote->szEmote == strtmp)
  238. {
  239. pos = m_MainScreen.listAllEmote.GetHeadPosition();
  240. break;
  241. }
  242. }
  243. if(pos != NULL) {
  244. bool bErr = false;
  245. CString szName;
  246. szName.Empty();
  247. if(strls.GetCount() == 1) {
  248. if(!(lpEmote->nType & EMT_HAVE_NONAME))
  249. bErr = true;
  250. }else {
  251. szName = strls.GetAt(strls.FindIndex(1));
  252. if(szName == "me") {
  253. if(!(lpEmote->nType & EMT_HAVE_SELF))
  254. bErr = true;
  255. }else if(!(lpEmote->nType & EMT_HAVE_TARGET))
  256. bErr = true;
  257. }
  258. if(bErr) {
  259. szName = strtmp;
  260. strtmp.Format("%s硂