void CScabbyQueenPlayer::SendComplete(TInt aError) { switch (iSendMode) { case ESendReadyForUpdate: SendReadyForUpdateComplete(); break; case ESendRecvTokenSuccess: SentTokenRecvSuccess(); break; case ESendCardRecvNotification: SentCardRecvNotification(); break; case ESendGameStatus: SentGameStatus(); break; case ESendReadyForToken: SentReadyForToken(); break; case ESendCardNumber: SendOfCardNumberComplete(); break; case ESendOwnHandSize: SendOfHandSizeComplete(); break; case ESendPlayerCard: SendCardComplete(); break; case EPlayerSendAckSendCard: SendCard(); break; case EPlayerSendAckRecvHandSize: PrepareToSendCard(); break; case EPlayerSendAckRecvCard: RecvOfCardComplete(); break; case EPlayerSendAckRecvWait: AckSentAfterRecvWait(aError); break; default: break; } }
void CScabbyQueenPlayer::RecvComplete(TInetAddr /*aRecvAddr*/, TInt /*aError*/) { switch (iRecvMode) { case EPlayerRecvNum: RecvOfPlayerNumComplete(); break; case EPlayerRecvHand: RecvOfHandComplete(); break; case EPlayerRecvStatus: RecvOfPlayTokenComplete(); break; case EGameStatus: SendGameStatus(); break; case EPlayerUpdate: ReceiveNextRole(); break; case EDealerReady: RecvUpdate(); break; case ERecvHandSize: RecvHandSize(); break; case ERecvCardNum: SendCard(); break; case ERecvCard: RecvOfCardComplete(); break; default: break; } }
//设置服务器时间 void CTableFrameSink::SetGameTimer(WORD wTimerID,UINT nElapse) { nElapse=nElapse*1000; /*SetTimer(NULL,wTimerID,nElapse,NULL); MSG msg; msg.message=NULL; PeekMessage(&msg,NULL,NULL,NULL,FALSE); while(GetMessage(&msg,NULL,NULL,NULL)) { if(msg.message==WM_TIMER) { SendCard(); break; } } KillTimer(NULL,wTimerID);*/ Sleep(nElapse); SendCard(); }
//定时器消息 void CGameClientView::OnTimer(UINT nIDEvent) { if (nIDEvent==IDI_CARTOON) //动画到时 { //变量定义 bool bKillTimer=true; //闪牌动画 if(m_bStopDraw && (FlashCard()==true)) { bKillTimer=false; } //比牌动画 if ((m_wLoserUser!=INVALID_CHAIR)&&(CompareCard()==true)) { bKillTimer=false; } //发牌动画 if ((m_SendCardItemArray.GetCount()>0)&&(SendCard()==true)) { bKillTimer=false; } //删除时间 if (bKillTimer==true) { m_bCartoon=false; KillTimer(nIDEvent); } return; } __super::OnTimer(nIDEvent); }
//游戏开始 bool CServerGameDesk::GameBegin(BYTE bBeginFlag) { if (__super::GameBegin(bBeginFlag)==false) { GameFinish(0,GF_SALE); return false; } m_bGameStation = GS_SEND_CARD; //游戏状态 //-ADD--BY---DWJ-20121203 //这里每盘根据房间ID读取下配置文件中的ReSetAIHaveWinMoney 参数 设定下机器人赢了多少钱; GetAIContrlSetFromIni(m_pDataManage->m_InitData.uRoomID); //牛牛玩家人数 m_byCowUserNum = 0; //是否牛牛玩家 memset(m_bIsCowUser, false, sizeof(m_bIsCowUser)); for (int i = 0; i < PLAY_COUNT; ++i) { if(m_pUserInfo[i]) { m_bIsInGame[i] = true; } } //分发扑克 m_Logic.RandCard(m_iTotalCard,m_iAllCardCount,m_bHaveKing); int temp = rand()%100; //洗到好牌 if (temp < m_iGoodCard) { for (int i=0; i<20; i++) { if (GetMaxCardShape(m_iTotalCard,m_iAllCardCount) > UG_BULL_SEVEN) { break; } m_Logic.RandCard(m_iTotalCard,m_iAllCardCount,m_bHaveKing); } } srand(GetTickCount()); m_bGameStation = GS_SEND_CARD; BeginUpgradeStruct begindata; ::CopyMemory(begindata.bIsInGame,m_bIsInGame,sizeof(m_bIsInGame)); for(int i = 0; i < PLAY_COUNT; ++i) { if(NULL == m_pUserInfo[i]) continue; SendGameData(i,&begindata,sizeof(BeginUpgradeStruct),MDM_GM_GAME_NOTIFY,ASS_BEGIN_UPGRADE,0); } SendWatchData(m_bMaxPeople,&begindata,sizeof(BeginUpgradeStruct),MDM_GM_GAME_NOTIFY,ASS_BEGIN_UPGRADE,0); SendCard(); DebugPrintf("游戏开始__ happy landowner gamebing end!"); return true; }