cc.Class({ extends: cc.RePlayEngine, properties: { }, /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //调用接口 CustomGameData:function(GameIndex, TempData, DataIndex){ switch(TempData.wSubCmdID){ case GameDef.SUB_S_GAME_START:{ TempData.pStruct = GameDef.CMD_S_GameStart(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_GameStart SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize); this.GameData[GameIndex].push(TempData); break } case GameDef.SUB_S_OUT_CARD:{ TempData.pStruct = GameDef.CMD_S_OutCard(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_OutCard SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) this.GameData[GameIndex].push(TempData); break } case GameDef.SUB_S_REPLACE_CARD:{ TempData.pStruct = GameDef.CMD_S_ReplaceCard(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_ReplaceCard SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) this.GameData[GameIndex].push(TempData); break } case GameDef.SUB_S_SEND_CARD:{ TempData.pStruct = GameDef.CMD_S_SendCard(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_SendCard SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) this.GameData[GameIndex].push(TempData); break } case GameDef.SUB_S_OPERATE_NOTIFY:{ TempData.pStruct = GameDef.CMD_S_OperateNotify(); var size = gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex); TempData.pStruct.pItem = new Array(TempData.pStruct.wCount); for (var i = 0; i < TempData.pStruct.wCount; i++) { TempData.pStruct.pItem[i] = GameDef.CMD_WeaveItem(); } if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_OperateNotify SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize); if( this.m_GameBase.InfoHead.wLookChair == TempData.wChairID ) { this.GameData[GameIndex].push(TempData); } break } case GameDef.SUB_S_OPERATE_RESULT: { TempData.pStruct = GameDef.CMD_S_OperateResult(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_OperateResult SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) this.GameData[GameIndex].push(TempData); break } case GameDef.SUB_S_GAME_END: { TempData.pStruct = GameDef.CMD_S_GameEnd(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_GameEnd SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) this.GameData[GameIndex].push(TempData); break } case GameDef.SUB_S_TRUSTEE: { TempData.pStruct = GameDef.CMD_S_Trustee(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_Trustee SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) this.GameData[GameIndex].push(TempData); break } case GameDef.SUB_S_LEAVE: { TempData.pStruct = GameDef.CMD_S_Leave(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_Leave SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) this.GameData[GameIndex].push(TempData); break } case GameDef.SUB_S_USER_DOUBLE: { TempData.pStruct = GameDef.CMD_S_Double(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_Double SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) this.GameData[GameIndex].push(TempData); break } case GameDef.SUB_S_GAME_DOUBLE: { TempData.pStruct = GameDef.CMD_S_Game_Double(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_Game_Double SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) this.GameData[GameIndex].push(TempData); break } case GameDef.SUB_S_UPDATE_CARD: { TempData.pStruct = GameDef.CMD_S_HandCardData(); if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ console.error("CMD_S_HandCardData SizeErr ") return false; } TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) this.GameData[GameIndex].push(TempData); break } // case GameDef.SUB_S_TING: // { // TempData.pStruct = GameDef.CMD_TingTip(); // if(gCByte.Bytes2Str(TempData.pStruct , this.m_PlayData, DataIndex) != TempData.wDataSize){ // console.error("CMD_TingTip SizeErr ") // return false; // } // TempData.ByteData = this.m_PlayData.slice( DataIndex , DataIndex + TempData.wDataSize) // this.GameData[GameIndex].push(TempData); // break // } default: { if(window.LOG_NET_DATA)console.log("MDM_GF_GAME skip msg "+TempData.wSubCmdID) } } return true; }, CustomGameDataParseEnd:function(index){ for (var i = 0; i < this.GameData[index].length; ){ if( this.GameData[index][i].wSubCmdID == GameDef.SUB_S_UPDATE_CARD && this.GameData[index][i-1] != null ){ if( this.GameData[index][i-1].UpdateCard == null ){ this.GameData[index][i-1].UpdateCard = new Array(); } if( this.GameData[index][i].UpdateCard != null ){ for (var j = 0; j < this.GameData[index][i].UpdateCard.length; j++) { this.GameData[index][i-1].UpdateCard.push(this.GameData[index][i].UpdateCard[j]); } } this.GameData[index][i-1].UpdateCard.push(this.GameData[index][i]); this.GameData[index].splice(i,1); }else{ i++ } } var SelfStartIndex = -1; var StartCardData = new Array(); for (var i = 0; i < this.GameData[index].length;i++ ){ if( this.GameData[index][i].wSubCmdID == GameDef.SUB_S_GAME_START){ if( this.m_GameBase.InfoHead.wLookChair == this.GameData[index][i].wChairID ){ this.GameData[index][i].StartCardData = StartCardData; }else{ StartCardData.push(this.GameData[index][i]); } } } for (var i = 0; i < this.GameData[index].length; ){ if( this.GameData[index][i].wSubCmdID == GameDef.SUB_S_GAME_START && this.m_GameBase.InfoHead.wLookChair != this.GameData[index][i].wChairID){ this.GameData[index].splice(i,1); }else{ i++ } } }, ShowIndexCustom:function(wShowIndex){ var pData = this.GameData[this.m_PGIndex]; if( pData != null ){ if( pData[wShowIndex].UpdateCard != null ){ for (var i = 0; i < pData[wShowIndex].UpdateCard.length; i++) { var pMsg = pData[wShowIndex].UpdateCard[i]; this.m_GameEngine.OnEventGameMessage(pMsg.wSubCmdID,pMsg.ByteData,pMsg.wDataSize) } } if( pData[wShowIndex] != null ) { if( pData[wShowIndex].wSubCmdID == GameDef.SUB_S_GAME_END) { // this.m_GameEngine.unschedule( this.m_GameEngine.OnTimeIDI_PERFORM_END); } else if(pData[wShowIndex].wSubCmdID == GameDef.SUB_S_GAME_START){ this.m_GameView.m_CardView.m_CenterViewCtrl.updateNorth(); var startData = pData[wShowIndex].StartCardData; for (var i = 0; i < startData.length; i++) { var viewID = this.m_GameEngine.SwitchViewChairID(startData[i].wChairID); this.m_GameView.m_CardView.SetCardData(viewID,startData[i].pStruct.cbCardData,GameDef.MAX_COUNT-1,null); } } else if( pData[wShowIndex].wSubCmdID != GameDef.SUB_S_OPERATE_NOTIFY) { this.m_GameView.m_CardView.SetControlInfo(false); } } if( pData[wShowIndex].UpdateCard != null ) { for (var i = 0; i < pData[wShowIndex].UpdateCard.length; i++) { var pMsg = pData[wShowIndex].UpdateCard[i]; this.m_GameEngine.OnEventGameMessage(pMsg.wSubCmdID,pMsg.ByteData,pMsg.wDataSize); } } for (var i=0;i