//旁观动作 bool __cdecl CTableFrame::PerformLookonAction(WORD wChairID, IServerUserItem * pIServerUserItem) { //效验参数 ASSERT(pIServerUserItem!=NULL); ASSERT(wChairID<m_wChairCount); ASSERT(pIServerUserItem->GetTableID()==INVALID_TABLE); ASSERT(pIServerUserItem->GetChairID()==INVALID_CHAIR); //变量定义 DWORD dwMasterRight=pIServerUserItem->GetUserData()->dwUserRight; //权限判断 if (CUserRight::CanLookon(dwMasterRight)==false) { //发送消息 LPCTSTR pszMessage=TEXT("抱歉,你没有进行旁观游戏的权限,若需要帮助,请联系游戏客服咨询!"); SendSitFailedPacket(pIServerUserItem,pszMessage); return false; } //关闭查询 if ((dwMasterRight==0L)&&(m_pIGameServiceFrame->IsShallClose()==true)) { LPCTSTR pszDescribe=TEXT("由于此游戏房间即将暂停服务,玩家不允许再进入游戏桌!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } //禁止查询 if ((dwMasterRight==0L)&&(m_pIGameServiceFrame->IsAllowEnterGame()==false)) { LPCTSTR pszDescribe=TEXT("抱歉,此游戏桌现在不允许玩家进入!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } //位置判断 if (m_pIUserItem[wChairID]==NULL) { LPCTSTR pszDescribe=TEXT("所请求旁观的位置已经没有玩家了,不能旁观!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } //密码效验 if (m_bLocked==true) { const tagUserRule * pUserRule=pIServerUserItem->GetUserRule(); if ((pUserRule->bPassword==false)||(lstrcmp(m_szPassword,pUserRule->szPassword)!=0)) { LPCTSTR pszDescribe=TEXT("游戏桌携带密码错误,不能旁观游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } } //状态判断 if ((m_bStarted==false)&&(dwMasterRight==0L)) { LPCTSTR pszDescribe=TEXT("游戏还没有开始,暂时不能旁观!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } //旁观处理 if (m_pITableFrameEvent!=NULL) m_pITableFrameEvent->OnEventUserReqSitDown(wChairID,pIServerUserItem,true); //设置玩家 m_LookonUserItemPtr.Add(pIServerUserItem); pIServerUserItem->SetUserStatus(US_LOOKON,m_wTableID,wChairID); m_pIGameServiceFrame->SendUserStatus(pIServerUserItem); //旁观处理 if (m_pITableFrameEvent!=NULL) m_pITableFrameEvent->OnEventUserSitDown(wChairID,pIServerUserItem,true); return true; }
//坐下动作 bool __cdecl CTableFrame::PerformSitDownAction(WORD wChairID, IServerUserItem * pIServerUserItem) { CString strFile,strTemp; CTime tmCur = CTime::GetCurrentTime(); CString strTime = tmCur.Format("%m%d"); strFile.Format("log\\%s游戏服务.log",strTime); strTemp.Format("into PerformSitDownAction(wChairID=%d"); WriteLog(strFile, strTemp); //效验参数 ASSERT(pIServerUserItem!=NULL); ASSERT(wChairID<m_wChairCount); ASSERT(pIServerUserItem->GetTableID()==INVALID_TABLE); ASSERT(pIServerUserItem->GetChairID()==INVALID_CHAIR); //变量定义 const tagUserScore * pUserScore=pIServerUserItem->GetUserScore();; const tagUserRule * pUserRule=pIServerUserItem->GetUserRule(),* pTableUserRule=NULL; tagServerUserData * pUserData=pIServerUserItem->GetUserData(),* pTableUserData=NULL; //关闭查询 if ((pUserData->dwMasterRight==0L)&&(m_pIGameServiceFrame->IsShallClose()==true)) { LPCTSTR pszDescribe=TEXT("由于此游戏房间即将暂停服务,玩家不允许再进入游戏桌!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } //禁止查询 if ((pUserData->dwMasterRight==0L)&&(m_pIGameServiceFrame->IsAllowEnterGame()==false)) { LPCTSTR pszDescribe=TEXT("抱歉,此游戏桌现在不允许玩家进入!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } //位置判断 if (m_pIUserItem[wChairID]!=NULL) { TCHAR szDescribe[128]=TEXT(""); pTableUserData=m_pIUserItem[wChairID]->GetUserData(); _snprintf(szDescribe,sizeof(szDescribe),TEXT("椅子已经被 [ %s ] 捷足先登了,下次动作要快点了!"),pTableUserData->szAccounts); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; }//End if //游戏状态 if (m_bStarted==true) { LPCTSTR pszDescribe=TEXT("游戏已经开始了,暂时不能进入游戏桌!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; }//End if //比赛判断 if (m_pGameServiceOption->wServerType&GAME_GENRE_MATCH) { strTemp.Format("GAME_GENRE_MATCH 2"); WriteLog(strFile, strTemp); //比赛权限 if (CUserRight::IsMatchUser(pUserData->dwUserRight)==false) { TCHAR szDescribe[128]=TEXT(""); lstrcpyn(szDescribe,TEXT("这是游戏比赛房间,你不是比赛选手,不能坐到此位置上! "),CountArray(szDescribe)); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; }//End if strTemp.Format("最低分%d,用户分数%d", m_pGameServiceOption->lLessScore, pUserData->UserScoreInfo.lScore); WriteLog(strFile, strTemp); //积分限制 if (m_pGameServiceOption->lLessScore!=0L) { if (pUserData->UserScoreInfo.lScore<m_pGameServiceOption->lLessScore) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("加入游戏至少需要 %ld 的游戏积分,你的积分不够,不能加入!"),m_pGameServiceOption->lLessScore); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } }//End if if (m_pGameServiceOption->lHighScore!=0L) { if (pUserData->UserScoreInfo.lScore>m_pGameServiceOption->lHighScore) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的游戏积分高于 %ld,不能加入游戏!"),m_pGameServiceOption->lHighScore); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } }//End if //地址效验 DWORD dwUserIP=pIServerUserItem->GetClientIP(); for (WORD i=0;i<m_wChairCount;i++) { if ((m_pIUserItem[i]!=NULL)&&(m_pIUserItem[i]->GetClientIP()==dwUserIP)) { if (pUserRule->bCheckSameIP) { LPCTSTR pszDescribe=TEXT("你设置了不跟相同 IP 地址的玩家游戏,此游戏桌存在与你 IP 地址相同的玩家,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } else { if (CanNoSameIP(m_pGameServiceOption->cbFZB )) { LPCTSTR pszDescribe=TEXT("此桌设置了不跟相同 IP 地址的玩家游戏,此游戏桌存在与你 IP 地址相同的玩家,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } }//End if }//End if }//End if if (CanNoSameIP(m_pGameServiceOption->cbFZB )) { for (WORD i=0;i<m_wChairCount-1;i++) { if (m_pIUserItem[i]!=NULL) { for (WORD j=i+1;j<m_wChairCount;j++) { if ((m_pIUserItem[j]!=NULL)&&(m_pIUserItem[i]->GetClientIP()==m_pIUserItem[j]->GetClientIP())) { LPCTSTR pszDescribe=TEXT("你设置了不跟相同 IP 地址的玩家游戏,此游戏桌存在 IP 地址相同的玩家,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } }//End if }//End if }//End if } //对局局数 if ((m_pGameServiceOption->cbLimitDraw==TRUE)&&(m_pGameServiceOption->lMatchDraw>0)) { LONG lPlayCount=pUserData->UserScoreInfo.lWinCount+pUserData->UserScoreInfo.lLostCount+pUserData->UserScoreInfo.lDrawCount; if (lPlayCount>=m_pGameServiceOption->lMatchDraw) { TCHAR szDescribe[128]=TEXT(""); lstrcpyn(szDescribe,TEXT("恭喜你,你的比赛局数已经完成了,不需要再继续比赛,请耐心等待赛果公布! "),CountArray(szDescribe)); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; }//End if }//End if }//End if else { //权限判断 if (CUserRight::CanPlay(pUserData->dwUserRight)==false) { //发送消息 LPCTSTR pszMessage=TEXT("抱歉,你没有进行游戏的权限,若需要帮助,请联系游戏客服咨询!"); SendSitFailedPacket(pIServerUserItem,pszMessage); return true; }//End if //积分限制 if (m_pGameServiceOption->lLessScore!=0L) { if (pUserData->UserScoreInfo.lScore<m_pGameServiceOption->lLessScore) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("加入游戏至少需要 %ld 的游戏积分,你的积分不够,不能加入!"),m_pGameServiceOption->lLessScore); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } }//End if if (m_pGameServiceOption->lHighScore!=0L) { if (pUserData->UserScoreInfo.lScore>m_pGameServiceOption->lHighScore) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的游戏积分高于 %ld,不能加入游戏!"),m_pGameServiceOption->lHighScore); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } }//End if //密码效验 if (m_bLocked==true) { if ((pUserRule->bPassword==false)||(lstrcmp(m_szPassword,pUserRule->szPassword)!=0)) { LPCTSTR pszDescribe=TEXT("携带密码错误,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } }//End if //积分范围 WORD wWinRate=pIServerUserItem->GetUserWinRate(); WORD wFleeRate=pIServerUserItem->GetUserFleeRate(); for (WORD i=0;i<m_wChairCount;i++) { if (m_pIUserItem[i]!=NULL) { //获取规则 pTableUserRule=m_pIUserItem[i]->GetUserRule(); //逃率效验 if ((pTableUserRule->bLimitFlee)&&(wFleeRate>pTableUserRule->wFleeRate)) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的逃跑率太高,与 %s 设置的设置不符,不能加入游戏!"),m_pIUserItem[i]->GetAccounts()); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } //胜率效验 if ((pTableUserRule->bLimitWin)&&(wWinRate<pTableUserRule->wWinRate)) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的胜率太低,与 %s 设置的设置不符,不能加入游戏!"),m_pIUserItem[i]->GetAccounts()); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } //延时效验 if ((pTableUserRule->bLimitDelay)&&(pUserData->wNetDelay>pTableUserRule->wNetDelay)) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的网络延时太高,与 %s 设置的设置不符,不能加入游戏!"),m_pIUserItem[i]->GetAccounts()); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } //积分效验 if (pTableUserRule->bLimitScore==true) { if (pUserScore->lScore>pTableUserRule->lMaxScore) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的积分太高,与 %s 设置的设置不符,不能加入游戏!"),m_pIUserItem[i]->GetAccounts()); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } if (pUserScore->lScore<pTableUserRule->lLessScore) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的积分太低,与 %s 设置的设置不符,不能加入游戏!"),m_pIUserItem[i]->GetAccounts()); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } } } }//End if //地址效验 bool bCheckSameIP=pUserRule->bCheckSameIP; for (WORD i=0;i<m_wChairCount;i++) { if (m_pIUserItem[i]!=NULL) { pTableUserRule=m_pIUserItem[i]->GetUserRule(); if (pTableUserRule->bCheckSameIP==true) { bCheckSameIP=true; break; } } }//End for //防作弊 // if (bCheckSameIP==true || m_pIGameServiceFrame->IsFZBRoom() || CanNoSameIP(m_pGameServiceOption->cbFZB )) if (bCheckSameIP==true || CanNoSameIP(m_pGameServiceOption->cbFZB )) { DWORD dwUserIP=pIServerUserItem->GetClientIP(); for (WORD i=0;i<m_wChairCount;i++) { if ((m_pIUserItem[i]!=NULL)&&(m_pIUserItem[i]->GetClientIP()==dwUserIP)) { if (pUserRule->bCheckSameIP) { LPCTSTR pszDescribe=TEXT("你设置了不跟相同 IP 地址的玩家游戏,此游戏桌存在与你 IP 地址相同的玩家,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } else { LPCTSTR pszDescribe=TEXT("此桌设置了不跟相同 IP 地址的玩家游戏,此游戏桌存在与你 IP 地址相同的玩家,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; }//End if }//End if }//End for for (WORD i=0;i<m_wChairCount-1;i++) { if (m_pIUserItem[i]!=NULL) { for (WORD j=i+1;j<m_wChairCount;j++) { if ((m_pIUserItem[j]!=NULL)&&(m_pIUserItem[i]->GetClientIP()==m_pIUserItem[j]->GetClientIP())) { LPCTSTR pszDescribe=TEXT("你设置了不跟相同 IP 地址的玩家游戏,此游戏桌存在 IP 地址相同的玩家,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; }//End if }//Enf for }//Enf if }//End for } } //坐下处理 if (m_pITableFrameEvent!=NULL) m_pITableFrameEvent->OnEventUserReqSitDown(wChairID,pIServerUserItem,false); //更新密码 WORD wUserCount=0; for (WORD i=0;i<m_wChairCount;i++) { if (m_pIUserItem[i]!=NULL) wUserCount++; } if (wUserCount==0) { m_bLocked=pUserRule->bPassword; m_dwTableOwnerID=pUserData->dwUserID; if (m_bLocked==true) lstrcpyn(m_szPassword,pUserRule->szPassword,CountArray(m_szPassword)); }//End if //设置玩家 m_pIUserItem[wChairID]=pIServerUserItem; pIServerUserItem->SetUserStatus(US_SIT,m_wTableID,wChairID); m_pIGameServiceFrame->SendUserStatus(pIServerUserItem); //坐下处理 if (m_pITableFrameEvent!=NULL) m_pITableFrameEvent->OnEventUserSitDown(wChairID,pIServerUserItem,false); return true; }
//坐下动作 bool __cdecl CTableFrame::PerformSitDownAction(WORD wChairID, IServerUserItem * pIServerUserItem) { //效验参数 ASSERT(pIServerUserItem!=NULL); ASSERT(wChairID<m_wChairCount); ASSERT(pIServerUserItem->GetTableID()==INVALID_TABLE); ASSERT(pIServerUserItem->GetChairID()==INVALID_CHAIR); //变量定义 const tagUserScore * pUserScore=pIServerUserItem->GetUserScore();; const tagUserRule * pUserRule=pIServerUserItem->GetUserRule(),* pTableUserRule=NULL; tagServerUserData * pUserData=pIServerUserItem->GetUserData(),* pTableUserData=NULL; //关闭查询 if ((pUserData->dwMasterRight==0L)&&(m_pIGameServiceFrame->IsShallClose()==true)) { LPCTSTR pszDescribe=TEXT("由于此游戏房间即将暂停服务,玩家不允许再进入游戏桌!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } //禁止查询 if ((pUserData->dwMasterRight==0L)&&(m_pIGameServiceFrame->IsAllowEnterGame()==false)) { LPCTSTR pszDescribe=TEXT("抱歉,此游戏桌现在不允许玩家进入!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } //位置判断 if (m_pIUserItem[wChairID]!=NULL) { TCHAR szDescribe[128]=TEXT(""); pTableUserData=m_pIUserItem[wChairID]->GetUserData(); _snprintf(szDescribe,sizeof(szDescribe),TEXT("椅子已经被 [ %s ] 捷足先登了,下次动作要快点了!"),pTableUserData->szAccounts); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } //游戏状态 if (m_bStarted==true) { LPCTSTR pszDescribe=TEXT("游戏已经开始了,暂时不能进入游戏桌!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } //权限判断 if (CUserRight::CanPlay(pUserData->dwUserRight)==false) { //发送消息 LPCTSTR pszMessage=TEXT("抱歉,你没有进行游戏的权限,若需要帮助,请联系游戏客服咨询!"); SendSitFailedPacket(pIServerUserItem,pszMessage); return true; } //积分限制 if (m_pGameServiceOption->lLessScore!=0L) { if (pUserData->UserScoreInfo.lScore<m_pGameServiceOption->lLessScore) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("加入游戏至少需要 %ld 的游戏积分,你的积分不够,不能加入!"),m_pGameServiceOption->lLessScore); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } } if (m_pGameServiceOption->lHighScore!=0L) { if (pUserData->UserScoreInfo.lScore>m_pGameServiceOption->lHighScore) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的游戏积分高于 %ld,不能加入游戏!"),m_pGameServiceOption->lHighScore); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } } //密码效验 if (m_bLocked==true) { if ((pUserRule->bPassword==false)||(lstrcmp(m_szPassword,pUserRule->szPassword)!=0)) { LPCTSTR pszDescribe=TEXT("携带密码错误,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } } //积分范围 WORD wWinRate=pIServerUserItem->GetUserWinRate(); WORD wFleeRate=pIServerUserItem->GetUserFleeRate(); for (WORD i=0;i<m_wChairCount;i++) { if (m_pIUserItem[i]!=NULL) { //获取规则 pTableUserRule=m_pIUserItem[i]->GetUserRule(); //逃率效验 if ((pTableUserRule->bLimitFlee)&&(wFleeRate>pTableUserRule->wFleeRate)) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的逃跑率太高,与 %s 设置的设置不符,不能加入游戏!"),m_pIUserItem[i]->GetAccounts()); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } //胜率效验 if ((pTableUserRule->bLimitWin)&&(wWinRate<pTableUserRule->wWinRate)) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的胜率太低,与 %s 设置的设置不符,不能加入游戏!"),m_pIUserItem[i]->GetAccounts()); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } //延时效验 if ((pTableUserRule->bLimitDelay)&&(pUserData->wNetDelay>pTableUserRule->wNetDelay)) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的网络延时太高,与 %s 设置的设置不符,不能加入游戏!"),m_pIUserItem[i]->GetAccounts()); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } //积分效验 if (pTableUserRule->bLimitScore==true) { if (pUserScore->lScore>pTableUserRule->lMaxScore) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的积分太高,与 %s 设置的设置不符,不能加入游戏!"),m_pIUserItem[i]->GetAccounts()); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } if (pUserScore->lScore<pTableUserRule->lLessScore) { TCHAR szDescribe[128]=TEXT(""); _snprintf(szDescribe,sizeof(szDescribe),TEXT("你的积分太低,与 %s 设置的设置不符,不能加入游戏!"),m_pIUserItem[i]->GetAccounts()); SendSitFailedPacket(pIServerUserItem,szDescribe); return false; } } } } //地址效验 bool bCheckSameIP=pUserRule->bCheckSameIP; for (WORD i=0;i<m_wChairCount;i++) { if (m_pIUserItem[i]!=NULL) { pTableUserRule=m_pIUserItem[i]->GetUserRule(); if (pTableUserRule->bCheckSameIP==true) { bCheckSameIP=true; break; } } } if (bCheckSameIP==true) { DWORD dwUserIP=pIServerUserItem->GetClientIP(); for (WORD i=0;i<m_wChairCount;i++) { if ((m_pIUserItem[i]!=NULL)&&(m_pIUserItem[i]->GetClientIP()==dwUserIP)) { if (pUserRule->bCheckSameIP) { LPCTSTR pszDescribe=TEXT("你设置了不跟相同 IP 地址的玩家游戏,此游戏桌存在与你 IP 地址相同的玩家,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } else { LPCTSTR pszDescribe=TEXT("此桌设置了不跟相同 IP 地址的玩家游戏,此游戏桌存在与你 IP 地址相同的玩家,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } } } for (WORD i=0;i<m_wChairCount-1;i++) { if (m_pIUserItem[i]!=NULL) { for (WORD j=i+1;j<m_wChairCount;j++) { if ((m_pIUserItem[j]!=NULL)&&(m_pIUserItem[i]->GetClientIP()==m_pIUserItem[j]->GetClientIP())) { LPCTSTR pszDescribe=TEXT("你设置了不跟相同 IP 地址的玩家游戏,此游戏桌存在 IP 地址相同的玩家,不能加入游戏!"); SendSitFailedPacket(pIServerUserItem,pszDescribe); return false; } } } } } //坐下处理 if (m_pITableFrameEvent!=NULL) m_pITableFrameEvent->OnEventUserReqSitDown(wChairID,pIServerUserItem,false); //更新密码 WORD wUserCount=0; for (WORD i=0;i<m_wChairCount;i++) { if (m_pIUserItem[i]!=NULL) wUserCount++; } if (wUserCount==0) { m_bLocked=pUserRule->bPassword; m_dwTableOwnerID=pUserData->dwUserID; if (m_bLocked==true) lstrcpyn(m_szPassword,pUserRule->szPassword,CountArray(m_szPassword)); } //设置玩家 m_pIUserItem[wChairID]=pIServerUserItem; pIServerUserItem->SetUserStatus(US_SIT,m_wTableID,wChairID); m_pIGameServiceFrame->SendUserStatus(pIServerUserItem); //坐下处理 if (m_pITableFrameEvent!=NULL) m_pITableFrameEvent->OnEventUserSitDown(wChairID,pIServerUserItem,false); return true; }