📄 clientgamedlg.cpp
字号:
SendGameData(&OutCard,sizeof(OutCard)-sizeof(OutCard.iCardList)+sizeof(BYTE)*OutCard.iCardCount,
MDM_GM_GAME_NOTIFY,ASS_OUT_CARD,0);
//设置预显示
m_PlayView.m_UserCard[2].SetCard(OutCard.iCardList,NULL,OutCard.iCardCount);
}
return 0;
}
//按动上轮按钮函数
LRESULT CClientGameDlg::OnHitLastTurn(WPARAM wparam, LPARAM lparam)
{
if ((m_bShowIngLast)||(!m_bShowLast)||(m_iLastCardCount==0)||(m_iNowOutPeople==m_iFirstOutPeople)) return 0;
m_bShowIngLast=TRUE;
SetTimer(ID_SHOW_LAST,3000,NULL);
for (int i=0;i<3;i++)
m_PlayView.m_UserCard[ViewStation(i)].SetCard(m_iLastOutCard[i],NULL,m_iLastCardCount);
return 0;
}
//按动看底牌按钮函数
LRESULT CClientGameDlg::OnHitLookBack(WPARAM wparam, LPARAM lparam)
{
//if (m_PlayView.m_BackCardDlg.GetSafeHwnd()==NULL) m_PlayView.m_BackCardDlg.Create(IDD_BACK_CARD,this);
//m_PlayView.m_BackCardDlg.SetBackCard(m_iBackCard,(m_iPalyCardCount==2)?8:6);
////把按底牌按钮函数移到相应位置
//CRect rect1,rect2;
//m_PlayView.m_BackCardDlg.GetWindowRect(rect1);
//m_PlayView.GetClientRect(rect2);
//m_PlayView.m_BackCardDlg.MoveWindow(rect2.Width()-60-rect1.Width(),rect2.Height()-135-rect1.Height(),rect1.Width(),rect1.Height());
//m_PlayView.m_BackCardDlg.ShowWindow(SW_SHOW);
//m_PlayView.m_BackCardDlg.SetFocus();
//return 0;
// BYTE bUpList[128];
// m_PlayView.m_iCardNum=m_PlayView.m_MeCard.GetCard(m_PlayView.m_TempMeCard,bUpList);
// m_PlayView.m_MeCard.SetShowCard(TRUE);
// m_PlayView.m_MeCard.SetCard(m_iBackCard,NULL,(m_iPalyCardCount==2)?8:6);
// m_PlayView.m_MeCard.SetUseMouse(FALSE);
// m_PlayView.m_btBackCard.ShowWindow(SW_HIDE);
// SetTimer(ID_LOOK_BACK,2000,NULL);
/* m_PlayView.m_MeCard.SetShowCard(FALSE);
m_PlayView.m_MeCard.ShowWindow(SW_HIDE);
m_PlayView.m_MeBackCard.SetShowCard(TRUE);
m_PlayView.m_MeBackCard.SetUseMouse(FALSE);
m_PlayView.m_MeBackCard.ShowWindow(SW_SHOW);
m_PlayView.m_MeBackCard.SetCard(m_iBackCard,NULL,(m_iPalyCardCount==2)?8:6);
m_PlayView.m_btBackCard.ShowWindow(SW_HIDE);
SetTimer(ID_LOOK_BACK,2000,NULL);*/
if (!m_bSortFalg)
{
m_Logic.ReSortCard(m_iMeCardList,m_iMeCardCount);
m_bSortFalg = true;
}
else
{
m_Logic.SortCard(m_iMeCardList,NULL,m_iMeCardCount);
m_bSortFalg = false;
}
m_PlayView.m_MeCard.SetCard(m_iMeCardList,NULL,m_iMeCardCount);
return 0;
}
//按动有事按钮函数
LRESULT CClientGameDlg::OnHitHaveThing(WPARAM wparam, LPARAM lparam)
{
if (m_PlayView.m_HaveThing.GetSafeHwnd()==NULL)
{
m_PlayView.m_HaveThing.Create(IDD_THING,this);
m_PlayView.m_HaveThing.m_pParnet=this;
}
m_PlayView.m_HaveThing.ShowWindow(SW_SHOW);
m_PlayView.m_HaveThing.SetFocus();
return 0;
}
//提前结束
LRESULT CClientGameDlg::OnStop(WPARAM wparam, LPARAM lparam)
{
if(m_PlayView.m_bMeSide && m_PlayView.m_iGamePoint>=80 && !m_bWatchMode)
{
if (m_PlayView.m_StopThing.GetSafeHwnd()==NULL)
{
m_PlayView.m_StopThing.Create(IDD_STOP,this);
m_PlayView.m_StopThing.m_pParnet=this;
}
m_PlayView.m_StopThing.ShowWindow(SW_SHOW);
m_PlayView.m_StopThing.SetFocus();
}
return 0;
}
//发送提前结束
LRESULT CClientGameDlg::OnStopThing(WPARAM wparam, LPARAM lparam)
{
if(!m_bWatchMode && GetStationParameter()!=GS_WAIT_SETGAME && m_PlayView.m_bMeSide && m_PlayView.m_iGamePoint>=80)
{
SendGameData(MDM_GM_GAME_NOTIFY,ASS_STOP_THING,0);
}
return 0;
}
//同意提前结束
LRESULT CClientGameDlg::OnAgreeStop(WPARAM wparam, LPARAM lparam)
{
if(!m_bWatchMode && GetStationParameter()!=GS_WAIT_SETGAME)
{
StopResultStruct Stop;
Stop.bArgee=((BYTE)wparam==1);
SendGameData(&Stop,sizeof(Stop),MDM_GM_GAME_NOTIFY,ASS_AGREE_STOP,0);
}
return 0;
}
//发送离开请求函数
LRESULT CClientGameDlg::OnSendHaveThing(WPARAM wparam, LPARAM lparam)
{
if(!m_bWatchMode && GetStationParameter()!=GS_WAIT_SETGAME)
{
m_PlayView.m_btThing.EnableWindow(FALSE);
HaveThingStruct HaveThing;
HaveThing.pos=0;
::strcpy(HaveThing.szMessage,(char *)wparam);
SendGameData(&HaveThing,sizeof(HaveThing),MDM_GM_GAME_NOTIFY,ASS_HAVE_THING,0);
}
return 0;
}
//用户请求离开
LRESULT CClientGameDlg::OnArgeeUserLeft(WPARAM wparam, LPARAM lparam)
{
LeaveResultStruct Leave;
Leave.bDeskStation=GetMeUserInfo()->bDeskStation;
Leave.bArgeeLeave=(BYTE)wparam;
SendGameData(&Leave,sizeof(Leave),MDM_GM_GAME_NOTIFY,ASS_LEFT_RESULT,0);
return 0;
}
//不出按钮
LRESULT CClientGameDlg::OnHitPass(WPARAM wparam, LPARAM lparam)
{
if (/*m_PlayView.m_btPass.IsWindowEnabled() &&*/ m_PlayView.m_btPass.IsWindowVisible())
{
KillAllTimer();
m_PlayView.m_btOutCard.ShowWindow(SW_HIDE);
m_PlayView.m_btPass.ShowWindow(SW_HIDE);
m_PlayView.m_btPass.EnableWindow(FALSE);
SendGameData(MDM_GM_GAME_NOTIFY,ASS_PASS,0);
}
return 0;
}
//重置游戏
void CClientGameDlg::ResetGameStation(int iGameStation)
{
//数据重置
m_iMeCardCount=0;
m_iNtCount=0;
m_iNtPeopole=-1;
m_iNowOutPeople=-1;
m_iBaseCount=0;
m_iFirstOutPeople=-1;
m_iLastCardCount=0;
m_bShowLast=FALSE;
::memset(m_iBackCard,0,sizeof(m_iBackCard));
::memset(m_iDeskCardCount,0,sizeof(m_iDeskCardCount));
::memset(m_iMeCardList,0,sizeof(m_iMeCardList));
::memset(m_iUserJiaoFen,0,sizeof(m_iUserJiaoFen));
m_nJiaoZu=0;
m_bSortFalg = false;
//界面重置
m_PlayView.m_btGiveBack.ShowWindow(SW_HIDE);
m_PlayView.m_btOutCard.ShowWindow(SW_HIDE);
m_PlayView.m_btPass.ShowWindow(SW_HIDE);
/// m_PlayView.m_NtList.ShowWindow(SW_HIDE);
//m_PlayView.m_btLastTurn.EnableWindow(FALSE);
m_PlayView.m_btBackCard.EnableWindow(FALSE);
// m_PlayView.m_btThing.EnableWindow(FALSE);
if (m_PlayView.m_GameInfo.GetSafeHwnd()) m_PlayView.m_GameInfo.DestroyWindow();
// if (m_PlayView.m_BackCardDlg.GetSafeHwnd()) m_PlayView.m_BackCardDlg.DestroyWindow();
if (m_PlayView.m_HaveThing.GetSafeHwnd()) m_PlayView.m_HaveThing.DestroyWindow();
if (m_PlayView.m_ThingMessage.GetSafeHwnd()) m_PlayView.m_ThingMessage.DestroyWindow();
switch (iGameStation)
{
case RS_ALL_VIEW:
case RS_GAME_CUT:
{
//m_PlayView.SetGamePoint();
//m_PlayView.SetNTStation(-1);
//m_PlayView.SetShowNtStation(-1,0);
m_PlayView.m_MeCard.SetCard(NULL,NULL,0);
m_PlayView.m_StationView.SetShowMessage(FALSE);
m_PlayView.m_StationView.CleanAllInfo(TRUE);
for (int i=0;i<4;i++)
{
m_PlayView.m_UserCard[i].SetCard(NULL,NULL,0);
m_PlayView.m_PassCard[i].ShowWindow(SW_HIDE);
}
if (m_PlayView.m_GameSet.GetSafeHwnd()) m_PlayView.m_GameSet.DestroyWindow();
// if (m_PlayView.m_GameEndView.GetSafeHwnd()) m_PlayView.m_GameEndView.DestroyWindow();
break;
}
case RS_GAME_BEGIN:
{
//m_PlayView.SetGamePoint();
//m_PlayView.SetNTStation(-1);
//m_PlayView.SetShowNtStation(-1,0);
m_PlayView.m_StationView.SetShowMessage(TRUE);
m_PlayView.m_StationView.CleanAllInfo(FALSE);
for (int i=0;i<4;i++)
{
m_PlayView.m_UserCard[i].SetCard(NULL,NULL,0);
m_PlayView.m_PassCard[i].ShowWindow(SW_HIDE);
}
m_PlayView.m_MeCard.SetCard(NULL,NULL,0);
if (m_PlayView.m_GameSet.GetSafeHwnd()) m_PlayView.m_GameSet.DestroyWindow();
// if (m_PlayView.m_GameEndView.GetSafeHwnd()) m_PlayView.m_GameEndView.DestroyWindow();
break;
}
}
return;
}
void CClientGameDlg::OnGameSetting()
{
AfxSetResourceHandle(GetModuleHandle(CLIENT_DLL_NAME));
CGameSet GameSetDlg(this);
GameSetDlg.m_bSound=m_pGameInfo->bEnableSound;
GameSetDlg.m_bShowUser=m_pGameInfo->bShowUserInfo;
GameSetDlg.m_bEnableWatch=m_pGameInfo->bEnableWatch;
GameSetDlg.m_bRightPower=GetProfileInt(TEXT("RightPower"),FALSE);
if (GameSetDlg.DoModal()==IDOK)
{
//定义参数
bool bSendWatch=((m_bWatchMode==false)&&(m_pGameInfo->bEnableWatch!=(GameSetDlg.m_bEnableWatch==1)));
//保存数据
m_pGameInfo->bShowUserInfo=(GameSetDlg.m_bShowUser==1);
m_pGameInfo->bEnableWatch=(GameSetDlg.m_bEnableWatch==1);
m_pGameInfo->bEnableSound=(GameSetDlg.m_bSound==1);
WriteProfileInt(TEXT("RightPower"),GameSetDlg.m_bRightPower?1:0);
m_PlayView.m_bRightPower=GameSetDlg.m_bRightPower;
//发送数据
if (bSendWatch==true)
{
MSG_GM_WatchSet WatchSet;
memset(&WatchSet,0,sizeof(WatchSet));
WatchSet.dwUserID=0;
SendGameData(&WatchSet,sizeof(WatchSet),MDM_GM_GAME_FRAME,ASS_GM_WATCH_SET,GameSetDlg.m_bEnableWatch?TRUE:FALSE);
}
}
AfxSetResourceHandle(GetModuleHandle(NULL));
return;
}
void CClientGameDlg::OnWatchSetChange(void)
{
if (m_bWatchMode==true)
{
m_PlayView.m_MeCard.SetShowCard(m_bWatchOther?TRUE:FALSE);
if (m_bWatchOther) m_MessageHandle.InsertNormalMessage(TEXT("玩家允许你旁观他游戏"));
else m_MessageHandle.InsertNormalMessage(TEXT("玩家不允许你旁观他游戏"));
}
}
//用户离开
bool CClientGameDlg::GameUserLeft(BYTE bDeskStation, UserItemStruct * pUserItem, bool bWatchUser)
{
if ((bWatchUser==false)&&(pUserItem!=NULL)&&(bDeskStation==0))
{
if (GetStationParameter()==GS_WAIT_ARGEE)
{
for (int i=0;i<4;i++)
{
if (m_pUserInfo[i]!=NULL)
{
m_pUserInfo[i]->GameUserInfo.bUserState=USER_SITTING;
m_UserListDlg.UpdateGameUser(m_pUserInfo[i]);
}
}
if (m_PlayView.m_GameInfo.GetSafeHwnd()) m_PlayView.m_GameInfo.DestroyWindow();
m_PlayView.m_GameNoteView.SetMessage(TEXT("正在等待东家设置牌局"));
m_PlayView.UpdateViewFace(NULL);
}
}
return __super::GameUserLeft(bDeskStation,pUserItem,bWatchUser);
}
void CClientGameDlg::OnTimer(UINT nIDEvent)
{
if(nIDEvent==ID_SHOW_LAST) //查看上一轮扑克
{
m_bShowIngLast=FALSE;
for (int i=0;i<3;i++)
m_PlayView.m_UserCard[ViewStation(i)].SetCard(m_DeskCard[i],NULL,m_iDeskCardCount[i]);
KillTimer(ID_SHOW_LAST);
}
CTMLframe::OnTimer(nIDEvent);
}
//void CClientGameDlg::OnClose()
//{
// //查询状态
// if ((m_bWatchMode==false)&&(GetStationParameter()>=20))
// {
// if (IDYES!=AFCMessage(TEXT("现在退出将会被扣分,真的要退出吗?"),m_pGameInfo->szGameName,MB_YESNO|MB_DEFBUTTON2|MB_ICONINFORMATION,this))
// return;
// SendGameData(MDM_GM_GAME_FRAME,ASS_GM_FORCE_QUIT,0);
// }
// if (m_pGameInfo->pMeUserInfo->GameUserInfo.bDeskNO!=255) SendGameData(MDM_GR_USER_ACTION,ASS_GR_USER_UP,0);
// CTMLframe::OnClose();
//}
void CClientGameDlg::OnCancel()
{
//查询状态
if (!m_bWatchMode && GetStationParameter()>=20)
{
if (IDYES!=AFCMessage(TEXT("现在退出将会被扣分,真的要退出吗?"),m_pGameInfo->szGameName,MB_YESNO|MB_DEFBUTTON2|MB_ICONINFORMATION,this))
return;
SendGameData(150,3,0);
}
AFCCloseFrame();
__super::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -