woaidaima2016 发表于 2017-6-13 11:11:40

百人红九+控制+机器人【源码】

http://img.woaidaima.com//upload/image/20170524/1495587538199016759.pnghttp://img.woaidaima.com//upload/image/20170524/1495587540106029369.png// ClientControlItemSink.cpp : 实现文件
//

#include "stdafx.h"
#include "Resource.h"
#include "ClientControlItemSink.h"
#include ".\clientcontrolitemsink.h"


// CClientControlItemSinkDlg 对话框

IMPLEMENT_DYNAMIC(CClientControlItemSinkDlg, IClientControlDlg)

CClientControlItemSinkDlg::CClientControlItemSinkDlg(CWnd* pParent /*=NULL*/)
    : IClientControlDlg(CClientControlItemSinkDlg::IDD, pParent)
{
}

CClientControlItemSinkDlg::~CClientControlItemSinkDlg()
{
}

void CClientControlItemSinkDlg::DoDataExchange(CDataExchange* pDX)
{
    IClientControlDlg::DoDataExchange(pDX);
}

void CClientControlItemSinkDlg::ReSetAdminWnd()
{

    if(m_cbControlStyle!=CS_BANKER_WIN&&m_cbControlStyle!=CS_BANKER_LOSE)
    {
      ((CButton*)GetDlgItem(IDC_RADIO_WIN))->SetCheck(0);
      ((CButton*)GetDlgItem(IDC_RADIO_LOSE))->SetCheck(0);
    }
    else
    {
      ((CButton*)GetDlgItem(IDC_RADIO_CT_BANKER))->SetCheck(1);
      ((CButton*)GetDlgItem(IDC_RADIO_WIN))->SetCheck(m_cbControlStyle==CS_BANKER_WIN?1:0);
      ((CButton*)GetDlgItem(IDC_RADIO_LOSE))->SetCheck(m_cbControlStyle==CS_BANKER_LOSE?1:0);
    }

    if(m_cbControlStyle==CS_BET_AREA)
    {
       ((CButton*)GetDlgItem(IDC_RADIO_CT_AREA))->SetCheck(1);
    }
    ((CButton*)GetDlgItem(IDC_CHECK_SHUNMEN))->SetCheck(m_bWinArea);
    ((CButton*)GetDlgItem(IDC_CHECK_DUIMEN))->SetCheck(m_bWinArea);
    ((CButton*)GetDlgItem(IDC_CHECK_DAOMEN))->SetCheck(m_bWinArea);
    ((CComboBox*)GetDlgItem(IDC_COMBO_TIMES))->SetCurSel(m_cbExcuteTimes>0?m_cbExcuteTimes-1:-1);

    OnRadioClick();
}

//获取昵称
void __cdecl CClientControlItemSinkDlg::GetUserNickName(CString &strNickName)
{
    ((CComboBox*)GetDlgItem(IDC_COMBO_GAMEID))->GetWindowText(strNickName);
}

void CClientControlItemSinkDlg::SetUserNickName(LPCTSTR szNickName)
{
    ((CComboBox*)GetDlgItem(IDC_COMBO_GAMEID))->AddString(szNickName);
    ((CComboBox*)GetDlgItem(IDC_COMBO_GAMEID))->SetCurSel(0);
}
void CClientControlItemSinkDlg::ResetUserNickName()
{
    ((CComboBox*)GetDlgItem(IDC_COMBO_GAMEID))->ResetContent();
}

//申请结果
bool __cdecl CClientControlItemSinkDlg::ReqResult(const void * pBuffer)
{
    const CMD_S_CommandResult*pResult=(CMD_S_CommandResult*)pBuffer;
    CString str;
    CString strTemp=TEXT("");
    switch(pResult->cbAckType)
    {
    case ACK_SET_WIN_AREA:
      {
            if(pResult->cbResult==CR_ACCEPT)
            {                  
               
                if(m_cbControlStyle==CS_BANKER_WIN || m_cbControlStyle==CS_BANKER_LOSE)
                {
                  strTemp=TEXT("设置数据成功!\r\n胜利区域:");

                  if(m_cbControlStyle==CS_BANKER_WIN) str.Format(TEXT("庄家赢,执行次数%d!"),m_cbExcuteTimes);
                  else str.Format(TEXT("庄家输,执行次数%d!"),m_cbExcuteTimes);
                }
                else if(m_cbControlStyle==CS_BET_AREA)
                {
                  strTemp=TEXT("设置数据成功!\r\n胜利区域:");

                  CString strShun=TEXT(""),strDui=TEXT(""),strDao=TEXT("");
                  if(m_bWinArea) strShun=TEXT(" 顺 ");
                  if(m_bWinArea) strDui=TEXT(" 对 ");
                  if(m_bWinArea) strDao=TEXT(" 倒 ");

                  str.Format(TEXT(",执行次数%d!"),m_cbExcuteTimes);

                  str=strShun+strDui+strDao+str;
                }
                else str=TEXT("暂时无控制");
            }
            else
            {
                str.Format(TEXT("请求失败!"));
                m_cbExcuteTimes=0;
                m_cbControlStyle=0;
                ZeroMemory(m_bWinArea,sizeof(m_bWinArea));
            }
            break;
      }
    case ACK_RESET_CONTROL:
      {
            if(pResult->cbResult==CR_ACCEPT)
            {
                m_cbControlStyle=0;
                m_cbExcuteTimes=0;
                ZeroMemory(m_bWinArea,sizeof(m_bWinArea));
                ReSetAdminWnd();
                str="重置请求已接受!";
            }
            break;
      }
    case ACK_PRINT_SYN:
      {
            if(pResult->cbResult==CR_ACCEPT)
            {
                //str="服务器同步请求已接受!";
               
                tagAdminReq*pAdminReq=(tagAdminReq*)pResult->cbExtendData;
                m_cbExcuteTimes=pAdminReq->m_cbExcuteTimes;
                m_cbControlStyle=pAdminReq->m_cbControlStyle;
                memcpy(m_bWinArea,pAdminReq->m_bWinArea,sizeof(m_bWinArea));

               

                if(m_cbControlStyle==CS_BANKER_WIN || m_cbControlStyle==CS_BANKER_LOSE)
                {
                  strTemp=TEXT("更新数据成功!\r\n胜利区域:");

                  if(m_cbControlStyle==CS_BANKER_WIN) str.Format(TEXT("庄家赢,执行次数%d!"),m_cbExcuteTimes);
                  else str.Format(TEXT("庄家输,执行次数%d!"),m_cbExcuteTimes);
                }
                else if(m_cbControlStyle==CS_BET_AREA)
                {
                  strTemp=TEXT("更新数据成功!\r\n胜利区域:");

                  CString strShun=TEXT(""),strDui=TEXT(""),strDao=TEXT("");
                  if(m_bWinArea) strShun=TEXT(" 顺 ");
                  if(m_bWinArea) strDui=TEXT(" 对 ");
                  if(m_bWinArea) strDao=TEXT(" 倒 ");

                  str.Format(TEXT(",执行次数%d!"),m_cbExcuteTimes);

                  str=strShun+strDui+strDao+str;
                }
                else str=TEXT("暂时无控制");

                ReSetAdminWnd();
            }
            else
            {
                str.Format(TEXT("请求失败!"));
            }
            break;
      }

    default: break;
    }


    //SetWindowText(str);
    str=strTemp+str;
    SetDlgItemText(IDC_STATIC_INFO,str);
    return true;
}


void CClientControlItemSinkDlg::ResetUserBet()
{
    CString strPrint;
    memset(m_lAllUserBet,0,sizeof(LONGLONG)*AREA_COUNT);
    SetDlgItemText(IDC_ST_AREA1,TEXT("顺门:-----"));
    SetDlgItemText(IDC_ST_AREA2,TEXT("顺角:-----"));
    SetDlgItemText(IDC_ST_AREA3,TEXT("桥:-----"));
    SetDlgItemText(IDC_ST_AREA4,TEXT("对门:-----"));
    SetDlgItemText(IDC_ST_AREA5,TEXT("倒门:-----"));
    SetDlgItemText(IDC_ST_AREA6,TEXT("倒角:-----"));

    SetDlgItemText(IDC_ST_AREA7,TEXT("顺门:-----"));
    SetDlgItemText(IDC_ST_AREA8,TEXT("顺角:-----"));
    SetDlgItemText(IDC_ST_AREA9,TEXT("桥:-----"));
    SetDlgItemText(IDC_ST_AREA10,TEXT("对门:-----"));
    SetDlgItemText(IDC_ST_AREA11,TEXT("倒门:-----"));
    SetDlgItemText(IDC_ST_AREA12,TEXT("倒角:-----"));

}

void CClientControlItemSinkDlg::SetUserBetScore(BYTE cbArea,LONGLONG lScore)
{
    m_lAllUserBet+=lScore;
    CString strPrint;
    switch(cbArea)
    {
    case 0:
      {
            strPrint.Format(TEXT("顺门:%I64d"),m_lAllUserBet);
            SetDlgItemText(IDC_ST_AREA1,strPrint);
            break;
      }
    case 1:
      {
            strPrint.Format(TEXT("顺角:%I64d"),m_lAllUserBet);
            SetDlgItemText(IDC_ST_AREA2,strPrint);
            break;
      }
    case 2:
      {
            strPrint.Format(TEXT("桥:%I64d"),m_lAllUserBet);
            SetDlgItemText(IDC_ST_AREA3,strPrint);
            break;
      }
    case 3:
      {
            strPrint.Format(TEXT("对门:%I64d"),m_lAllUserBet);
            SetDlgItemText(IDC_ST_AREA4,strPrint);
            break;
      }
      
    case 4:
      {
            strPrint.Format(TEXT("倒门:%I64d"),m_lAllUserBet);
            SetDlgItemText(IDC_ST_AREA5,strPrint);
            break;
      }
    case 5:
      {
            strPrint.Format(TEXT("倒角:%I64d"),m_lAllUserBet);
            SetDlgItemText(IDC_ST_AREA6,strPrint);
            break;
      }   

    default:false;
    }
}

void CClientControlItemSinkDlg::SetUserGameScore(BYTE cbArea,LONGLONG lScore)
{
    CString strPrint;
    switch(cbArea)
    {
    case 1:
      {
            strPrint.Format(TEXT("顺门:%I64d"),lScore);
            SetDlgItemText(IDC_ST_AREA7,strPrint);
            break;
      }
    case 2:
      {
            strPrint.Format(TEXT("顺角:%I64d"),lScore);
            SetDlgItemText(IDC_ST_AREA8,strPrint);
            break;
      }
    case 3:
      {
            strPrint.Format(TEXT("桥:%I64d"),lScore);
            SetDlgItemText(IDC_ST_AREA9,strPrint);
            break;
      }
    case 4:
      {
            strPrint.Format(TEXT("对门:%I64d"),lScore);
            SetDlgItemText(IDC_ST_AREA10,strPrint);
            break;
      }

    case 5:
      {
            strPrint.Format(TEXT("倒门:%I64d"),lScore);
            SetDlgItemText(IDC_ST_AREA11,strPrint);
            break;
      }
    case 6:
      {
            strPrint.Format(TEXT("倒角:%I64d"),lScore);
            SetDlgItemText(IDC_ST_AREA12,strPrint);
            break;
      }   


    default:false;
    }
}

BEGIN_MESSAGE_MAP(CClientControlItemSinkDlg, IClientControlDlg)
    ON_BN_CLICKED(IDC_BT_RESET,OnReSet)
    ON_BN_CLICKED(IDC_BT_CANCEL,OnCancel)
    ON_BN_CLICKED(IDC_BT_EXCUTE,OnExcute)
    ON_BN_CLICKED(IDC_BT_CURSET,OnRefresh)
    ON_BN_CLICKED(IDC_RADIO_CT_AREA,OnRadioClick)
    ON_BN_CLICKED(IDC_RADIO_CT_BANKER,OnRadioClick)
    ON_BN_CLICKED(IDC_BT_GET, OnBnClickedBtGet)
    ON_BN_CLICKED(IDC_BT_CHEAK, OnBnClickedBtCheak)
    ON_WM_CTLCOLOR()
END_MESSAGE_MAP()

// CClientControlItemSinkDlg 消息处理程序

void CClientControlItemSinkDlg::OnRadioClick()
{
    if(((CButton*)GetDlgItem(IDC_RADIO_CT_BANKER))->GetCheck()==1)
    {
      GetDlgItem(IDC_RADIO_LOSE)->EnableWindow(TRUE);
      GetDlgItem(IDC_RADIO_WIN)->EnableWindow(TRUE);
      GetDlgItem(IDC_CHECK_DAOMEN)->EnableWindow(FALSE);
      GetDlgItem(IDC_CHECK_SHUNMEN)->EnableWindow(FALSE);
      GetDlgItem(IDC_CHECK_DUIMEN)->EnableWindow(FALSE);
    }
    else
    {
      if(((CButton*)GetDlgItem(IDC_RADIO_CT_AREA))->GetCheck())
      {
            GetDlgItem(IDC_RADIO_LOSE)->EnableWindow(FALSE);
            GetDlgItem(IDC_RADIO_WIN)->EnableWindow(FALSE);
            GetDlgItem(IDC_CHECK_DAOMEN)->EnableWindow(TRUE);
            GetDlgItem(IDC_CHECK_SHUNMEN)->EnableWindow(TRUE);
            GetDlgItem(IDC_CHECK_DUIMEN)->EnableWindow(TRUE);
      }
    }
}

void CClientControlItemSinkDlg::OnBnClickedBtGet()
{
    CGameFrameEngine * pGameFrameEngine=CGameFrameEngine::GetInstance();
    if (pGameFrameEngine!=NULL) pGameFrameEngine->PostMessage(IDM_GET_ACCOUNT,0,0);
}

void CClientControlItemSinkDlg::OnBnClickedBtCheak()
{
    CGameFrameEngine * pGameFrameEngine=CGameFrameEngine::GetInstance();
    if (pGameFrameEngine!=NULL) pGameFrameEngine->PostMessage(IDM_CHEAK_ACCOUNT,0,0);
}

void CClientControlItemSinkDlg::OnReSet()
{
    CMD_C_AdminReq adminReq;
    adminReq.cbReqType=RQ_RESET_CONTROL;
    CGameFrameEngine * pGameFrameEngine=CGameFrameEngine::GetInstance();
    if (pGameFrameEngine!=NULL) pGameFrameEngine->SendMessage(IDM_ADMIN_COMMDN,(WPARAM)&adminReq,0);
}

void CClientControlItemSinkDlg::OnRefresh()
{
    CMD_C_AdminReq adminReq;
    adminReq.cbReqType=RQ_PRINT_SYN;
    CGameFrameEngine * pGameFrameEngine=CGameFrameEngine::GetInstance();
    if (pGameFrameEngine!=NULL) pGameFrameEngine->SendMessage(IDM_ADMIN_COMMDN,(WPARAM)&adminReq,0);
}

void CClientControlItemSinkDlg::OnExcute()
{
    BYTE cbIndex=0;
    bool bFlags=false;
    m_cbControlStyle=0;
    m_cbExcuteTimes=0;
    ZeroMemory(m_bWinArea,sizeof(m_bWinArea));

    //控制庄家
    if(((CButton*)GetDlgItem(IDC_RADIO_CT_BANKER))->GetCheck())
    {
      if(((CButton*)GetDlgItem(IDC_RADIO_WIN))->GetCheck())
      {
            m_cbControlStyle=CS_BANKER_WIN;
            bFlags=true;
      }
      else
      {
            if(((CButton*)GetDlgItem(IDC_RADIO_LOSE))->GetCheck())
            {
                m_cbControlStyle=CS_BANKER_LOSE;
                bFlags=true;
            }
      }
    }
    else //控制区域
    {
      if(((CButton*)GetDlgItem(IDC_RADIO_CT_AREA))->GetCheck())
      {
            m_cbControlStyle=CS_BET_AREA;
            for(cbIndex=0;cbIndex<CONTROL_AREA;cbIndex++)
                m_bWinArea=((CButton*)GetDlgItem(IDC_CHECK_SHUNMEN+cbIndex))->GetCheck()?true:false;
            bFlags=true;
      }
    }

    m_cbExcuteTimes=(BYTE)((CComboBox*)GetDlgItem(IDC_COMBO_TIMES))->GetCurSel()+1;
    //获取执行次数
    if(m_cbExcuteTimes<=0)
    {
      bFlags=false;
    }
   

    if(bFlags) //参数有效
    {
      CMD_C_AdminReq adminReq;
      adminReq.cbReqType=RQ_SET_WIN_AREA;
      tagAdminReq*pAdminReq=(tagAdminReq*)adminReq.cbExtendData;
      pAdminReq->m_cbExcuteTimes=m_cbExcuteTimes;
      pAdminReq->m_cbControlStyle=m_cbControlStyle;
      memcpy(pAdminReq->m_bWinArea,m_bWinArea,sizeof(m_bWinArea));
      CGameFrameEngine * pGameFrameEngine=CGameFrameEngine::GetInstance();
      if (pGameFrameEngine!=NULL) pGameFrameEngine->SendMessage(IDM_ADMIN_COMMDN,(WPARAM)&adminReq,0);
    }
    else
    {
      //AfxMessageBox(TEXT("请选择受控次数以及受控方式!"));
      SetDlgItemText(IDC_STATIC_INFO,TEXT("请选择受控次数以及受控方式!"));
      //OnRefresh();
    }
}

void CClientControlItemSinkDlg::OnCancel()
{
    // TODO: 在此添加专用代码和/或调用基类

    CDialog::OnCancel();
}

//初始化
BOOL CClientControlItemSinkDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // TODO:在此添加额外的初始化
    SetDlgItemText(IDC_BT_RESET,TEXT("取消控制"));   
    SetDlgItemText(IDC_BT_CURSET,TEXT("当前设置"));
    SetDlgItemText(IDC_BT_EXCUTE,TEXT("执行"));   
    SetDlgItemText(IDC_BT_CANCEL,TEXT("取消"));   
    SetDlgItemText(IDC_RADIO_WIN,TEXT("庄家赢"));   
    SetDlgItemText(IDC_RADIO_LOSE,TEXT("庄家输"));            
    SetDlgItemText(IDC_RADIO_CT_BANKER,TEXT("庄家控制"));   
    SetDlgItemText(IDC_RADIO_CT_AREA,TEXT("区域控制"));   
    SetDlgItemText(IDC_CHECK_SHUNMEN,TEXT("顺门"));   
    SetDlgItemText(IDC_CHECK_DUIMEN    ,TEXT("对门"));   
    SetDlgItemText(IDC_CHECK_DAOMEN    ,TEXT("倒门"));      
    SetDlgItemText(IDC_STATIC_TIMES    ,TEXT("控制次数"));   
    SetDlgItemText(IDC_STATIC_CHOICE,TEXT("控制选项"));   
    SetDlgItemText(IDC_STATIC_NOTICE,TEXT("说明"));
    SetDlgItemText(IDC_STATIC_NOTICE1,TEXT("1.区域输赢控制比游戏库存控制策略优先。"));   
    SetDlgItemText(IDC_STATIC_NOTICE2,TEXT("2.区域控制,选中为胜,未选中为输。"));   

    ((CComboBox*)GetDlgItem(IDC_COMBO_TIMES))->AddString(TEXT("1"));
    ((CComboBox*)GetDlgItem(IDC_COMBO_TIMES))->AddString(TEXT("2"));
    ((CComboBox*)GetDlgItem(IDC_COMBO_TIMES))->AddString(TEXT("3"));
    ((CComboBox*)GetDlgItem(IDC_COMBO_TIMES))->AddString(TEXT("4"));
    ((CComboBox*)GetDlgItem(IDC_COMBO_TIMES))->AddString(TEXT("5"));

    ((CButton*)GetDlgItem(IDC_RADIO_CT_AREA))->SetCheck(1);
    OnRadioClick();
    return TRUE;// return TRUE unless you set the focus to a control
    // 异常: OCX 属性页应返回 FALSE
}

void __cdecl CClientControlItemSinkDlg::OnAllowControl(bool bEnable)
{
    GetDlgItem(IDC_BT_EXCUTE)->EnableWindow(bEnable);
}




HBRUSH CClientControlItemSinkDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    HBRUSH hbr = IClientControlDlg::OnCtlColor(pDC, pWnd, nCtlColor);

    if (pWnd->GetDlgCtrlID()==IDC_STATIC_INFO)
    {
      pDC->SetTextColor(RGB(255,10,10));
    }

    return hbr;
}

页: [1]
查看完整版本: 百人红九+控制+机器人【源码】