百人新百家乐(机器人+控制+真人下注显示)【源码】

[复制链接]

该用户从未签到

2380

主题

2433

帖子

9139

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9139
QQ
跳转到指定楼层
楼主
发表于 2017-6-13 11:28:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

想要查看内容赶紧注册登陆吧!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
#ifndef ANDROID_USER_ITEM_SINK_HEAD_FILE
#define ANDROID_USER_ITEM_SINK_HEAD_FILE

#pragma once

#include "Stdafx.h"
//#include "GameLogic.h"

//////////////////////////////////////////////////////////////////////////
//宏定义

//最大下注次数
#define MAX_CHIP_TIME                                50

#define AREA_COUNT                                    8                    //区域数目

//机器人信息
struct tagRobotInfo
{
    int nChip[7];                                                        //筹码定义
    int nAreaChance[AREA_COUNT];                                        //区域几率
    TCHAR szCfgFileName[MAX_PATH];                                        //配置文件
    int    nMaxTime;                                                        //最大赔率

    tagRobotInfo()
    {
        int nTmpChip[7] = {100, 1000, 10000, 100000, 1000000, 5000000, 10000000};
        int nTmpAreaChance[AREA_COUNT] = {3, 0, 3, 1, 1, 0, 0, 0};
        TCHAR szTmpCfgFileName[MAX_PATH] = _T("BaccaratNewConfig.ini");

        nMaxTime = 1;
        memcpy(nChip, nTmpChip, sizeof(nChip));
        memcpy(nAreaChance, nTmpAreaChance, sizeof(nAreaChance));
        memcpy(szCfgFileName, szTmpCfgFileName, sizeof(szCfgFileName));
    }
};
//////////////////////////////////////////////////////////////////////////

//机器人类
class CAndroidUserItemSink : public IAndroidUserItemSink
{
    //游戏变量
protected:
    LONGLONG                        m_lMaxChipBanker;                    //最大下注 (庄家)
    LONGLONG                        m_lMaxChipUser;                        //最大下注 (个人)
    LONGLONG                        m_lAreaChip[AREA_COUNT];            //区域下注
    WORD                            m_wCurrentBanker;                    //庄家位置
    BYTE                            m_cbTimeLeave;                        //剩余时间

    LONGLONG                        m_lBankerScore;                        //庄家钱
    LONGLONG                        m_lAllBet[AREA_MAX];                //总下注
    LONGLONG                        m_lAndroidBet;                        //机器人下注

    int                                m_nChipLimit[2];                    //下注范围 (0-AREA_COUNT)
    int                                m_nChipTime;                        //下注次数 (本局)
    int                                m_nChipTimeCount;                    //已下次数 (本局)
   
    //上庄变量
protected:
    __int64                         m_nListUserCount;                    //列表人数
    bool                            m_bMeApplyBanker;                    //申请标识
    int                                m_nBankerCount;                        //本机器人的坐庄次数
    int                                m_nWaitBanker;                        //空几盘
    static int                        m_stlApplyBanker;                    //申请数
    static int                        m_stnApplyCount;                    //申请数

    int                             m_nMinBankerTimes;                    //最小坐庄次数
    int                             m_nMaxBankerTimes;                    //最大坐庄次数

    //配置变量  (全局配置)
protected:
    tagRobotInfo                    m_RobotInfo;                        //全局配置
    TCHAR                            m_szRoomName[32];                    //配置房间

    //配置变量    (游戏配置)
protected:
    bool                            m_bRefreshCfg;                        //每盘刷新
    LONGLONG                        m_lAreaLimitScore;                    //区域限制
    LONGLONG                        m_lUserLimitScore;                    //下注限制
    LONGLONG                        m_lBankerCondition;                    //上庄条件        

    //配置变量  (机器人配置)
protected:
    LONGLONG                        m_lRobotBetLimit[2];                //筹码限制   
    int                                m_nRobotBetTimeLimit[2];            //次数限制   
    bool                            m_bRobotBanker;                        //是否坐庄
    int                                m_nRobotBankerCount;                //坐庄次数
    int                                m_nRobotWaitBanker;                    //空盘重申
    int                                m_nRobotListMaxCount;                //上庄个数
    int                                m_nRobotListMinCount;                //上庄个数
    bool                            m_bReduceBetLimit;                //降低限制

    //机器人存取款
    LONGLONG                        m_lRobotScoreRange[2];                //最大范围
    LONGLONG                        m_lRobotBankGetScore;                //提款数额
    LONGLONG                        m_lRobotBankGetScoreBanker;            //提款数额 (庄家)
    int                                m_nRobotBankStorageMul;                //存款倍数

    //控件变量
protected:
    //CGameLogic                        m_GameLogic;                        //游戏逻辑
    IAndroidUserItem *                m_pIAndroidUserItem;                //用户接口

    //函数定义
public:
    //构造函数
    CAndroidUserItemSink();
    //析构函数
    virtual ~CAndroidUserItemSink();

    //基础接口
public:
    //释放对象
    virtual VOID Release() { }
    //接口查询
    virtual void * QueryInterface(REFGUID Guid, DWORD dwQueryVer);

    //控制接口
public:
    //初始接口
    virtual bool Initialization(IUnknownEx * pIUnknownEx);
    //重置接口
    virtual bool RepositionSink();

    //游戏事件
public:
    //时间消息
    virtual bool OnEventTimer(UINT nTimerID);
    //游戏消息
    virtual bool OnEventGameMessage(WORD wSubCmdID, void * pData, WORD wDataSize);
    //游戏消息
    virtual bool OnEventFrameMessage(WORD wSubCmdID, void * pData, WORD wDataSize);
    //场景消息
    virtual bool OnEventSceneMessage(BYTE cbGameStatus, bool bLookonOther, void * pData, WORD wDataSize);

    //用户事件
public:
    //用户进入
    virtual void OnEventUserEnter(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
    //用户离开
    virtual void OnEventUserLeave(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
    //用户积分
    virtual void OnEventUserScore(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
    //用户状态
    virtual void OnEventUserStatus(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);


    //消息处理
public:
    //游戏空闲
    bool OnSubGameFree(const void * pBuffer, WORD wDataSize);
    //游戏开始
    bool OnSubGameStart(const void * pBuffer, WORD wDataSize);
    //用户加注
    bool OnSubPlaceBet(const void * pBuffer, WORD wDataSize);
    //下注失败
    bool OnSubPlaceBetFail(const void * pBuffer, WORD wDataSize);
    //游戏结束
    bool OnSubGameEnd(const void * pBuffer, WORD wDataSize);
    //申请做庄
    bool OnSubUserApplyBanker(const void * pBuffer, WORD wDataSize);
    //取消做庄
    bool OnSubUserCancelBanker(const void * pBuffer, WORD wDataSize);
    //切换庄家
    bool OnSubChangeBanker(const void * pBuffer, WORD wDataSize);

    //功能函数
public:
    //读取配置
    void ReadConfigInformation(TCHAR szFileName[], TCHAR szRoomName[], bool bReadFresh);
    //计算范围
    bool CalcBetRange(LONGLONG lMaxScore, LONGLONG lChipLmt[], int & nChipTime, int lJetLmt[]);
    //最大下注
    LONGLONG GetMaxPlayerScore( BYTE cbBetArea );
};

//////////////////////////////////////////////////////////////////////////

#endif

分享到:  QQ好友和群QQ好友和群
收藏收藏
回复

使用道具 举报

快速回复高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表