诸暨麻将添加redis
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2264 lines
66 KiB

  1. #include "stdafx.h"
  2. #include "Commend.h"
  3. #include <strsafe.h>
  4. #include <shlwapi.h>
  5. #include "AttemperEngineSink.h"
  6. #include <locale>//头文件
  7. #include "ShowTime.h"
  8. #include "..\..\..\Games\Normal\松滋晃晃血流\消息定义\CMD_Sparrow.h"
  9. #ifdef _DEBUG
  10. int Commend::m_iLogLevel = Commend::ENUM_LOG_LEVEL_DEBUG;
  11. #else
  12. int Commend::m_iLogLevel = Commend::ENUM_LOG_LEVEL_RUN;
  13. #endif
  14. CString Commend::m_Patch;
  15. HANDLE Commend::m_hThread = NULL;
  16. unsigned Commend::m_uiThreadID = 0;
  17. bool Commend::m_bRun = true;// 关闭日志写入
  18. Commend::enLogStatus Commend::m_enStatus = Commend::ENUM_LOG_INIT;
  19. std::unordered_map<DWORD, CString> Commend::Log;
  20. Commend::Commend(void)
  21. {
  22. //程序目录
  23. TCHAR szPath[MAX_PATH];
  24. HMODULE hModule = NULL;
  25. GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
  26. (TCHAR*)&LogRuns,//可以是任何函数,全局变量等的地址
  27. &hModule);
  28. if (!GetModuleFileName(hModule, szPath, MAX_PATH))
  29. {
  30. //OutputDebugString(_T("【进程】GetModuleFileName失败"));
  31. return;
  32. }
  33. CString strDir = szPath;
  34. CString strLog;
  35. int nPos = strDir.ReverseFind(_T('\\'));
  36. if (nPos == -1)
  37. {
  38. //OutputDebugString(_T("【进程】GetModuleFileName取得信息异常。"));
  39. return;
  40. }
  41. strDir = strDir.Mid(0, nPos);
  42. m_Patch.Format(_T("%s\\%s"), strDir, _T("log\\"));
  43. if (m_hThread != NULL) return;
  44. m_hThread = (HANDLE)_beginthreadex(NULL, 0, &Commend::LogRuns, NULL, 0, &m_uiThreadID);
  45. }
  46. Commend::~Commend(void)
  47. {
  48. m_bRun = false;
  49. m_enStatus = ENUM_LOG_EXITING;
  50. for (int i = 0; i < 50; i++)
  51. {
  52. Sleep(3000);
  53. if (m_enStatus == ENUM_LOG_EXITED)
  54. {
  55. return;
  56. }
  57. }
  58. }
  59. CCriticalSection Commend::m_CriticalSection;
  60. //添加日志
  61. void Commend::AddLog(DWORD dPriateTable, CString LogText)
  62. {
  63. CWHDataLocker lock(m_CriticalSection);//
  64. if (Log.find(dPriateTable) == Log.end())
  65. {
  66. Log[dPriateTable] = LogText;
  67. }
  68. else
  69. {
  70. CString csTest = Log[dPriateTable];
  71. Log[dPriateTable] = csTest + LogText;
  72. }
  73. }
  74. //获取日志
  75. std::unordered_map<DWORD, CString> Commend::GetLog()
  76. {
  77. CWHDataLocker lock(m_CriticalSection);//
  78. std::unordered_map<DWORD, CString> Ret = Log;
  79. Log.clear();
  80. return Ret;
  81. }
  82. //参数转成字符串
  83. CString Commend::ToString(WORD wMainCmdID, WORD wCmdTable, const void* pBuffer)
  84. {
  85. CString csRet = _T("");
  86. csRet = ToName(wMainCmdID, wCmdTable);
  87. if (csRet == _T("")) return csRet;
  88. switch (wMainCmdID)
  89. {
  90. case MDM_GR_USER: //用户命令
  91. {
  92. switch (wCmdTable)
  93. {
  94. case SUB_GR_USER_GET_BANGDING: //绑定代理
  95. {
  96. return CString(_TEXT("绑定代理"));
  97. }
  98. case SUB_GR_USER_GET_DINGDAN: //请求订单
  99. {
  100. return CString(_TEXT("请求订单"));
  101. }
  102. case SUB_GR_USER_GET_DINGDAN_NEW: //请求订单
  103. {
  104. return CString(_TEXT("新方式请求订单"));
  105. }
  106. case SUB_GR_USER_GET_DINGDANLIST: //获取购买记录
  107. {
  108. return CString(_TEXT("获取购买记录"));
  109. }
  110. case SUB_GR_USER_GETADD_INFO: //获取加入房间的信息
  111. {
  112. return CString(_TEXT("获取加入房间的信息"));
  113. }
  114. case SUB_GR_USER_RULE: //用户规则
  115. {
  116. return CString(_TEXT(""));
  117. }
  118. case SUB_GR_USER_STATUS: //用户状态
  119. {
  120. TCHAR szTemp[BUFFERLEN];
  121. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  122. ((CMD_GR_LogonMobile*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  123. return CString(szTemp);
  124. }
  125. case SUB_GR_USER_LOOKON: //用户旁观
  126. {
  127. return CString(_TEXT("用户命令->用户旁观"));
  128. }
  129. case SUB_GR_USER_SEAT_ACK:
  130. {
  131. TCHAR szTemp[BUFFERLEN];
  132. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  133. if (pBuffer) ((CMD_GR_UserSitAck*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  134. return CString(szTemp);
  135. }
  136. case SUB_GR_USER_SITDOWN: //用户坐下
  137. {
  138. TCHAR szTemp[BUFFERLEN];
  139. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  140. ((CMD_GR_UserSitDown*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  141. return CString(szTemp);
  142. }
  143. case SUB_GR_USER_STANDUP: //用户起立
  144. {
  145. TCHAR szTemp[BUFFERLEN];
  146. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  147. ((CMD_GR_UserStandUp*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  148. return CString(szTemp);
  149. }
  150. case SUB_GR_USER_CHAT: //用户聊天
  151. {
  152. return CString(_TEXT("用户命令->用户聊天"));
  153. }
  154. case SUB_GR_USER_EXPRESSION: //用户表情
  155. {
  156. TCHAR szTemp[BUFFERLEN];
  157. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  158. ((CMD_GR_C_UserExpression*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  159. return CString(szTemp);
  160. }
  161. case SUB_GR_WISPER_CHAT: //用户私聊
  162. {
  163. return CString(_TEXT("用户命令->用户私聊"));
  164. }
  165. case SUB_GR_WISPER_EXPRESSION: //私聊表情
  166. {
  167. TCHAR szTemp[BUFFERLEN];
  168. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  169. ((CMD_GR_C_WisperExpression*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  170. return CString(szTemp);
  171. }
  172. //case SUB_GR_PROPERTY_BUY: //购买道具
  173. //{
  174. // return CString(_TEXT("用户命令->购买道具"));
  175. //}
  176. case SUB_GR_PROPERTY_TRUMPET: //喇叭道具
  177. {
  178. return CString(_TEXT("用户命令->喇叭道具"));
  179. }
  180. //case SUB_GR_USER_INVITE_REQ: //邀请用户
  181. //{
  182. // return CString(_TEXT("用户命令->邀请用户"));
  183. //}
  184. //case SUB_GR_USER_REPULSE_SIT: //拒绝厌友
  185. //{
  186. // return CString(_TEXT("用户命令->拒绝厌友"));
  187. //}
  188. //case SUB_GR_USER_KICK_USER: //踢出用户
  189. //{
  190. // return CString(_TEXT("用户命令->踢出用户"));
  191. //}
  192. case SUB_GR_USER_INFO_REQ: //请求用户信息
  193. {
  194. TCHAR szTemp[BUFFERLEN];
  195. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  196. ((CMD_GR_UserInfoReq*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  197. return CString(szTemp);
  198. }
  199. case SUB_GR_USER_CHAIR_REQ: //请求更换位置
  200. {
  201. return CString(_TEXT("用户命令->请求更换位置"));
  202. }
  203. case SUB_GR_USER_CHAIR_INFO_REQ: //请求椅子用户信息
  204. {
  205. return CString(_TEXT("用户命令->请求椅子用户信息"));
  206. }
  207. case SUB_GR_USER_GET_GAME_SCORE_RECORD_LIST:
  208. {
  209. //OnTCPSocketGetUserGameTempScoreRankList(pData, wDataSize, dwSocketID);
  210. return CString(_TEXT("用户命令->获取战绩列表"));
  211. }
  212. case SUB_GR_USER_GET_GAME_SCORE_RECORD_DETAIL_INFO:
  213. {
  214. return CString(_TEXT("用户命令->SUB_GR_USER_GET_GAME_SCORE_RECORD_DETAIL_INFO"));
  215. }
  216. case SUB_GR_USER_GET_GAME_SCORE_RECORD_REPLAY:
  217. {
  218. return CString(_TEXT("用户命令->获取回放记录"));
  219. }
  220. case SUB_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST:
  221. {
  222. return CString(_TEXT("用户命令->获取临时积分排行榜"));
  223. }
  224. case SUB_GR_USER_CHECK_NAME:
  225. {
  226. return CString(_TEXT("用户命令->实名认证"));
  227. }
  228. case SUB_GR_USER_CHECK_NAME_QUERY:
  229. {
  230. return CString(_TEXT("用户命令->实名认证查询"));
  231. }
  232. case SUB_GR_USER_CREATE://创建房间
  233. {
  234. TCHAR szTemp[BUFFERLEN];
  235. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  236. ((CMD_GR_UserSitDown*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  237. return CString(szTemp); }
  238. case SUB_GR_USER_ADD: //加入房间
  239. {
  240. TCHAR szTemp[BUFFERLEN];
  241. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  242. ((CMD_GR_UserJoin*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  243. return CString(szTemp);
  244. }
  245. case SUB_GR_USER_SEAT: //玩家坐下请求
  246. {
  247. TCHAR szTemp[BUFFERLEN];
  248. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  249. ((CMD_GR_UserSeat*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  250. return CString(szTemp);
  251. }
  252. case SUB_GR_USER_ENTER://用户进入
  253. {
  254. TCHAR szTemp[BUFFERLEN * 3];
  255. ZeroMemory(szTemp, BUFFERLEN * 3 * sizeof(TCHAR));
  256. if (pBuffer) ((tagMobileUserInfoHead*)pBuffer)->ToString(szTemp, BUFFERLEN * 3, 0);
  257. return CString(szTemp);
  258. }
  259. case SUB_GR_USER_MYROOM_UPDATA:
  260. {
  261. //TCHAR szTemp[BUFFERLEN];
  262. //ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  263. //if (pBuffer) ((JN_GR_RoomListEx*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  264. //return CString(szTemp);
  265. }
  266. case SUB_GR_USER_ADDCREATE_TABLE_ALL:
  267. {
  268. TCHAR szTemp[BUFFERLEN];
  269. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  270. if (pBuffer) ((JN_GR_RoomListGroupEx*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  271. return CString(szTemp);
  272. }
  273. case SUB_GR_USER_ADDCREATE_TABLE_ID:
  274. {
  275. TCHAR szTemp[BUFFERLEN];
  276. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  277. if (pBuffer) ((CMD_GR_UserSitDownAckEx*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  278. return CString(szTemp);
  279. }
  280. case SUB_GR_USER_BEAN:
  281. {
  282. TCHAR szTemp[BUFFERLEN];
  283. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  284. if (pBuffer) ((CMD_GR_UserBean*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  285. return CString(szTemp);
  286. }
  287. default:
  288. {
  289. TCHAR szBuffer[BUFFERLEN];
  290. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  291. //StringCchCopy(szBuffer, BUFFERLEN, _T("用户命令->未知协议"));
  292. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  293. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  294. return CString(szBuffer);
  295. }
  296. }
  297. }
  298. case MDM_GR_LOGON: //登录命令
  299. {
  300. switch (wCmdTable)
  301. {
  302. case SUB_GR_LOGON_USERID: //I D 登录
  303. {
  304. return CString(_TEXT("登录命令->I D 登录"));
  305. }
  306. case SUB_GR_LOGON_MOBILE: //手机登录
  307. {
  308. TCHAR szTemp[BUFFERLEN];
  309. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  310. if (pBuffer) ((CMD_GR_LogonMobile*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  311. return CString(szTemp);
  312. }
  313. case SUB_GR_LOGON_ACCOUNTS: //帐号登录
  314. {
  315. TCHAR szTemp[BUFFERLEN];
  316. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  317. if (pBuffer) ((CMD_GR_LogonAccounts*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  318. return CString(szTemp);
  319. }
  320. case SUB_GR_LOGON_FINISH://登陆完成
  321. {
  322. TCHAR szTemp[BUFFERLEN];
  323. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  324. if (pBuffer) ((CMD_GR_LogonFinish*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  325. return CString(szTemp);
  326. }
  327. default:
  328. {
  329. TCHAR szBuffer[BUFFERLEN];
  330. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  331. //StringCchCopy(szBuffer, BUFFERLEN, _T("登陆命令->未知协议"));
  332. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  333. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  334. return CString(szBuffer);
  335. }
  336. }
  337. }
  338. case MDM_GF_GAME: //游戏命令
  339. {
  340. //return CString(_T("游戏内部指令"));
  341. TCHAR szBuffer[BUFFERLEN];
  342. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  343. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  344. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  345. return CString(szBuffer);
  346. }
  347. case MDM_GF_FRAME: //框架命令
  348. {
  349. switch (wCmdTable)
  350. {
  351. case SUB_GF_GAME_OPTION: //游戏配置
  352. {
  353. TCHAR szTemp[BUFFERLEN];
  354. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  355. if (pBuffer) ((CMD_GF_GameOption*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  356. return CString(szTemp);
  357. }
  358. case SUB_GF_USER_READY: //用户准备
  359. {
  360. return CString(_TEXT("框架命令->用户准备"));
  361. }
  362. case SUB_GF_USER_CHAT: //用户聊天
  363. {
  364. return CString(_TEXT("框架命令->用户聊天"));
  365. }
  366. case SUB_GF_USER_EXPRESSION: //用户表情
  367. {
  368. TCHAR szTemp[BUFFERLEN];
  369. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  370. if (pBuffer) ((CMD_GR_S_UserExpression*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  371. return CString(szTemp);
  372. }
  373. case SUB_GF_LOOKON_CONFIG: //旁观配置
  374. {
  375. return CString(_TEXT("框架命令->旁观配置"));
  376. }
  377. default:
  378. {
  379. TCHAR szBuffer[BUFFERLEN];
  380. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  381. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  382. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  383. return CString(szBuffer);
  384. }
  385. }
  386. }
  387. //case MDM_GR_INSURE: //银行命令
  388. //case MDM_GR_TASK: //任务命令
  389. //case MDM_GR_EXCHANGE: //兑换命令
  390. case MDM_GR_MANAGE: //管理命令
  391. {
  392. switch (wCmdTable)
  393. {
  394. case SUB_GR_QUERY_OPTION: //查询设置
  395. {
  396. return CString(_TEXT("管理命令->查询设置"));
  397. }
  398. case SUB_GR_OPTION_SERVER: //房间设置
  399. {
  400. return CString(_TEXT("管理命令->房间设置"));
  401. }
  402. case SUB_GR_KILL_USER: //踢出用户
  403. {
  404. return CString(_TEXT("管理命令->踢出用户"));;// OnTCPNetworkSubManagerKickUser(pData, wDataSize, dwSocketID);
  405. }
  406. case SUB_GR_LIMIT_USER_CHAT: //限制聊天
  407. {
  408. return CString(_TEXT("管理命令->限制聊天"));;//OnTCPNetworkSubLimitUserChat(pData, wDataSize, dwSocketID);
  409. }
  410. case SUB_GR_KICK_ALL_USER: //踢出用户
  411. {
  412. return CString(_TEXT("管理命令->踢出用户"));;//OnTCPNetworkSubKickAllUser(pData, wDataSize, dwSocketID);
  413. }
  414. case SUB_GR_SEND_MESSAGE: //发布消息
  415. {
  416. return CString(_TEXT("管理命令->发布消息"));
  417. }
  418. case SUB_GR_DISMISSGAME: //管理员强制解散游戏
  419. {
  420. return CString(_TEXT("管理命令->管理员强制解散游戏"));
  421. }
  422. case SUB_GR_DELETE_PRIVATE_TABLE_REQ: //请求删除私有房间
  423. {
  424. TCHAR szTemp[BUFFERLEN];
  425. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  426. if (pBuffer) ((CMD_GR_DELETE_PRIVATE_ROOM_REQ*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  427. return CString(szTemp);
  428. }
  429. case SUB_GR_DELETE_PRIVATE_TABLE_RESP://请求删除私有房间响应消息
  430. {
  431. TCHAR szTemp[BUFFERLEN];
  432. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  433. if (pBuffer) ((CMD_GR_DELETE_PRIVATE_ROOM_RESP*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  434. return CString(szTemp);
  435. }
  436. case SUB_GR_SEND_WARNING: //警告用户
  437. {
  438. TCHAR szTemp[BUFFERLEN];
  439. ZeroMemory(szTemp, BUFFERLEN*sizeof(TCHAR));
  440. if (pBuffer) ((CMD_GR_SendWarning*)pBuffer)->ToString(szTemp, BUFFERLEN, 0);
  441. return CString(szTemp);
  442. }
  443. default:
  444. {
  445. TCHAR szBuffer[BUFFERLEN];
  446. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  447. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  448. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  449. return CString(szBuffer);
  450. }
  451. }
  452. }
  453. case MDM_GR_MATCH: //比赛命令
  454. {
  455. }
  456. default:
  457. {
  458. TCHAR szBuffer[BUFFERLEN];
  459. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  460. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  461. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  462. return CString(szBuffer);
  463. }
  464. }
  465. return csRet;
  466. }
  467. //名字
  468. CString Commend::ToName(WORD wMainCmdID, WORD wCmdTable, void* pGetGameString)
  469. {
  470. CString csRet = _T("");
  471. switch (wMainCmdID)
  472. {
  473. case MDM_GR_USER: //用户命令
  474. {
  475. switch (wCmdTable)
  476. {
  477. case SUB_GR_USER_GET_BANGDING: //绑定代理
  478. {
  479. return CString(_TEXT("绑定代理"));
  480. }
  481. case SUB_GR_USER_QINGQIUJIESAN:
  482. {
  483. return CString(_TEXT("用户命令->房主请求解散"));
  484. }
  485. case SUB_GR_USER_GET_BEAN:
  486. {
  487. return CString(_TEXT("用户命令->请求元宝"));
  488. }
  489. case SUB_GR_USER_RULE: //用户规则
  490. {
  491. return CString(_TEXT("用户命令->用户规则"));
  492. }
  493. case SUB_GR_USER_SEAT_ACK:
  494. {
  495. return CString(_TEXT("用户命令->玩家坐下请求应答"));
  496. }
  497. case SUB_GR_USER_STATUS: //用户状态
  498. {
  499. return CString(_TEXT("用户命令->用户状态"));
  500. }
  501. case SUB_GR_USER_LOOKON: //用户旁观
  502. {
  503. return CString(_TEXT("用户命令->用户旁观"));
  504. }
  505. case SUB_GR_USER_SITDOWN: //用户坐下
  506. {
  507. return CString(_TEXT("用户命令->用户坐下"));
  508. }
  509. case SUB_GR_USER_STANDUP: //用户起立
  510. {
  511. return CString(_TEXT("用户命令->用户起立"));
  512. }
  513. case SUB_GR_USER_CHAT: //用户聊天
  514. {
  515. return CString(_TEXT("用户命令->用户聊天"));
  516. }
  517. case SUB_GR_USER_EXPRESSION: //用户表情
  518. {
  519. return CString(_TEXT("用户命令->用户表情"));
  520. }
  521. case SUB_GR_WISPER_CHAT: //用户私聊
  522. {
  523. return CString(_TEXT("用户命令->用户私聊"));
  524. }
  525. case SUB_GR_WISPER_EXPRESSION: //私聊表情
  526. {
  527. return CString(_TEXT("用户命令->私聊表情"));
  528. }
  529. //case SUB_GR_PROPERTY_BUY: //购买道具
  530. //{
  531. // return CString(_TEXT("用户命令->购买道具"));
  532. //}
  533. case SUB_GR_PROPERTY_TRUMPET: //喇叭道具
  534. {
  535. return CString(_TEXT("用户命令->喇叭道具"));
  536. }
  537. //case SUB_GR_USER_INVITE_REQ: //邀请用户
  538. //{
  539. // return CString(_TEXT("用户命令->邀请用户"));
  540. //}
  541. //case SUB_GR_USER_REPULSE_SIT: //拒绝厌友
  542. //{
  543. // return CString(_TEXT("用户命令->拒绝厌友"));
  544. //}
  545. //case SUB_GR_USER_KICK_USER: //踢出用户
  546. //{
  547. // return CString(_TEXT("用户命令->踢出用户"));
  548. //}
  549. case SUB_GR_USER_INFO_REQ: //请求用户信息
  550. {
  551. return CString(_TEXT("用户命令->请求用户信息"));
  552. }
  553. case SUB_GR_USER_CHAIR_REQ: //请求更换位置
  554. {
  555. return CString(_TEXT("用户命令->请求更换位置"));
  556. }
  557. case SUB_GR_USER_CHAIR_INFO_REQ: //请求椅子用户信息
  558. {
  559. return CString(_TEXT("用户命令->请求椅子用户信息"));
  560. }
  561. case SUB_GR_USER_GET_GAME_SCORE_RECORD_LIST:
  562. {
  563. //OnTCPSocketGetUserGameTempScoreRankList(pData, wDataSize, dwSocketID);
  564. return CString(_TEXT("用户命令->SUB_GR_USER_GET_GAME_SCORE_RECORD_LIST"));
  565. }
  566. case SUB_GR_USER_GET_GAME_SCORE_RECORD_DETAIL_INFO:
  567. {
  568. return CString(_TEXT("用户命令->SUB_GR_USER_GET_GAME_SCORE_RECORD_DETAIL_INFO"));
  569. }
  570. case SUB_GR_USER_GET_GAME_SCORE_RECORD_REPLAY:
  571. {
  572. return CString(_TEXT("用户命令->SUB_GR_USER_GET_GAME_SCORE_RECORD_REPLAY"));
  573. }
  574. case SUB_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST:
  575. {
  576. return CString(_TEXT("用户命令->SUB_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST"));
  577. }
  578. case SUB_GR_USER_CREATE://创建房间
  579. {
  580. return CString(_TEXT("用户命令->创建房间"));
  581. }
  582. case SUB_GR_USER_ADD: //加入房间
  583. {
  584. return CString(_TEXT("用户命令->加入房间"));
  585. }
  586. case SUB_GR_USER_SEAT: //玩家坐下请求
  587. {
  588. return CString(_TEXT("用户命令->玩家坐下请求"));
  589. }
  590. case SUB_GR_USER_MYROOM_UPDATA: //玩家坐下请求
  591. {
  592. return CString(_TEXT("用户命令->玩家拥有的房间状态更新"));
  593. }
  594. case SUB_GR_USER_ADDCREATE_TABLE_ALL:
  595. {
  596. return CString(_TEXT("用户命令->通知创建的所有房间列表"));
  597. }
  598. case SUB_GR_USER_ADDCREATE_TABLE_ID:
  599. {
  600. return CString(_TEXT("用户命令->创建加入房间应答"));
  601. }
  602. case SUB_GR_USER_BEAN:
  603. {
  604. return CString(_TEXT("用户命令->元宝信息"));
  605. }
  606. //default:
  607. // return CString(_TEXT("用户命令->未知协议"));
  608. default:
  609. {
  610. TCHAR szBuffer[BUFFERLEN];
  611. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  612. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  613. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  614. return CString(szBuffer);
  615. }
  616. }
  617. }
  618. case MDM_GR_CONFIG : //配置信息
  619. {
  620. switch (wCmdTable)
  621. {
  622. case SUB_GR_CONFIG_COLUMN: //列表配置
  623. {
  624. return CString(_TEXT("配置信息->列表配置"));
  625. }
  626. case SUB_GR_CONFIG_SERVER: //房间配置
  627. {
  628. return CString(_TEXT("配置信息->房间配置"));
  629. }
  630. case SUB_GR_CONFIG_PROPERTY: //道具配置
  631. {
  632. return CString(_TEXT("配置信息->道具配置"));
  633. }
  634. case SUB_GR_CONFIG_FINISH://配置完成
  635. {
  636. return CString(_TEXT("配置信息->配置完成"));
  637. }
  638. //default:
  639. // return CString(_TEXT("配置信息->未知协议"));
  640. default:
  641. {
  642. TCHAR szBuffer[BUFFERLEN];
  643. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  644. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  645. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  646. return CString(szBuffer);
  647. }
  648. }
  649. }
  650. case MDM_GR_LOGON: //登录命令
  651. {
  652. switch (wCmdTable)
  653. {
  654. case SUB_GR_LOGON_USERID: //I D 登录
  655. {
  656. return CString(_TEXT("登录命令->I D 登录"));
  657. }
  658. case SUB_GR_LOGON_MOBILE: //手机登录
  659. {
  660. return CString(_TEXT("登录命令->手机登录"));
  661. }
  662. case SUB_GR_LOGON_ACCOUNTS: //帐号登录
  663. {
  664. return CString(_TEXT("登录命令->帐号登录"));
  665. }
  666. case SUB_GR_LOGON_FINISH://登陆完成
  667. {
  668. return CString(_TEXT("登录命令->登陆完成"));
  669. }
  670. case SUB_GR_USER_ENTER://用户进入
  671. {
  672. return CString(_TEXT("登录命令->用户进入"));
  673. }
  674. //default:
  675. // return CString(_TEXT("登录命令->未知协议"));
  676. default:
  677. {
  678. TCHAR szBuffer[BUFFERLEN];
  679. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  680. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  681. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  682. return CString(szBuffer);
  683. }
  684. }
  685. }
  686. case MDM_GF_GAME: //游戏命令
  687. {
  688. TCHAR szBuffer[BUFFERLEN * 3];
  689. ZeroMemory(szBuffer, BUFFERLEN * 3 * sizeof(TCHAR));
  690. typedef bool(__stdcall*SubGetStringType)(WORD, const void*, int, void*, int);
  691. if (pGetGameString)
  692. {
  693. SubGetStringType pFuntion = (SubGetStringType)pGetGameString;
  694. pFuntion(wCmdTable, 0, 0, szBuffer, BUFFERLEN * 3 * sizeof(TCHAR));
  695. }
  696. else
  697. {
  698. StringCchCopy(szBuffer, BUFFERLEN, _T("游戏内部指令"));
  699. }
  700. return CString(szBuffer);
  701. }
  702. case MDM_GF_FRAME: //框架命令
  703. {
  704. switch (wCmdTable)
  705. {
  706. case SUB_GF_GAME_OPTION: //游戏配置
  707. {
  708. return CString(_TEXT("框架命令->游戏配置"));
  709. }
  710. case SUB_GF_USER_READY: //用户准备
  711. {
  712. return CString(_TEXT("框架命令->用户准备"));
  713. }
  714. case SUB_GF_USER_CHAT: //用户聊天
  715. {
  716. return CString(_TEXT("框架命令->用户聊天"));
  717. }
  718. case SUB_GF_USER_EXPRESSION: //用户表情
  719. {
  720. return CString(_TEXT("框架命令->用户表情"));
  721. }
  722. case SUB_GF_LOOKON_CONFIG: //旁观配置
  723. {
  724. return CString(_TEXT("框架命令->旁观配置"));
  725. }
  726. //default:
  727. // return CString(_TEXT("框架命令->未知协议"));
  728. default:
  729. {
  730. TCHAR szBuffer[BUFFERLEN];
  731. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  732. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  733. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  734. return CString(szBuffer);
  735. }
  736. }
  737. }
  738. //case MDM_GR_INSURE: //银行命令
  739. //case MDM_GR_TASK: //任务命令
  740. //case MDM_GR_EXCHANGE: //兑换命令
  741. case MDM_GR_MANAGE: //管理命令
  742. {
  743. switch (wCmdTable)
  744. {
  745. case SUB_GR_QUERY_OPTION: //查询设置
  746. {
  747. return CString(_TEXT("管理命令->查询设置"));
  748. }
  749. case SUB_GR_OPTION_SERVER: //房间设置
  750. {
  751. return CString(_TEXT("管理命令->房间设置"));
  752. }
  753. case SUB_GR_KILL_USER: //踢出用户
  754. {
  755. return CString(_TEXT("管理命令->踢出用户"));;// OnTCPNetworkSubManagerKickUser(pData, wDataSize, dwSocketID);
  756. }
  757. case SUB_GR_LIMIT_USER_CHAT: //限制聊天
  758. {
  759. return CString(_TEXT("管理命令->限制聊天"));;//OnTCPNetworkSubLimitUserChat(pData, wDataSize, dwSocketID);
  760. }
  761. case SUB_GR_KICK_ALL_USER: //踢出用户
  762. {
  763. return CString(_TEXT("管理命令->踢出用户"));;//OnTCPNetworkSubKickAllUser(pData, wDataSize, dwSocketID);
  764. }
  765. case SUB_GR_SEND_MESSAGE: //发布消息
  766. {
  767. return CString(_TEXT("管理命令->发布消息"));
  768. }
  769. case SUB_GR_DISMISSGAME: //管理员强制解散游戏
  770. {
  771. return CString(_TEXT("管理命令->管理员强制解散游戏"));
  772. }
  773. case SUB_GR_DELETE_PRIVATE_TABLE_REQ: //请求删除私有房间
  774. {
  775. return CString(_TEXT("管理命令->请求删除私有房间"));
  776. }
  777. case SUB_GR_DELETE_PRIVATE_TABLE_RESP://请求删除私有房间响应消息
  778. {
  779. return CString(_TEXT("管理命令->请求删除私有房间响应消息"));
  780. }
  781. case SUB_GR_SEND_WARNING: //警告用户
  782. {
  783. return CString(_TEXT("管理命令->警告用户"));
  784. }
  785. //default:
  786. // return CString(_TEXT("管理命令->未知协议"));
  787. default:
  788. {
  789. TCHAR szBuffer[BUFFERLEN];
  790. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  791. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  792. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  793. return CString(szBuffer);
  794. }
  795. }
  796. }
  797. case MDM_GR_MATCH: //比赛命令
  798. {
  799. }
  800. default:
  801. {
  802. TCHAR szBuffer[BUFFERLEN];
  803. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  804. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  805. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  806. return CString(szBuffer);
  807. }
  808. }
  809. return csRet;
  810. }
  811. CString Commend::ToNameEx(WORD wMainCmdID, WORD wCmdTable, const void* pBuffer, int iLen, void* pGetGameString)
  812. {
  813. CString csRet = _T("");
  814. switch (wMainCmdID)
  815. {
  816. case MDM_GR_USER: //用户命令
  817. {
  818. switch (wCmdTable)
  819. {
  820. case SUB_GR_USER_GET_BANGDING://用户进入
  821. {
  822. return CString(_TEXT("用户命令->绑定代理"));
  823. }
  824. case SUB_GR_USER_GET_BANGDINGACK://用户进入
  825. {
  826. return CString(_TEXT("用户命令->绑定代理应答"));
  827. }
  828. case SUB_GR_USER_ENTER://用户进入
  829. {
  830. return CString(_TEXT("登录命令->用户进入"));
  831. }
  832. case SUB_GR_USER_GET_DINGDAN:
  833. {
  834. return CString(_TEXT("用户命令->获取微信订单"));
  835. }
  836. case SUB_GR_USER_GET_DINGDAN_NEW:
  837. {
  838. return CString(_TEXT("用户命令->其他通道获取微信订单"));
  839. }
  840. case SUB_GR_USER_GET_DINGDANACK:
  841. {
  842. return CString(_TEXT("用户命令->获取微信订单应答"));
  843. }
  844. case SUB_GR_USER_QINGQIUJIESAN:
  845. {
  846. return CString(_TEXT("用户命令->房主请求解散"));
  847. }
  848. case SUB_GR_USER_GET_BEAN:
  849. {
  850. return CString(_TEXT("用户命令->请求元宝"));
  851. }
  852. case SUB_GR_USER_RULE: //用户规则
  853. {
  854. return CString(_TEXT("用户命令->用户规则"));
  855. }
  856. case SUB_GR_USER_SEAT_ACK:
  857. {
  858. return CString(_TEXT("用户命令->玩家坐下请求应答"));
  859. }
  860. case SUB_GR_USER_STATUS: //用户状态
  861. {
  862. return CString(_TEXT("用户命令->用户状态"));
  863. }
  864. case SUB_GR_USER_LOOKON: //用户旁观
  865. {
  866. return CString(_TEXT("用户命令->用户旁观"));
  867. }
  868. case SUB_GR_USER_SITDOWN: //用户坐下
  869. {
  870. return CString(_TEXT("用户命令->用户坐下"));
  871. }
  872. case SUB_GR_USER_STANDUP: //用户起立
  873. {
  874. return CString(_TEXT("用户命令->用户起立"));
  875. }
  876. case SUB_GR_USER_CHAT: //用户聊天
  877. {
  878. return CString(_TEXT("用户命令->用户聊天"));
  879. }
  880. case SUB_GR_USER_EXPRESSION: //用户表情
  881. {
  882. return CString(_TEXT("用户命令->用户表情"));
  883. }
  884. case SUB_GR_WISPER_CHAT: //用户私聊
  885. {
  886. return CString(_TEXT("用户命令->用户私聊"));
  887. }
  888. case SUB_GR_WISPER_EXPRESSION: //私聊表情
  889. {
  890. return CString(_TEXT("用户命令->私聊表情"));
  891. }
  892. //case SUB_GR_PROPERTY_BUY: //购买道具
  893. //{
  894. // return CString(_TEXT("用户命令->购买道具"));
  895. //}
  896. case SUB_GR_PROPERTY_TRUMPET: //喇叭道具
  897. {
  898. return CString(_TEXT("用户命令->喇叭道具"));
  899. }
  900. //case SUB_GR_USER_INVITE_REQ: //邀请用户
  901. //{
  902. // return CString(_TEXT("用户命令->邀请用户"));
  903. //}
  904. //case SUB_GR_USER_REPULSE_SIT: //拒绝厌友
  905. //{
  906. // return CString(_TEXT("用户命令->拒绝厌友"));
  907. //}
  908. //case SUB_GR_USER_KICK_USER: //踢出用户
  909. //{
  910. // return CString(_TEXT("用户命令->踢出用户"));
  911. //}
  912. case SUB_GR_USER_INFO_REQ: //请求用户信息
  913. {
  914. return CString(_TEXT("用户命令->请求用户信息"));
  915. }
  916. case SUB_GR_USER_CHAIR_REQ: //请求更换位置
  917. {
  918. return CString(_TEXT("用户命令->请求更换位置"));
  919. }
  920. case SUB_GR_USER_CHAIR_INFO_REQ: //请求椅子用户信息
  921. {
  922. return CString(_TEXT("用户命令->请求椅子用户信息"));
  923. }
  924. case SUB_GR_USER_GET_GAME_SCORE_RECORD_LIST:
  925. {
  926. //OnTCPSocketGetUserGameTempScoreRankList(pData, wDataSize, dwSocketID);
  927. return CString(_TEXT("用户命令->SUB_GR_USER_GET_GAME_SCORE_RECORD_LIST"));
  928. }
  929. case SUB_GR_USER_GET_GAME_SCORE_RECORD_DETAIL_INFO:
  930. {
  931. return CString(_TEXT("用户命令->SUB_GR_USER_GET_GAME_SCORE_RECORD_DETAIL_INFO"));
  932. }
  933. case SUB_GR_USER_GET_GAME_SCORE_RECORD_REPLAY:
  934. {
  935. return CString(_TEXT("用户命令->SUB_GR_USER_GET_GAME_SCORE_RECORD_REPLAY"));
  936. }
  937. case SUB_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST:
  938. {
  939. return CString(_TEXT("用户命令->SUB_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST"));
  940. }
  941. case SUB_GR_USER_CREATE://创建房间
  942. {
  943. return CString(_TEXT("用户命令->创建房间"));
  944. }
  945. case SUB_GR_USER_ADD: //加入房间
  946. {
  947. return CString(_TEXT("用户命令->加入房间"));
  948. }
  949. case SUB_GR_USER_SEAT: //玩家坐下请求
  950. {
  951. return CString(_TEXT("用户命令->玩家坐下请求"));
  952. }
  953. case SUB_GR_USER_MYROOM_UPDATA: //玩家坐下请求
  954. {
  955. return CString(_TEXT("用户命令->玩家拥有的房间状态更新"));
  956. }
  957. case SUB_GR_USER_ADDCREATE_TABLE_ALL:
  958. {
  959. return CString(_TEXT("用户命令->通知创建的所有房间列表"));
  960. }
  961. case SUB_GR_USER_ADDCREATE_TABLE_ID:
  962. {
  963. return CString(_TEXT("用户命令->创建加入房间应答"));
  964. }
  965. case SUB_GR_USER_BEAN:
  966. {
  967. return CString(_TEXT("用户命令->元宝信息"));
  968. }
  969. case SUB_GR_USER_CHECK_NAME:
  970. {
  971. return CString(_TEXT("用户命令->实名认证"));
  972. }
  973. case SUB_GR_USER_CHECK_NAME_QUERY:
  974. {
  975. return CString(_TEXT("用户命令->实名认证查询"));
  976. }
  977. //default:
  978. //{
  979. // CString csTest;
  980. // csTest.Format(L"用户命令->未知协议%d", wCmdTable);
  981. // return CString(csTest);
  982. //}
  983. default:
  984. {
  985. TCHAR szBuffer[BUFFERLEN];
  986. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  987. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  988. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  989. return CString(szBuffer);
  990. }
  991. }
  992. }
  993. case MDM_GR_CONFIG: //配置信息
  994. {
  995. switch (wCmdTable)
  996. {
  997. case SUB_GR_CONFIG_COLUMN: //列表配置
  998. {
  999. return CString(_TEXT("配置信息->列表配置"));
  1000. }
  1001. case SUB_GR_CONFIG_SERVER: //房间配置
  1002. {
  1003. return CString(_TEXT("配置信息->房间配置"));
  1004. }
  1005. case SUB_GR_CONFIG_PROPERTY: //道具配置
  1006. {
  1007. return CString(_TEXT("配置信息->道具配置"));
  1008. }
  1009. case SUB_GR_CONFIG_FINISH://配置完成
  1010. {
  1011. return CString(_TEXT("配置信息->配置完成"));
  1012. }
  1013. //default:
  1014. //{
  1015. // CString csTest;
  1016. // csTest.Format(L"配置信息->未知协议%d", wCmdTable);
  1017. // return CString(csTest);
  1018. //}
  1019. default:
  1020. {
  1021. TCHAR szBuffer[BUFFERLEN];
  1022. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1023. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  1024. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  1025. return CString(szBuffer);
  1026. }
  1027. }
  1028. }
  1029. case MDM_GR_LOGON: //登录命令
  1030. {
  1031. switch (wCmdTable)
  1032. {
  1033. case SUB_GR_LOGON_USERID: //I D 登录
  1034. {
  1035. return CString(_TEXT("登录命令->I D 登录"));
  1036. }
  1037. case SUB_GR_LOGON_MOBILE: //手机登录
  1038. {
  1039. return CString(_TEXT("登录命令->手机登录"));
  1040. }
  1041. case SUB_GR_LOGON_ACCOUNTS: //帐号登录
  1042. {
  1043. return CString(_TEXT("登录命令->帐号登录"));
  1044. }
  1045. case SUB_GR_LOGON_FINISH://登陆完成
  1046. {
  1047. return CString(_TEXT("登录命令->游戏登陆完成"));
  1048. }
  1049. //default:
  1050. //{
  1051. // CString csTest;
  1052. // csTest.Format(L"登录命令->未知协议%d", wCmdTable);
  1053. // return CString(csTest);
  1054. //}
  1055. default:
  1056. {
  1057. TCHAR szBuffer[BUFFERLEN];
  1058. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1059. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  1060. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  1061. return CString(szBuffer);
  1062. }
  1063. }
  1064. }
  1065. case MDM_GF_GAME: //游戏命令
  1066. {
  1067. TCHAR szBuffer[BUFFERLEN * 3];
  1068. ZeroMemory(szBuffer, BUFFERLEN * 3 * sizeof(TCHAR));
  1069. typedef bool(__stdcall*SubGetStringType)(WORD, const void*, int, void*, int);
  1070. if (pGetGameString)
  1071. {
  1072. SubGetStringType pFuntion = (SubGetStringType)pGetGameString;
  1073. pFuntion(wCmdTable, pBuffer, iLen, szBuffer, BUFFERLEN * 3 * sizeof(TCHAR));
  1074. }
  1075. else
  1076. {
  1077. StringCchCopy(szBuffer, BUFFERLEN, _T("游戏内部指令"));
  1078. }
  1079. return CString(szBuffer);
  1080. }
  1081. case MDM_GF_FRAME: //框架命令
  1082. {
  1083. switch (wCmdTable)
  1084. {
  1085. case SUB_GF_SYSTEM_MESSAGE: //游戏配置
  1086. {
  1087. return CString(_TEXT("框架命令->系统消息"));
  1088. }
  1089. case SUB_GF_GAME_OPTION: //游戏配置
  1090. {
  1091. return CString(_TEXT("框架命令->游戏配置"));
  1092. }
  1093. case SUB_GF_USER_READY: //用户准备
  1094. {
  1095. return CString(_TEXT("框架命令->用户准备"));
  1096. }
  1097. case SUB_GF_USER_CHAT: //用户聊天
  1098. {
  1099. return CString(_TEXT("框架命令->用户聊天"));
  1100. }
  1101. case SUB_GF_USER_EXPRESSION: //用户表情
  1102. {
  1103. return CString(_TEXT("框架命令->用户表情"));
  1104. }
  1105. case SUB_GF_LOOKON_CONFIG: //旁观配置
  1106. {
  1107. return CString(_TEXT("框架命令->旁观配置"));
  1108. }
  1109. //default:
  1110. //{
  1111. // CString csTest;
  1112. // csTest.Format(L"框架命令->未知协议%d", wCmdTable);
  1113. // return CString(csTest);
  1114. //}
  1115. default:
  1116. {
  1117. TCHAR szBuffer[BUFFERLEN];
  1118. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1119. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  1120. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  1121. return CString(szBuffer);
  1122. }
  1123. }
  1124. }
  1125. //case MDM_GR_INSURE: //银行命令
  1126. //case MDM_GR_TASK: //任务命令
  1127. //case MDM_GR_EXCHANGE: //兑换命令
  1128. case MDM_GR_MANAGE: //管理命令
  1129. {
  1130. switch (wCmdTable)
  1131. {
  1132. case SUB_GR_QUERY_OPTION: //查询设置
  1133. {
  1134. return CString(_TEXT("管理命令->查询设置"));
  1135. }
  1136. case SUB_GR_OPTION_SERVER: //房间设置
  1137. {
  1138. return CString(_TEXT("管理命令->房间设置"));
  1139. }
  1140. case SUB_GR_KILL_USER: //踢出用户
  1141. {
  1142. return CString(_TEXT("管理命令->踢出用户"));;// OnTCPNetworkSubManagerKickUser(pData, wDataSize, dwSocketID);
  1143. }
  1144. case SUB_GR_LIMIT_USER_CHAT: //限制聊天
  1145. {
  1146. return CString(_TEXT("管理命令->限制聊天"));;//OnTCPNetworkSubLimitUserChat(pData, wDataSize, dwSocketID);
  1147. }
  1148. case SUB_GR_KICK_ALL_USER: //踢出用户
  1149. {
  1150. return CString(_TEXT("管理命令->踢出用户"));;//OnTCPNetworkSubKickAllUser(pData, wDataSize, dwSocketID);
  1151. }
  1152. case SUB_GR_SEND_MESSAGE: //发布消息
  1153. {
  1154. return CString(_TEXT("管理命令->发布消息"));
  1155. }
  1156. case SUB_GR_DISMISSGAME: //管理员强制解散游戏
  1157. {
  1158. return CString(_TEXT("管理命令->管理员强制解散游戏"));
  1159. }
  1160. case SUB_GR_DELETE_PRIVATE_TABLE_REQ: //请求删除私有房间
  1161. {
  1162. return CString(_TEXT("管理命令->请求删除私有房间"));
  1163. }
  1164. case SUB_GR_DELETE_PRIVATE_TABLE_RESP://请求删除私有房间响应消息
  1165. {
  1166. return CString(_TEXT("管理命令->请求删除私有房间响应消息"));
  1167. }
  1168. case SUB_GR_SEND_WARNING: //警告用户
  1169. {
  1170. return CString(_TEXT("管理命令->警告用户"));
  1171. }
  1172. //default:
  1173. //{
  1174. // CString csTest;
  1175. // csTest.Format(L"管理命令->未知协议%d", wCmdTable);
  1176. // return CString(csTest);
  1177. //}
  1178. default:
  1179. {
  1180. TCHAR szBuffer[BUFFERLEN];
  1181. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1182. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  1183. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  1184. return CString(szBuffer);
  1185. }
  1186. }
  1187. }
  1188. case MDM_GR_MATCH: //比赛命令
  1189. {
  1190. }
  1191. default:
  1192. {
  1193. TCHAR szBuffer[BUFFERLEN];
  1194. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1195. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  1196. mylog::ToSet(szBuffer, BUFFERLEN, 0);
  1197. return CString(szBuffer);
  1198. }
  1199. }
  1200. return csRet;
  1201. }
  1202. //打印通讯日志
  1203. void Commend::ToShow(VOID* Frame, WORD wMainCmdID, WORD wCmdTable, const void* pBuffer, int iLen, DWORD dTablePrivate, DWORD dUserID, PVOID pGetGameString, bool bSend)
  1204. {
  1205. CAttemperEngineSink* pCAttemperEngineSink = (CAttemperEngineSink*)Frame;
  1206. if (dUserID != 0 && pCAttemperEngineSink->IsJC(dUserID))
  1207. {
  1208. CString csFunName = ToNameEx(wMainCmdID, wCmdTable, pBuffer, iLen, pGetGameString);
  1209. CShowTime Show(csFunName, bSend, wMainCmdID, wCmdTable);
  1210. }
  1211. switch (wMainCmdID)
  1212. {
  1213. case MDM_GR_CONFIG: //配置信息
  1214. {
  1215. switch (wCmdTable)
  1216. {
  1217. case SUB_GR_CONFIG_COLUMN: //列表配置
  1218. {
  1219. TCHAR szBuffer[BUFFERLEN];
  1220. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1221. StringCchCopy(szBuffer, BUFFERLEN, _T("列表配置"));
  1222. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1223. mylog::OutputString(szBuffer, dTablePrivate);
  1224. return;
  1225. }
  1226. case SUB_GR_CONFIG_SERVER: //房间配置
  1227. {
  1228. if (pBuffer) ((CMD_GR_ConfigServer*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1229. else
  1230. {
  1231. TCHAR szBuffer[BUFFERLEN];
  1232. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1233. StringCchCopy(szBuffer, BUFFERLEN, _T("房间配置"));
  1234. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1235. mylog::OutputString(szBuffer, dTablePrivate);
  1236. }
  1237. return;
  1238. }
  1239. case SUB_GR_CONFIG_PROPERTY: //道具配置
  1240. {
  1241. TCHAR szBuffer[BUFFERLEN];
  1242. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1243. StringCchCopy(szBuffer, BUFFERLEN, _T("道具配置"));
  1244. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1245. mylog::OutputString(szBuffer, dTablePrivate);
  1246. return;
  1247. }
  1248. case SUB_GR_CONFIG_FINISH://配置完成
  1249. {
  1250. TCHAR szBuffer[BUFFERLEN];
  1251. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1252. StringCchCopy(szBuffer, BUFFERLEN, _T("配置完成"));
  1253. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1254. mylog::OutputString(szBuffer, dTablePrivate);
  1255. return;
  1256. }
  1257. default:
  1258. TCHAR szBuffer[BUFFERLEN];
  1259. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1260. //StringCchCopy(szBuffer, BUFFERLEN, _T("配置信息->未知协议"));
  1261. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  1262. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1263. mylog::OutputString(szBuffer, dTablePrivate);
  1264. return;
  1265. }
  1266. }
  1267. case MDM_GR_USER: //用户命令
  1268. {
  1269. switch (wCmdTable)
  1270. {
  1271. case SUB_GR_USER_RULE: //用户规则
  1272. {
  1273. TCHAR szBuffer[BUFFERLEN];
  1274. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1275. StringCchCopy(szBuffer, BUFFERLEN, _T("用户规则"));
  1276. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1277. mylog::OutputString(szBuffer, dTablePrivate);
  1278. return;
  1279. }
  1280. case SUB_GR_USER_STATUS: //用户状态
  1281. {
  1282. if (pBuffer) ((CMD_GR_UserStatus*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1283. else
  1284. {
  1285. TCHAR szBuffer[BUFFERLEN];
  1286. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1287. StringCchCopy(szBuffer, BUFFERLEN, _T("用户状态"));
  1288. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1289. mylog::OutputString(szBuffer, dTablePrivate);
  1290. }
  1291. return;
  1292. }
  1293. case SUB_GR_USER_LOOKON: //用户旁观
  1294. {
  1295. TCHAR szBuffer[BUFFERLEN];
  1296. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1297. StringCchCopy(szBuffer, BUFFERLEN, _T("用户旁观"));
  1298. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1299. mylog::OutputString(szBuffer, dTablePrivate);
  1300. return;
  1301. }
  1302. case SUB_GR_USER_SITDOWN: //用户坐下
  1303. {
  1304. if (pBuffer) ((CMD_GR_UserSitDown*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1305. else
  1306. {
  1307. TCHAR szBuffer[BUFFERLEN];
  1308. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1309. StringCchCopy(szBuffer, BUFFERLEN, _T("用户坐下"));
  1310. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1311. mylog::OutputString(szBuffer, dTablePrivate);
  1312. }
  1313. return;
  1314. }
  1315. case SUB_GR_USER_STANDUP: //用户起立
  1316. {
  1317. if (pBuffer) ((CMD_GR_UserStandUp*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1318. else
  1319. {
  1320. TCHAR szBuffer[BUFFERLEN];
  1321. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1322. StringCchCopy(szBuffer, BUFFERLEN, _T("用户起立"));
  1323. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1324. mylog::OutputString(szBuffer, dTablePrivate);
  1325. }
  1326. return;
  1327. }
  1328. case SUB_GR_USER_CHAT: //用户聊天
  1329. {
  1330. TCHAR szBuffer[BUFFERLEN];
  1331. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1332. StringCchCopy(szBuffer, BUFFERLEN, _T("用户聊天"));
  1333. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1334. mylog::OutputString(szBuffer, dTablePrivate);
  1335. return;
  1336. }
  1337. case SUB_GR_USER_EXPRESSION: //用户表情
  1338. {
  1339. if (pBuffer) ((CMD_GR_C_UserExpression*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1340. return;
  1341. }
  1342. case SUB_GR_WISPER_CHAT: //用户私聊
  1343. {
  1344. TCHAR szBuffer[BUFFERLEN];
  1345. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1346. StringCchCopy(szBuffer, BUFFERLEN, _T("用户私聊"));
  1347. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1348. mylog::OutputString(szBuffer, dTablePrivate);
  1349. return;
  1350. }
  1351. case SUB_GR_WISPER_EXPRESSION: //私聊表情
  1352. {
  1353. if (pBuffer) ((CMD_GR_C_WisperExpression*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1354. else
  1355. {
  1356. TCHAR szBuffer[BUFFERLEN];
  1357. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1358. StringCchCopy(szBuffer, BUFFERLEN, _T("私聊表情"));
  1359. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1360. mylog::OutputString(szBuffer, dTablePrivate);
  1361. }
  1362. return;
  1363. }
  1364. //case SUB_GR_PROPERTY_BUY: //购买道具
  1365. //{
  1366. // TCHAR szBuffer[BUFFERLEN];
  1367. // ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1368. // StringCchCopy(szBuffer, BUFFERLEN, _T("购买道具"));
  1369. // mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1370. // mylog::OutputString(szBuffer, dTablePrivate);
  1371. // return;
  1372. //}
  1373. case SUB_GR_PROPERTY_TRUMPET: //喇叭道具
  1374. {
  1375. TCHAR szBuffer[BUFFERLEN];
  1376. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1377. StringCchCopy(szBuffer, BUFFERLEN, _T("喇叭道具"));
  1378. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1379. mylog::OutputString(szBuffer, dTablePrivate);
  1380. return;
  1381. }
  1382. //case SUB_GR_USER_INVITE_REQ: //邀请用户
  1383. //{
  1384. // TCHAR szBuffer[BUFFERLEN];
  1385. // ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1386. // StringCchCopy(szBuffer, BUFFERLEN, _T("邀请用户"));
  1387. // mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1388. // mylog::OutputString(szBuffer, dTablePrivate);
  1389. // return;
  1390. //}
  1391. //case SUB_GR_USER_REPULSE_SIT: //拒绝厌友
  1392. //{
  1393. // TCHAR szBuffer[BUFFERLEN];
  1394. // ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1395. // StringCchCopy(szBuffer, BUFFERLEN, _T("拒绝厌友"));
  1396. // mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1397. // mylog::OutputString(szBuffer, dTablePrivate);
  1398. // return;
  1399. //}
  1400. //case SUB_GR_USER_KICK_USER: //踢出用户
  1401. //{
  1402. // TCHAR szBuffer[BUFFERLEN];
  1403. // ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1404. // StringCchCopy(szBuffer, BUFFERLEN, _T("踢出用户"));
  1405. // mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1406. // mylog::OutputString(szBuffer, dTablePrivate);
  1407. // return;
  1408. //}
  1409. case SUB_GR_USER_INFO_REQ: //请求用户信息
  1410. {
  1411. if (pBuffer) ((CMD_GR_UserInfoReq*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1412. else
  1413. {
  1414. TCHAR szBuffer[BUFFERLEN];
  1415. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1416. StringCchCopy(szBuffer, BUFFERLEN, _T("请求用户信息"));
  1417. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1418. mylog::OutputString(szBuffer, dTablePrivate);
  1419. }
  1420. return;
  1421. }
  1422. case SUB_GR_USER_CHAIR_REQ: //请求更换位置
  1423. {
  1424. TCHAR szBuffer[BUFFERLEN];
  1425. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1426. StringCchCopy(szBuffer, BUFFERLEN, _T("请求更换位置"));
  1427. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1428. mylog::OutputString(szBuffer, dTablePrivate);
  1429. return;
  1430. }
  1431. case SUB_GR_USER_CHAIR_INFO_REQ: //请求椅子用户信息
  1432. {
  1433. TCHAR szBuffer[BUFFERLEN];
  1434. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1435. StringCchCopy(szBuffer, BUFFERLEN, _T("请求椅子用户信息"));
  1436. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1437. mylog::OutputString(szBuffer, dTablePrivate);
  1438. return;
  1439. }
  1440. case SUB_GR_USER_GET_GAME_SCORE_RECORD_LIST:
  1441. {
  1442. TCHAR szBuffer[BUFFERLEN];
  1443. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1444. StringCchCopy(szBuffer, BUFFERLEN, _T("获取牌桌游戏数据简要列表"));
  1445. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1446. mylog::OutputString(szBuffer, dTablePrivate);
  1447. return;
  1448. }
  1449. case SUB_GR_USER_GET_GAME_SCORE_RECORD_DETAIL_INFO:
  1450. {
  1451. return;
  1452. }
  1453. case SUB_GR_USER_GET_GAME_SCORE_RECORD_REPLAY:
  1454. {
  1455. TCHAR szBuffer[BUFFERLEN];
  1456. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1457. StringCchCopy(szBuffer, BUFFERLEN, _T("获取回放记录"));
  1458. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1459. mylog::OutputString(szBuffer, dTablePrivate);
  1460. return;
  1461. }
  1462. case SUB_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST:
  1463. {
  1464. TCHAR szBuffer[BUFFERLEN];
  1465. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1466. StringCchCopy(szBuffer, BUFFERLEN, _T("获取临时积分排行榜"));
  1467. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1468. mylog::OutputString(szBuffer, dTablePrivate);
  1469. return;
  1470. }
  1471. case SUB_GR_USER_CREATE://创建房间
  1472. {
  1473. if (pBuffer) ((CMD_GR_UserSitDown*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1474. else
  1475. {
  1476. TCHAR szBuffer[BUFFERLEN];
  1477. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1478. StringCchCopy(szBuffer, BUFFERLEN, _T("创建房间"));
  1479. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1480. mylog::OutputString(szBuffer, dTablePrivate);
  1481. }
  1482. return;
  1483. }
  1484. case SUB_GR_USER_ADD: //加入房间
  1485. {
  1486. if (pBuffer) ((CMD_GR_UserJoin*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1487. else
  1488. {
  1489. TCHAR szBuffer[BUFFERLEN];
  1490. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1491. StringCchCopy(szBuffer, BUFFERLEN, _T("加入房间"));
  1492. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1493. mylog::OutputString(szBuffer, dTablePrivate);
  1494. }
  1495. return;
  1496. }
  1497. case SUB_GR_USER_SEAT: //玩家坐下请求
  1498. {
  1499. if (pBuffer) ((CMD_GR_UserSeat*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1500. else
  1501. {
  1502. TCHAR szBuffer[BUFFERLEN];
  1503. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1504. StringCchCopy(szBuffer, BUFFERLEN, _T("玩家坐下请求"));
  1505. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1506. mylog::OutputString(szBuffer, dTablePrivate);
  1507. }
  1508. return;
  1509. }
  1510. case SUB_GR_USER_SEAT_ACK:
  1511. {
  1512. if (pBuffer) ((CMD_GR_UserSitAck*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1513. else
  1514. {
  1515. TCHAR szBuffer[BUFFERLEN];
  1516. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1517. StringCchCopy(szBuffer, BUFFERLEN, _T("玩家坐下请求应答"));
  1518. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1519. mylog::OutputString(szBuffer, dTablePrivate);
  1520. }
  1521. return;
  1522. }
  1523. case SUB_GR_USER_ENTER://登陆完成
  1524. {
  1525. if (pBuffer) ((tagMobileUserInfoHead*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1526. else
  1527. {
  1528. TCHAR szBuffer[BUFFERLEN];
  1529. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1530. StringCchCopy(szBuffer, BUFFERLEN, _T("用户进入"));
  1531. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1532. mylog::OutputString(szBuffer, dTablePrivate);
  1533. }
  1534. return;
  1535. }
  1536. case SUB_GR_USER_MYROOM_UPDATA:
  1537. {
  1538. if (pBuffer) ((JN_GR_RoomListEx*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1539. else
  1540. {
  1541. TCHAR szBuffer[BUFFERLEN];
  1542. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1543. StringCchCopy(szBuffer, BUFFERLEN, _T("玩家拥有的房间状态更新"));
  1544. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1545. mylog::OutputString(szBuffer, dTablePrivate);
  1546. }
  1547. return;
  1548. }
  1549. case SUB_GR_USER_ADDCREATE_TABLE_ALL:
  1550. {
  1551. if (pBuffer) ((JN_GR_RoomListGroupEx*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1552. else
  1553. {
  1554. TCHAR szBuffer[BUFFERLEN];
  1555. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1556. StringCchCopy(szBuffer, BUFFERLEN, _T("通知创建的所有房间列表"));
  1557. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1558. mylog::OutputString(szBuffer, dTablePrivate);
  1559. }
  1560. return;
  1561. }
  1562. case SUB_GR_USER_ADDCREATE_TABLE_ID:
  1563. {
  1564. if (pBuffer) ((CMD_GR_UserSitDownAckEx*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1565. else
  1566. {
  1567. TCHAR szBuffer[BUFFERLEN];
  1568. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1569. StringCchCopy(szBuffer, BUFFERLEN, _T("创建加入房间应答"));
  1570. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1571. mylog::OutputString(szBuffer, dTablePrivate);
  1572. }
  1573. return;
  1574. }
  1575. case SUB_GR_USER_GET_BANGDING://绑定代理
  1576. {
  1577. if (pBuffer) ((CMD_GR_BangDing*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1578. else
  1579. {
  1580. TCHAR szBuffer[BUFFERLEN];
  1581. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1582. StringCchCopy(szBuffer, BUFFERLEN, _T("用户命令->绑定代理"));
  1583. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1584. mylog::OutputString(szBuffer, dTablePrivate);
  1585. }
  1586. return;
  1587. }
  1588. case SUB_GR_USER_GET_BANGDINGACK://绑定代理应答
  1589. {
  1590. if (pBuffer) ((CMD_GR_BangDingACK*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1591. else
  1592. {
  1593. TCHAR szBuffer[BUFFERLEN];
  1594. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1595. StringCchCopy(szBuffer, BUFFERLEN, _T("用户命令->绑定代理应答"));
  1596. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1597. mylog::OutputString(szBuffer, dTablePrivate);
  1598. }
  1599. return;
  1600. }
  1601. case SUB_GR_USER_GET_DINGDAN: //获取微信订单
  1602. {
  1603. if (pBuffer) ((CMD_GR_GetDingDan*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1604. else
  1605. {
  1606. TCHAR szBuffer[BUFFERLEN];
  1607. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1608. StringCchCopy(szBuffer, BUFFERLEN, _T("用户命令->获取微信订单"));
  1609. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1610. mylog::OutputString(szBuffer, dTablePrivate);
  1611. }
  1612. return;
  1613. }
  1614. case SUB_GR_USER_GET_DINGDAN_NEW: //新方式获取微信订单
  1615. {
  1616. if (pBuffer) ((CMD_GR_GetDingDanNEW*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1617. else
  1618. {
  1619. TCHAR szBuffer[BUFFERLEN];
  1620. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1621. StringCchCopy(szBuffer, BUFFERLEN, _T("用户命令->获取微信订单"));
  1622. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1623. mylog::OutputString(szBuffer, dTablePrivate);
  1624. }
  1625. return;
  1626. }
  1627. case SUB_GR_USER_CHECK_NAME: //实名认证
  1628. {
  1629. if (pBuffer) ((CMD_GR_CheckName*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1630. else
  1631. {
  1632. TCHAR szBuffer[BUFFERLEN];
  1633. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1634. StringCchCopy(szBuffer, BUFFERLEN, _T("用户命令->实名认证"));
  1635. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1636. mylog::OutputString(szBuffer, dTablePrivate);
  1637. }
  1638. return;
  1639. }
  1640. case SUB_GR_USER_CHECK_NAME_QUERY: //实名认证
  1641. {
  1642. if (pBuffer) ((CMD_GR_CheckName*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1643. else
  1644. {
  1645. TCHAR szBuffer[BUFFERLEN];
  1646. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1647. StringCchCopy(szBuffer, BUFFERLEN, _T("用户命令->实名认证查询"));
  1648. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1649. mylog::OutputString(szBuffer, dTablePrivate);
  1650. }
  1651. return;
  1652. }
  1653. case SUB_GR_USER_GET_DINGDANACK: //获取微信订单应答
  1654. {
  1655. if (pBuffer) ((CMD_GR_ZFXC*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1656. else
  1657. {
  1658. TCHAR szBuffer[BUFFERLEN];
  1659. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1660. StringCchCopy(szBuffer, BUFFERLEN, _T("用户命令->获取微信订单应答"));
  1661. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1662. mylog::OutputString(szBuffer, dTablePrivate);
  1663. }
  1664. }
  1665. case SUB_GR_USER_BEAN:
  1666. {
  1667. if (pBuffer) ((CMD_GR_UserBean*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1668. else
  1669. {
  1670. TCHAR szBuffer[BUFFERLEN];
  1671. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1672. StringCchCopy(szBuffer, BUFFERLEN, _T("用户游戏豆"));
  1673. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1674. mylog::OutputString(szBuffer, dTablePrivate);
  1675. }
  1676. return;
  1677. }
  1678. default:
  1679. {
  1680. TCHAR szBuffer[BUFFERLEN];
  1681. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1682. //StringCchCopy(szBuffer, BUFFERLEN, _T("用户命令->未知协议"));
  1683. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  1684. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1685. mylog::OutputString(szBuffer, dTablePrivate);
  1686. return;
  1687. }
  1688. }
  1689. }
  1690. case MDM_GR_LOGON: //登录命令
  1691. {
  1692. switch (wCmdTable)
  1693. {
  1694. case SUB_GR_LOGON_USERID: //I D 登录
  1695. {
  1696. TCHAR szBuffer[BUFFERLEN];
  1697. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1698. StringCchCopy(szBuffer, BUFFERLEN, _T("I D 登录"));
  1699. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1700. mylog::OutputString(szBuffer, dTablePrivate);
  1701. return;
  1702. }
  1703. case SUB_GR_LOGON_MOBILE: //手机登录
  1704. {
  1705. if (pBuffer)
  1706. {
  1707. CMD_GR_LogonMobile * pLogonMobile = (CMD_GR_LogonMobile *)pBuffer;
  1708. ((CMD_GR_LogonMobile*)pBuffer)->ToShow(dTablePrivate, pLogonMobile->dwUserID);
  1709. }
  1710. else
  1711. {
  1712. CMD_GR_LogonMobile * pLogonMobile = (CMD_GR_LogonMobile *)pBuffer;
  1713. TCHAR szBuffer[BUFFERLEN];
  1714. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1715. StringCchCopy(szBuffer, BUFFERLEN, _T("手机登录"));
  1716. mylog::ToSet(szBuffer, BUFFERLEN, pLogonMobile->dwUserID);
  1717. mylog::OutputString(szBuffer, dTablePrivate);
  1718. }
  1719. return;
  1720. }
  1721. case SUB_GR_LOGON_ACCOUNTS: //帐号登录
  1722. {
  1723. if (pBuffer) ((CMD_GR_LogonAccounts*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1724. else
  1725. {
  1726. TCHAR szBuffer[BUFFERLEN];
  1727. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1728. StringCchCopy(szBuffer, BUFFERLEN, _T("帐号登录"));
  1729. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1730. mylog::OutputString(szBuffer, dTablePrivate);
  1731. }
  1732. return;
  1733. }
  1734. case SUB_GR_LOGON_FINISH://登陆完成
  1735. {
  1736. if (pBuffer) ((CMD_GR_LogonFinish*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1737. else
  1738. {
  1739. TCHAR szBuffer[BUFFERLEN];
  1740. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1741. StringCchCopy(szBuffer, BUFFERLEN, _T("登陆完成"));
  1742. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1743. mylog::OutputString(szBuffer, dTablePrivate);
  1744. }
  1745. return;
  1746. }
  1747. default:
  1748. {
  1749. TCHAR szBuffer[BUFFERLEN];
  1750. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1751. //StringCchCopy(szBuffer, BUFFERLEN, _T("登陆命令->未知协议"));
  1752. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  1753. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1754. mylog::OutputString(szBuffer, dTablePrivate);
  1755. return;
  1756. }
  1757. }
  1758. }
  1759. case MDM_GF_GAME: //游戏命令
  1760. {
  1761. TCHAR szBuffer[BUFFERLEN*3];
  1762. ZeroMemory(szBuffer, BUFFERLEN * 3 * sizeof(TCHAR));
  1763. typedef bool(__stdcall*SubGetStringType)(WORD, const void*, int, void*, int);
  1764. if (pGetGameString)
  1765. {
  1766. SubGetStringType pFuntion = (SubGetStringType)pGetGameString;
  1767. pFuntion(wCmdTable, pBuffer, iLen, szBuffer, BUFFERLEN * 3 * sizeof(TCHAR));
  1768. }
  1769. mylog::ToSet(szBuffer, BUFFERLEN * 3, dUserID);
  1770. mylog::OutputString(szBuffer, dTablePrivate);
  1771. return;
  1772. }
  1773. case MDM_GF_FRAME: //框架命令
  1774. {
  1775. switch (wCmdTable)
  1776. {
  1777. case SUB_GF_GAME_SCENE: //游戏中等待场景
  1778. {
  1779. TCHAR szBuffer[BUFFERLEN];
  1780. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1781. StringCchCopy(szBuffer, BUFFERLEN, _T("游戏中等待场景"));
  1782. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1783. mylog::OutputString(szBuffer, dTablePrivate);
  1784. return;
  1785. }
  1786. case SUB_GF_GAME_SCENEING: //游戏中场景
  1787. {
  1788. TCHAR szBuffer[BUFFERLEN * 3];
  1789. ZeroMemory(szBuffer, BUFFERLEN * 3 * sizeof(TCHAR));
  1790. typedef bool(__stdcall*SubGetStringType)(WORD, const void*, int, void*, int);
  1791. if (pGetGameString)
  1792. {
  1793. SubGetStringType pFuntion = (SubGetStringType)pGetGameString;
  1794. if (pFuntion(wCmdTable, pBuffer, iLen, szBuffer, BUFFERLEN * 3 * sizeof(TCHAR)))
  1795. {
  1796. mylog::ToSet(szBuffer, BUFFERLEN * 3, dUserID);
  1797. mylog::OutputString(szBuffer, dTablePrivate);
  1798. }
  1799. else
  1800. {
  1801. StringCchCopy(szBuffer, BUFFERLEN, _T("游戏场景"));
  1802. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1803. mylog::OutputString(szBuffer, dTablePrivate);
  1804. }
  1805. }
  1806. return;
  1807. }
  1808. case SUB_GF_GAME_USER_DISTANCE: //玩家距离 @yuajing
  1809. {
  1810. TCHAR szBuffer[BUFFERLEN];
  1811. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1812. StringCchCopy(szBuffer, BUFFERLEN, _T("玩家距离"));
  1813. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1814. mylog::OutputString(szBuffer, dTablePrivate);
  1815. return;
  1816. }
  1817. case SUB_GF_GAME_OPTION: //游戏配置
  1818. {
  1819. if (pBuffer) ((CMD_GF_GameOption*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1820. return;
  1821. }
  1822. case SUB_GF_USER_READY: //用户准备
  1823. {
  1824. TCHAR szBuffer[BUFFERLEN];
  1825. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1826. StringCchCopy(szBuffer, BUFFERLEN, _T("用户准备"));
  1827. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1828. mylog::OutputString(szBuffer, dTablePrivate);
  1829. return;
  1830. }
  1831. case SUB_GF_USER_CHAT: //用户聊天
  1832. {
  1833. TCHAR szBuffer[BUFFERLEN];
  1834. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1835. StringCchCopy(szBuffer, BUFFERLEN, _T("用户聊天"));
  1836. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1837. mylog::OutputString(szBuffer, dTablePrivate);
  1838. return;
  1839. }
  1840. case SUB_GF_USER_EXPRESSION: //用户表情
  1841. {
  1842. if (pBuffer) ((CMD_GR_S_UserExpression*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1843. return;
  1844. }
  1845. case SUB_GF_LOOKON_CONFIG: //旁观配置
  1846. {
  1847. TCHAR szBuffer[BUFFERLEN];
  1848. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1849. StringCchCopy(szBuffer, BUFFERLEN, _T("旁观配置"));
  1850. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1851. mylog::OutputString(szBuffer, dTablePrivate);
  1852. return;
  1853. }
  1854. default:
  1855. {
  1856. TCHAR szBuffer[BUFFERLEN];
  1857. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1858. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  1859. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1860. mylog::OutputString(szBuffer, dTablePrivate);
  1861. return;
  1862. }
  1863. }
  1864. }
  1865. case MDM_GR_CLUB:
  1866. {
  1867. switch (wCmdTable)
  1868. {
  1869. case SUB_GR_USER_DISSOLVE_ROOM:
  1870. {
  1871. if (pBuffer)
  1872. {
  1873. ((CMD_GR_ClubDissolveRoom*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1874. return;
  1875. }
  1876. else
  1877. {
  1878. TCHAR szBuffer[BUFFERLEN];
  1879. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1880. StringCchCopy(szBuffer, BUFFERLEN, _T("群主管理员强制解散游戏"));
  1881. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1882. mylog::OutputString(szBuffer, dTablePrivate);
  1883. return;
  1884. }
  1885. }
  1886. case SUB_GR_USER_GET_SAVE_MORE_WANFA:
  1887. case SUB_GR_USER_GET_MORE_WANFA:
  1888. {
  1889. if (pBuffer)
  1890. {
  1891. ((CMD_S_ClubAutoAddInfo*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1892. return;
  1893. }
  1894. else
  1895. {
  1896. TCHAR szBuffer[BUFFERLEN];
  1897. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1898. StringCchCopy(szBuffer, BUFFERLEN, _T("俱乐部额外玩法自动开房请求"));
  1899. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1900. mylog::OutputString(szBuffer, dTablePrivate);
  1901. return;
  1902. }
  1903. }
  1904. case SUB_GR_USER_GET_MORE_WANFA_ACK:
  1905. {
  1906. if (pBuffer)
  1907. {
  1908. ((CMD_GR_Club_Action_Ack1Add*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1909. return;
  1910. }
  1911. else
  1912. {
  1913. TCHAR szBuffer[BUFFERLEN];
  1914. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1915. StringCchCopy(szBuffer, BUFFERLEN, _T("俱乐部额外玩法自动开房响应"));
  1916. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1917. mylog::OutputString(szBuffer, dTablePrivate);
  1918. return;
  1919. }
  1920. }
  1921. default:
  1922. return;
  1923. }
  1924. }
  1925. //case MDM_GR_INSURE: //银行命令
  1926. //case MDM_GR_TASK: //任务命令
  1927. //case MDM_GR_EXCHANGE: //兑换命令
  1928. case MDM_GR_MANAGE: //管理命令
  1929. {
  1930. switch (wCmdTable)
  1931. {
  1932. case SUB_GR_QUERY_OPTION: //查询设置
  1933. {
  1934. TCHAR szBuffer[BUFFERLEN];
  1935. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1936. StringCchCopy(szBuffer, BUFFERLEN, _T("查询设置"));
  1937. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1938. mylog::OutputString(szBuffer, dTablePrivate);
  1939. return;
  1940. }
  1941. case SUB_GR_OPTION_SERVER: //房间设置
  1942. {
  1943. TCHAR szBuffer[BUFFERLEN];
  1944. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1945. StringCchCopy(szBuffer, BUFFERLEN, _T("房间设置"));
  1946. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1947. mylog::OutputString(szBuffer, dTablePrivate);
  1948. return;
  1949. }
  1950. case SUB_GR_KILL_USER: //踢出用户
  1951. {
  1952. TCHAR szBuffer[BUFFERLEN];
  1953. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1954. StringCchCopy(szBuffer, BUFFERLEN, _T("踢出用户"));
  1955. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1956. mylog::OutputString(szBuffer, dTablePrivate);
  1957. return;//
  1958. }
  1959. case SUB_GR_LIMIT_USER_CHAT: //限制聊天
  1960. {
  1961. TCHAR szBuffer[BUFFERLEN];
  1962. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1963. StringCchCopy(szBuffer, BUFFERLEN, _T("限制聊天"));
  1964. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1965. mylog::OutputString(szBuffer, dTablePrivate);
  1966. return;//
  1967. }
  1968. case SUB_GR_KICK_ALL_USER: //踢出用户
  1969. {
  1970. TCHAR szBuffer[BUFFERLEN];
  1971. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1972. StringCchCopy(szBuffer, BUFFERLEN, _T("踢出用户"));
  1973. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1974. mylog::OutputString(szBuffer, dTablePrivate);
  1975. return;//
  1976. }
  1977. case SUB_GR_SEND_MESSAGE: //发布消息
  1978. {
  1979. TCHAR szBuffer[BUFFERLEN];
  1980. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1981. StringCchCopy(szBuffer, BUFFERLEN, _T("发布消息"));
  1982. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1983. mylog::OutputString(szBuffer, dTablePrivate);
  1984. return;
  1985. }
  1986. case SUB_GR_DISMISSGAME: //管理员强制解散游戏
  1987. {
  1988. TCHAR szBuffer[BUFFERLEN];
  1989. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  1990. StringCchCopy(szBuffer, BUFFERLEN, _T("管理员强制解散游戏"));
  1991. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  1992. mylog::OutputString(szBuffer, dTablePrivate);
  1993. return;
  1994. }
  1995. case SUB_GR_DELETE_PRIVATE_TABLE_REQ: //请求删除私有房间
  1996. {
  1997. if (pBuffer) ((CMD_GR_DELETE_PRIVATE_ROOM_REQ*)pBuffer)->ToShow(dTablePrivate, dUserID);
  1998. else
  1999. {
  2000. TCHAR szBuffer[BUFFERLEN];
  2001. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  2002. StringCchCopy(szBuffer, BUFFERLEN, _T("请求删除私有房间"));
  2003. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  2004. mylog::OutputString(szBuffer, dTablePrivate);
  2005. }
  2006. return;
  2007. }
  2008. case SUB_GR_DELETE_PRIVATE_TABLE_RESP://请求删除私有房间响应消息
  2009. {
  2010. if (pBuffer) ((CMD_GR_DELETE_PRIVATE_ROOM_RESP*)pBuffer)->ToShow(dTablePrivate, dUserID);
  2011. else
  2012. {
  2013. TCHAR szBuffer[BUFFERLEN];
  2014. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  2015. StringCchCopy(szBuffer, BUFFERLEN, _T("请求删除私有房间响应消息"));
  2016. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  2017. mylog::OutputString(szBuffer, dTablePrivate);
  2018. }
  2019. return;
  2020. }
  2021. case SUB_GR_SEND_WARNING: //警告用户
  2022. {
  2023. if (pBuffer) ((CMD_GR_SendWarning*)pBuffer)->ToShow(dTablePrivate, dUserID);
  2024. else
  2025. {
  2026. TCHAR szBuffer[BUFFERLEN];
  2027. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  2028. StringCchCopy(szBuffer, BUFFERLEN, _T("警告用户"));
  2029. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  2030. mylog::OutputString(szBuffer, dTablePrivate);
  2031. }
  2032. return;
  2033. }
  2034. default:
  2035. {
  2036. TCHAR szBuffer[BUFFERLEN];
  2037. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  2038. //StringCchCopy(szBuffer, BUFFERLEN, _T("登陆命令->未知协议"));
  2039. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  2040. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  2041. mylog::OutputString(szBuffer, dTablePrivate);
  2042. return;
  2043. }
  2044. }
  2045. }
  2046. case MDM_GR_MATCH: //比赛命令
  2047. {
  2048. TCHAR szBuffer[BUFFERLEN];
  2049. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  2050. StringCchCopy(szBuffer, BUFFERLEN, _T("比赛命令"));
  2051. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  2052. mylog::OutputString(szBuffer, dTablePrivate);
  2053. }
  2054. default:
  2055. {
  2056. TCHAR szBuffer[BUFFERLEN];
  2057. ZeroMemory(szBuffer, BUFFERLEN * sizeof(TCHAR));
  2058. //StringCchCopy(szBuffer, BUFFERLEN, _T("登陆命令->未知协议"));
  2059. _snwprintf(szBuffer, BUFFERLEN, _T("[%d:%d]"), wMainCmdID, wCmdTable);
  2060. mylog::ToSet(szBuffer, BUFFERLEN, dUserID);
  2061. mylog::OutputString(szBuffer, dTablePrivate);
  2062. return;
  2063. }
  2064. }
  2065. }
  2066. //运行
  2067. unsigned __stdcall Commend::LogRuns(void* pParam)
  2068. {
  2069. int nCount = 1;
  2070. // 线程开始
  2071. do
  2072. {
  2073. Sleep(30000);// 每隔30秒写一次日志
  2074. //检测目录是否存在
  2075. CString strLog = m_Patch;
  2076. if (!PathIsDirectory(strLog))
  2077. {
  2078. CreateDirectory(strLog, NULL);
  2079. }
  2080. CTime csData = CTime::GetCurrentTime();
  2081. CString csNow;
  2082. csNow.Format(_T("%2d月%2d日-%2d时"), csData.GetMonth(), csData.GetDay(), csData.GetHour());
  2083. strLog = strLog + csNow + _T("\\");
  2084. if (!PathIsDirectory(strLog))
  2085. {
  2086. CreateDirectory(strLog, NULL);
  2087. }
  2088. //获取日志
  2089. std::unordered_map<DWORD, CString> Ret = GetLog();
  2090. for (std::unordered_map<DWORD, CString>::iterator iter = Ret.begin(); iter != Ret.end(); iter++)
  2091. {
  2092. DWORD dTable = iter->first;
  2093. CString csText = iter->second;
  2094. if (csText.GetLength() == 0 && csText.IsEmpty()) continue;
  2095. CString csTable;
  2096. csTable.Format(_T("table%ld"), dTable);
  2097. CString strLogTempPath = strLog + csTable + _T(".html");
  2098. CStdioFile* m_pFile = new CStdioFile;
  2099. if (m_pFile == NULL)
  2100. {
  2101. m_enStatus = ENUM_LOG_INVALID;
  2102. break;
  2103. }
  2104. BOOL bRet = m_pFile->Open(
  2105. strLogTempPath,
  2106. CFile::modeWrite | CFile::modeCreate | CFile::typeBinary | CFile::shareDenyNone | CFile::modeNoTruncate);
  2107. if (bRet)
  2108. {
  2109. m_enStatus = ENUM_LOG_RUN;
  2110. WriteUnicodeHeadToFile(m_pFile);
  2111. try
  2112. {
  2113. char* old_locale = _strdup(setlocale(LC_CTYPE, NULL));
  2114. setlocale(LC_CTYPE, "chs");//设定
  2115. m_pFile->SeekToEnd();
  2116. m_pFile->WriteString(_T("<!DOCTYPE HTML PUBLIC \" -//W3C//DTD HTML 4.01 Transitional//EN\"><head><meta http - equiv = \"Content-Type\" content = \"text/html; charset=utf-8\" / ><title>日志查询</title><script type = \"text/javascript\" src = \"https://www.vrmkj.com/js/js.js\"></script><script type = \"text/javascript\"> window.onload = function() { load(); }</script></head>"));
  2117. m_pFile->Flush();
  2118. setlocale(LC_CTYPE, old_locale);
  2119. free(old_locale);//还原区域设定
  2120. }
  2121. catch (...)
  2122. {
  2123. m_enStatus = ENUM_LOG_INVALID;
  2124. }
  2125. }
  2126. else
  2127. {
  2128. delete m_pFile;
  2129. m_pFile = NULL;
  2130. m_enStatus = ENUM_LOG_INVALID;
  2131. break;
  2132. }
  2133. //写数据
  2134. if (m_enStatus == ENUM_LOG_INIT
  2135. || m_enStatus == ENUM_LOG_EXITED
  2136. || m_enStatus == ENUM_LOG_INVALID
  2137. )
  2138. {
  2139. delete m_pFile;
  2140. m_pFile = NULL;
  2141. m_enStatus = ENUM_LOG_INVALID;
  2142. break;
  2143. }
  2144. try
  2145. {
  2146. char* old_locale = _strdup(setlocale(LC_CTYPE, NULL));
  2147. setlocale(LC_CTYPE, "chs");//设定
  2148. m_pFile->SeekToEnd();
  2149. m_pFile->WriteString(csText);
  2150. m_pFile->Flush();
  2151. setlocale(LC_CTYPE, old_locale);
  2152. free(old_locale);//还原区域设定
  2153. }
  2154. catch (...)
  2155. {
  2156. m_enStatus = ENUM_LOG_INVALID;
  2157. }
  2158. csText.Empty();
  2159. // 此次写结束
  2160. if (m_pFile != NULL)
  2161. {
  2162. m_pFile->Close();
  2163. delete m_pFile;
  2164. m_pFile = NULL;
  2165. }
  2166. }
  2167. Ret.clear();
  2168. } while (m_bRun);
  2169. std::unordered_map<DWORD, CString> Ret = GetLog();
  2170. Ret.clear();
  2171. m_enStatus = ENUM_LOG_EXITED;
  2172. _endthreadex(0);
  2173. return 0;
  2174. }
  2175. int Commend::WriteUnicodeHeadToFile(CStdioFile* pFile)
  2176. {
  2177. if (pFile == NULL)
  2178. {
  2179. return -1;
  2180. }
  2181. try
  2182. {
  2183. if (pFile->GetLength() == 0)
  2184. {
  2185. pFile->Write("\377\376", 2);
  2186. pFile->Flush();
  2187. }
  2188. }
  2189. catch (...)
  2190. {
  2191. return -1;
  2192. }
  2193. return 0;
  2194. }
  2195. CString& Commend::GetCurTimeStr()
  2196. {
  2197. CTime g_tmCurTime = CTime::GetCurrentTime();// time(NULL);
  2198. CString g_strTime = g_tmCurTime.Format(_T("%Y-%m-%d %H:%M:%S "));
  2199. return g_strTime;
  2200. }