ReplayEngine_21201.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. cc.Class({
  2. extends: cc.RePlayEngine,
  3. properties: {
  4. },
  5. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6. //调用接口
  7. CustomGameData:function(GameIndex, TempData, DataIndex){
  8. switch(TempData.wSubCmdID){
  9. case GameDef.SUB_S_GAME_START:{
  10. TempData.pStruct = GameDef.CMD_S_GameStart();
  11. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  12. console.error("CMD_S_GameStart SizeErr ")
  13. return false;
  14. }
  15. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize);
  16. this.GameData[GameIndex].push(TempData);
  17. break
  18. }
  19. case GameDef.SUB_S_OUT_CARD:{
  20. TempData.pStruct = GameDef.CMD_S_OutCard();
  21. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  22. console.error("CMD_S_OutCard SizeErr ")
  23. return false;
  24. }
  25. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  26. this.GameData[GameIndex].push(TempData);
  27. break
  28. } case GameDef.SUB_S_REPLACE_CARD:{
  29. TempData.pStruct = GameDef.CMD_S_ReplaceCard();
  30. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  31. console.error("CMD_S_ReplaceCard SizeErr ")
  32. return false;
  33. }
  34. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  35. this.GameData[GameIndex].push(TempData);
  36. break
  37. }
  38. case GameDef.SUB_S_SEND_CARD:{
  39. TempData.pStruct = GameDef.CMD_S_SendCard();
  40. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  41. console.error("CMD_S_SendCard SizeErr ")
  42. return false;
  43. }
  44. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  45. this.GameData[GameIndex].push(TempData);
  46. break
  47. }
  48. case GameDef.SUB_S_OPERATE_NOTIFY:{
  49. TempData.pStruct = GameDef.CMD_S_OperateNotify();
  50. var size = gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex);
  51. TempData.pStruct.pItem = new Array(TempData.pStruct.wCount);
  52. for (var i = 0; i < TempData.pStruct.wCount; i++) {
  53. TempData.pStruct.pItem[i] = GameDef.CMD_WeaveItem();
  54. }
  55. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  56. console.error("CMD_S_OperateNotify SizeErr ")
  57. return false;
  58. }
  59. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize);
  60. if( this.m_GameBase.InfoHead.wLookChair == TempData.wChairID )
  61. {
  62. this.GameData[GameIndex].push(TempData);
  63. }
  64. break
  65. }
  66. case GameDef.SUB_S_OPERATE_RESULT:
  67. {
  68. TempData.pStruct = GameDef.CMD_S_OperateResult();
  69. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  70. console.error("CMD_S_OperateResult SizeErr ")
  71. return false;
  72. }
  73. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  74. this.GameData[GameIndex].push(TempData);
  75. break
  76. }
  77. case GameDef.SUB_S_GAME_END:
  78. {
  79. TempData.pStruct = GameDef.CMD_S_GameEnd();
  80. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  81. console.error("CMD_S_GameEnd SizeErr ")
  82. return false;
  83. }
  84. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  85. this.GameData[GameIndex].push(TempData);
  86. break
  87. }
  88. case GameDef.SUB_S_TRUSTEE:
  89. {
  90. TempData.pStruct = GameDef.CMD_S_Trustee();
  91. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  92. console.error("CMD_S_Trustee SizeErr ")
  93. return false;
  94. }
  95. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  96. this.GameData[GameIndex].push(TempData);
  97. break
  98. }
  99. case GameDef.SUB_S_LEAVE:
  100. {
  101. TempData.pStruct = GameDef.CMD_S_Leave();
  102. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  103. console.error("CMD_S_Leave SizeErr ")
  104. return false;
  105. }
  106. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  107. this.GameData[GameIndex].push(TempData);
  108. break
  109. }
  110. case GameDef.SUB_S_USER_DOUBLE:
  111. {
  112. TempData.pStruct = GameDef.CMD_S_Double();
  113. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  114. console.error("CMD_S_Double SizeErr ")
  115. return false;
  116. }
  117. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  118. this.GameData[GameIndex].push(TempData);
  119. break
  120. }
  121. case GameDef.SUB_S_GAME_DOUBLE:
  122. {
  123. TempData.pStruct = GameDef.CMD_S_Game_Double();
  124. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  125. console.error("CMD_S_Game_Double SizeErr ")
  126. return false;
  127. }
  128. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  129. this.GameData[GameIndex].push(TempData);
  130. break
  131. }
  132. case GameDef.SUB_S_UPDATE_CARD:
  133. {
  134. TempData.pStruct = GameDef.CMD_S_HandCardData();
  135. if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  136. console.error("CMD_S_HandCardData SizeErr ")
  137. return false;
  138. }
  139. TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  140. this.GameData[GameIndex].push(TempData);
  141. break
  142. }
  143. // case GameDef.SUB_S_TING:
  144. // {
  145. // TempData.pStruct = GameDef.CMD_TingTip();
  146. // if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){
  147. // console.error("CMD_TingTip SizeErr ")
  148. // return false;
  149. // }
  150. // TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize)
  151. // this.GameData[GameIndex].push(TempData);
  152. // break
  153. // }
  154. default:
  155. {
  156. if(window.LOG_NET_DATA)console.log("MDM_GF_GAME skip msg "+TempData.wSubCmdID)
  157. }
  158. }
  159. return true;
  160. },
  161. CustomGameDataParseEnd:function(index){
  162. for (var i = 0; i < this.GameData[index].length; ){
  163. if( this.GameData[index][i].wSubCmdID == GameDef.SUB_S_UPDATE_CARD && this.GameData[index][i-1] != null ){
  164. if( this.GameData[index][i-1].UpdateCard == null ){
  165. this.GameData[index][i-1].UpdateCard = new Array();
  166. }
  167. if( this.GameData[index][i].UpdateCard != null ){
  168. for (var j = 0; j < this.GameData[index][i].UpdateCard.length; j++) {
  169. this.GameData[index][i-1].UpdateCard.push(this.GameData[index][i].UpdateCard[j]);
  170. }
  171. }
  172. this.GameData[index][i-1].UpdateCard.push(this.GameData[index][i]);
  173. this.GameData[index].splice(i,1);
  174. }else{
  175. i++
  176. }
  177. }
  178. var SelfStartIndex = -1;
  179. var StartCardData = new Array();
  180. for (var i = 0; i < this.GameData[index].length;i++ ){
  181. if( this.GameData[index][i].wSubCmdID == GameDef.SUB_S_GAME_START){
  182. if( this.m_GameBase.InfoHead.wLookChair == this.GameData[index][i].wChairID ){
  183. this.GameData[index][i].StartCardData = StartCardData;
  184. }else{
  185. StartCardData.push(this.GameData[index][i]);
  186. }
  187. }
  188. }
  189. for (var i = 0; i < this.GameData[index].length; ){
  190. if( this.GameData[index][i].wSubCmdID == GameDef.SUB_S_GAME_START &&
  191. this.m_GameBase.InfoHead.wLookChair != this.GameData[index][i].wChairID){
  192. this.GameData[index].splice(i,1);
  193. }else{
  194. i++
  195. }
  196. }
  197. },
  198. ShowIndexCustom:function(wShowIndex){
  199. var pData = this.GameData[this.m_PGIndex];
  200. if( pData != null ){
  201. if( pData[wShowIndex].UpdateCard != null ){
  202. for (var i = 0; i < pData[wShowIndex].UpdateCard.length; i++) {
  203. var pMsg = pData[wShowIndex].UpdateCard[i];
  204. this.m_GameEngine.OnEventGameMessage(pMsg.wSubCmdID,pMsg.ByteData,pMsg.wDataSize)
  205. }
  206. }
  207. if( pData[wShowIndex] != null )
  208. {
  209. if( pData[wShowIndex].wSubCmdID == GameDef.SUB_S_GAME_END)
  210. {
  211. // this.m_GameEngine.unschedule( this.m_GameEngine.OnTimeIDI_PERFORM_END);
  212. }
  213. else if(pData[wShowIndex].wSubCmdID == GameDef.SUB_S_GAME_START){
  214. this.m_GameView.m_CardView.m_CenterViewCtrl.updateNorth();
  215. var startData = pData[wShowIndex].StartCardData;
  216. for (var i = 0; i < startData.length; i++) {
  217. var viewID = this.m_GameEngine.SwitchViewChairID(startData[i].wChairID);
  218. this.m_GameView.m_CardView.SetCardData(viewID,startData[i].pStruct.cbCardData,GameDef.MAX_COUNT-1,null);
  219. }
  220. }
  221. else if( pData[wShowIndex].wSubCmdID != GameDef.SUB_S_OPERATE_NOTIFY)
  222. {
  223. this.m_GameView.m_CardView.SetControlInfo(false);
  224. }
  225. }
  226. if( pData[wShowIndex].UpdateCard != null )
  227. {
  228. for (var i = 0; i < pData[wShowIndex].UpdateCard.length; i++) {
  229. var pMsg = pData[wShowIndex].UpdateCard[i];
  230. this.m_GameEngine.OnEventGameMessage(pMsg.wSubCmdID,pMsg.ByteData,pMsg.wDataSize);
  231. }
  232. }
  233. for (var i=0;i<GameDef.GAME_PLAYER;++i){
  234. //变量定义
  235. var viewID = this.m_GameEngine.SwitchViewChairID(i);
  236. if( this.m_GameView.m_pIClientUserItem[viewID] == null) continue;
  237. this.m_GameView.m_CardView.SetCardItemState(viewID, GameDef.HAND_STATE_SHOW);
  238. }
  239. }
  240. },
  241. ShowEndIndexCustom:function(wShowIndex){
  242. var pData = this.GameData[this.m_PGIndex];
  243. if( pData != null ){
  244. var bJump = -1;
  245. if( pData[wShowIndex] != null )
  246. {
  247. if(pData[wShowIndex].noWait != null && pData[wShowIndex].noWait )
  248. {
  249. this.ShowIndex(wShowIndex+1);
  250. }
  251. }
  252. }
  253. },
  254. GetGameEndData:function(info){
  255. if( this.GameData == null) return;
  256. var list = new Array();
  257. for (var i = 0; i < this.GameData.length; i++) {
  258. list[i] = new Array();
  259. list[i].score = new Array(this.GameData[i].user.length);
  260. list[i].userID = new Array(this.GameData[i].user.length);
  261. for (var k = 0; k < this.GameData[i].length; k++) {
  262. if( this.GameData[i][k].wSubCmdID == GameDef.SUB_S_GAME_END ){
  263. for (var j = 0; j < list[i].score.length; j++) {
  264. list[i].userID[j] = this.GameData[i][k].pStruct.dwUserID[j];
  265. list[i].score[j] = this.GameData[i][k].pStruct.lGameScore[j] + this.GameData[i][k].pStruct.lGangScore[j];
  266. }
  267. }
  268. }
  269. }
  270. return list;
  271. }
  272. // update (dt) {},
  273. });