ClientProtocol.cpp
上传用户:bsw_2008
上传日期:2013-07-09
资源大小:2446k
文件大小:3k
源码类别:

棋牌游戏

开发平台:

Visual C++

  1. // ClientProtocol.cpp: implementation of the CClientProtocol class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "cgamehallframe.h"
  6. #include "ClientProtocol.h"
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char THIS_FILE[]=__FILE__;
  10. #define new DEBUG_NEW
  11. #endif
  12. //////////////////////////////////////////////////////////////////////
  13. // Construction/Destruction
  14. //////////////////////////////////////////////////////////////////////
  15. CClientProtocol::CClientProtocol()
  16. {
  17. }
  18. CClientProtocol::~CClientProtocol()
  19. {
  20. }
  21. char CClientProtocol::Anaysys(CString str)
  22. {
  23. char k=' ',ch;int i=0,i1,i2,i3;
  24. ch=str.GetAt(i);
  25. if(ch!=char(20))
  26. return k;
  27. k=str.GetAt(++i);
  28. name.Empty();
  29. switch(k)
  30. {
  31. case 'M':
  32. ch=str.GetAt(++i);
  33. while(ch!=' '&&ch!=char(20))
  34. {
  35. name+=ch;
  36. ch=str.GetAt(++i);
  37. }
  38. break;
  39. case 'O':
  40. ch=str.GetAt(++i);
  41. if(ch=='1')
  42. {
  43. right=1;
  44. for(i1=0;i1<4;i1++)
  45. for(i2=0;i2<4;i2++)
  46. for(i3=0;i3<4;i3++)
  47. {
  48. ch=str.GetAt(++i);
  49. table[i1][i2].d[i3]=(int)(ch-'0');
  50. }
  51. }
  52. else
  53. right=0;
  54. break;
  55. case 'B':
  56. case 'P':
  57. desk=0;
  58. ch=str.GetAt(++i);
  59. while(ch!=' '&&ch!=char(20))
  60. {
  61. desk=desk*10+(int)(ch-'0');
  62. ch=str.GetAt(++i);
  63. }
  64. ch=str.GetAt(++i);
  65. direct=(int)(ch-'0');
  66. break;
  67. case 'Q':
  68. for(i1=0;i1<4;i1++)
  69. {
  70. ch=str.GetAt(++i);
  71. if(ch=='1')
  72. {
  73. user.ID[i1]=1;
  74. i++;
  75. ch=str.GetAt(++i);user.name[i1].Empty();
  76. while(ch!=' '&&ch!=char(20))
  77. {
  78. user.name[i1]+=ch;
  79. ch=str.GetAt(++i);
  80. }
  81. ch=str.GetAt(++i);
  82. user.sex[i1].Empty();
  83. while(ch!=' '&&ch!=char(20))
  84. {
  85. user.sex[i1]+=ch;
  86. ch=str.GetAt(++i);
  87. }
  88. ch=str.GetAt(++i);
  89. user.score[i1].Empty();
  90. while(ch!=' '&&ch!=char(20))
  91. {
  92. user.score[i1]+=ch;
  93. ch=str.GetAt(++i);
  94. }
  95. }else
  96. {
  97. user.ID[i1]=0;
  98. ch=str.GetAt(++i);
  99. }
  100. }
  101. break;
  102. case 'A':
  103. ch=str.GetAt(++i);chat.Empty();
  104. while(ch!=char(20))
  105. {
  106. chat+=ch;
  107. ch=str.GetAt(++i);
  108. }
  109. break;
  110. case 'D':
  111. ch=str.GetAt(++i);
  112. if(ch=='2')
  113. war_kind=TRUE;
  114. else
  115. war_kind=FALSE;
  116. ch=str.GetAt(++i);
  117. r=(int)(ch-'0');
  118. break;
  119. case 'G':
  120. case 'R':
  121. case 'F':
  122. case 'H':
  123. ch=str.GetAt(++i);from.x=0;
  124. while(ch!=' '&&ch!=char(20))
  125. {
  126. from.x=from.x*10+(int)(ch-'0');
  127. ch=str.GetAt(++i);
  128. }
  129. ch=str.GetAt(++i);from.y=0;
  130. while(ch!=' '&&ch!=char(20))
  131. {
  132. from.y=from.y*10+(int)(ch-'0');
  133. ch=str.GetAt(++i);
  134. }
  135. ch=str.GetAt(++i);to.x=0;
  136. while(ch!=' '&&ch!=char(20))
  137. {
  138. to.x=to.x*10+(int)(ch-'0');
  139. ch=str.GetAt(++i);
  140. }
  141. ch=str.GetAt(++i);to.y=0;
  142. while(ch!=' '&&ch!=char(20))
  143. {
  144. to.y=to.y*10+(int)(ch-'0');
  145. ch=str.GetAt(++i);
  146. }
  147. ch=str.GetAt(++i);
  148. r=(int)(ch-'0');
  149. break;
  150. case 'I':
  151. ch=str.GetAt(++i);
  152. direct=(int)(ch-'0');
  153. r=-1;
  154. break;
  155. }
  156. return k;
  157. }