예제 #1
0
 public void AddMessageToHistoryTextBox(ChatEngine.StringInfo messageInfo)
 {
     if (messageInfo.strRoomID.Equals(Login._UserInfo.GameId))
     {
         InterpretServerMessgae(messageInfo.UserId, messageInfo.String, messageInfo.FontSize, messageInfo.FontName, messageInfo.FontStyle, messageInfo.FontWeight, messageInfo.FontColor);
     }
 }
예제 #2
0
        private void SendMessage(string strMessage)
        {
            try
            {
                int    nFontSize     = 0;
                string strFontName   = "";
                string strFontStyle  = "";
                string strFontWeight = "";
                string strFontColor  = "";

                nFontSize   = Convert.ToInt32(this.rtxtMessageEdit.FontSize);
                strFontName = rtxtMessageEdit.FontFamily.Source;

                if (this.rtxtMessageEdit.FontStyle == FontStyles.Italic)
                {
                    strFontStyle = FontInfo.FONT_STYLE_ITALIC;
                }
                else
                {
                    strFontStyle = FontInfo.FONT_STYLE_NORMAL;
                }

                if (this.rtxtMessageEdit.FontWeight == FontWeights.Bold)
                {
                    strFontWeight = FontInfo.FONT_WEIGHT_BOLD;
                }
                else
                {
                    strFontWeight = FontInfo.FONT_WEIGHT_NORMAL;
                }

                strFontColor = rtxtMessageEdit.Foreground.ToString();

                ChatEngine.StringInfo messageInfo = new ChatEngine.StringInfo();

                messageInfo.UserId     = Login._UserInfo.Id;
                messageInfo.String     = strMessage;
                messageInfo.FontSize   = nFontSize;
                messageInfo.FontName   = strFontName;
                messageInfo.FontStyle  = strFontStyle;
                messageInfo.FontWeight = strFontWeight;
                messageInfo.FontColor  = strFontColor;
                messageInfo.strRoomID  = Login._UserInfo.GameId;

                Login._ClientEngine.Send(NotifyType.Request_GameChat, messageInfo);
            }
            catch (Exception)
            { }
        }
예제 #3
0
        public void OnReceive(NotifyType type, Socket socket, BaseInfo baseInfo)
        {
            try
            {
                switch (type)
                {
                case NotifyType.Reply_GameChat:
                {
                    ChatEngine.StringInfo strInfo = (ChatEngine.StringInfo)baseInfo;

                    AddMessageToHistoryTextBox(strInfo);
                }
                break;

                case NotifyType.Reply_Betting:
                {
                    if (!(baseInfo is BettingInfo))
                    {
                        return;
                    }

                    BettingInfo bettingInfo = (BettingInfo)baseInfo;

                    if (m_wMeChairID == bettingInfo._UserIndex || m_tableinfo == null)
                    {
                        return;
                    }

                    string strMsg = string.Format("{0} <{1}> 下注", m_tableinfo._Players[bettingInfo._UserIndex].Nickname, GetUriString(bettingInfo._Score));

                    InterpretServerMessgae("AMDIN_MSG", strMsg, 12, "Segoe UI", "b", "d", "#FFFFFF");
                }
                break;
                }
            }
            catch (Exception)
            { }
        }
예제 #4
0
        private void NotifyOccured(NotifyType notifyType, Socket socket, BaseInfo baseInfo)
        {
            switch (notifyType)
            {
            case NotifyType.Reply_TableDetail:
            {
                if (!(baseInfo is TableInfo))
                {
                    return;
                }

                TableInfo tableInfo = (TableInfo)baseInfo;

                m_wMeChairID = GameDefine.INVALID_CHAIR;

                for (int i = 0; i < tableInfo._Players.Count; i++)
                {
                    UserInfo userInfo = tableInfo._Players[i];

                    if (userInfo != null && userInfo.Id == Login._UserInfo.Id)
                    {
                        m_wMeChairID = i;
                        break;
                    }
                }

                if (tableInfo._RoundIndex > 0)
                {
                    // added by usc at 2014/03/11
                    Array.Clear(m_lUserBetAll, 0, m_lUserBetAll.Length);

                    if (_GameInfo.Source == "Horse")
                    {
                        HorseInfo horseInfo = (HorseInfo)tableInfo;

                        for (int i = 0; i < HorseDefine.AREA_COUNT; i++)
                        {
                            m_aAreaSum[i] = horseInfo.m_lPlayerBetAll[i];
                        }

                        DrawBettingGraph(m_aAreaSum);

                        // added by usc at 2014/03/11
                        for (int i = 0; i < horseInfo._Players.Count; i++)
                        {
                            for (int j = 0; j < HorseDefine.AREA_COUNT; j++)
                            {
                                m_lUserBetAll[i] += horseInfo.m_lPlayerBet[i, j];
                            }
                        }
                    }
                    else
                    {
                        BumperCarInfo bumpercarInfo = (BumperCarInfo)tableInfo;

                        for (int i = 0; i < BumperCarDefine.AREA_COUNT; i++)
                        {
                            m_aAreaSum[i] = bumpercarInfo.m_lAllJettonScore[i + 1];
                        }

                        DrawBettingGraph(m_aAreaSum);

                        // added by usc at 2014/03/11
                        for (int i = 0; i < bumpercarInfo._Players.Count; i++)
                        {
                            for (int j = 0; j < BumperCarDefine.AREA_COUNT; j++)
                            {
                                m_lUserBetAll[i] += bumpercarInfo.m_lUserJettonScore[j + 1, i];
                            }
                        }
                    }

                    if (m_tableinfo == null)
                    {
                        DrawUserList(tableInfo, false);

                        // added by usc at 2014/04/03
                        string strMsg = string.Format("欢迎 {0} 进入房间", Login._UserInfo.Nickname);

                        InterpretServerMessgae("AMDIN_MSG", strMsg, 12, "Segoe UI", "b", "d", "#9adf8c");
                    }
                }

                if (m_tableinfo != null && m_tableinfo._RoundIndex == tableInfo._RoundIndex)
                {
                    m_tableinfo = tableInfo;

                    DrawUserList(tableInfo, false);

                    return;
                }

                // added by usc at 2014/03/19
                //if (m_wMeChairID == GameDefine.INVALID_CHAIR)
                //    return;

                m_tableinfo = tableInfo;

                if (tableInfo._RoundIndex == 0)
                {
                    // added by usc at 2014/03/11
                    Array.Clear(m_aAreaSum, 0, m_aAreaSum.Length);
                    Array.Clear(m_lUserBetAll, 0, m_lUserBetAll.Length);

                    DrawBettingGraph(m_aAreaSum);

                    InitUserList(tableInfo);
                }
            }
            break;

            case NotifyType.Reply_GameResult:
            {
                ChatEngine.StringInfo strInfo = (ChatEngine.StringInfo)baseInfo;

                if (strInfo != null)
                {
                    if (strInfo.UserId == Login._UserInfo.Id)
                    {
                        DrawUserList(m_tableinfo, true);
                    }
                }
            }
            break;

            case NotifyType.Reply_Betting:
            {
                if (!(baseInfo is BettingInfo))
                {
                    return;
                }

                BettingInfo bettingInfo = (BettingInfo)baseInfo;

                int nArea = 0;
                if (_GameInfo.Source == "Horse")
                {
                    nArea = bettingInfo._Area;
                }
                else if (_GameInfo.Source == "BumperCar")
                {
                    nArea = bettingInfo._Area - 1;
                }

                m_aAreaSum[nArea] += bettingInfo._Score;

                // added by usc at 2014/03/11
                m_lUserBetAll[bettingInfo._UserIndex] += bettingInfo._Score;

                DrawBettingGraph(m_aAreaSum);

                DrawUserList(m_tableinfo, false);
            }
            break;
            }
        }
예제 #5
0
        public static BaseInfo CreateInstance(BinaryReader br)
        {
            BaseInfo baseInfo = null;

            InfoType infoType = (InfoType)DecodeInteger(br);

            switch (infoType)
            {
            case InfoType.Result:
                baseInfo = new ResultInfo();
                break;

            case InfoType.Header:
                baseInfo = new HeaderInfo();
                break;

            case InfoType.Home:
                baseInfo = new HomeInfo();
                break;

            case InfoType.User:
                baseInfo = new UserInfo();
                break;

            case InfoType.UserDetail:
                baseInfo = new UserDetailInfo();
                break;

            case InfoType.Room:
                baseInfo = new RoomInfo();
                break;

            case InfoType.RoomList:
                baseInfo = new RoomListInfo();
                break;

            case InfoType.RoomDetail:
                baseInfo = new RoomDetailInfo();
                break;

            case InfoType.String:
                baseInfo = new StringInfo();
                break;

            case InfoType.Voice:
                baseInfo = new VoiceInfo();
                break;

            case InfoType.Video:
                baseInfo = new VideoInfo();
                break;

            case InfoType.Present:
                baseInfo = new IconInfo();
                break;

            case InfoType.Give:
                baseInfo = new GiveInfo();
                break;

            case InfoType.Game:
                baseInfo = new GameInfo();
                break;

            case InfoType.GameList:
                baseInfo = new GameListInfo();
                break;

            case InfoType.GameDetail:
                baseInfo = new GameDetailInfo();
                break;

            case InfoType.ChatHistory:
                baseInfo = new ChatHistoryInfo();
                break;

            case InfoType.PointHistory:
                baseInfo = new PointHistoryInfo();
                break;

            case InfoType.ChargeHistory:
                baseInfo = new ChargeHistoryInfo();
                break;

            case InfoType.EvalHistory:
                baseInfo = new EvalHistoryInfo();
                break;

            case InfoType.PresentHistory:
                baseInfo = new PresentHistoryInfo();
                break;

            case InfoType.GameHistory:
                baseInfo = new GameHistoryInfo();
                break;

            case InfoType.UserList:
                baseInfo = new UserListInfo();
                break;

            case InfoType.AskChat:
                baseInfo = new AskChatInfo();
                break;

            case InfoType.Board:
                baseInfo = new BoardInfo();
                break;

            case InfoType.Betting:
                baseInfo = new BettingInfo();
                break;

            case InfoType.Table:
                baseInfo = new TableInfo();
                break;

            case InfoType.Sicbo:
                baseInfo = new SicboInfo();
                break;

            case InfoType.Dice:
                baseInfo = new DiceInfo();
                break;

            case InfoType.DzCard:
                baseInfo = new DzCardInfo();
                break;

            case InfoType.Horse:
                baseInfo = new HorseInfo();
                break;

            case InfoType.BumperCar:
                baseInfo = new BumperCarInfo();
                break;

            case InfoType.Fish:
                baseInfo = new FishInfo();
                break;

            case InfoType.FishSend:
                baseInfo = new FishSendInfo();
                break;

            case InfoType.AddScore:
                baseInfo = new AddScoreInfo();
                break;

            case InfoType.SendCard:
                baseInfo = new SendCardInfo();
                break;

            case InfoType.Musice:
                baseInfo = new MusiceInfo();
                break;

            case InfoType.MusiceState:
                baseInfo = new MusiceStateInfo();
                break;

            case InfoType.ClassInfo:
                baseInfo = new ClassInfo();
                break;

            case InfoType.ClassList:
                baseInfo = new ClassListInfo();
                break;

            case InfoType.ClassTypeInfo:
                baseInfo = new ClassTypeInfo();
                break;

            case InfoType.ClassTypeList:
                baseInfo = new ClassTypeListInfo();
                break;

            case InfoType.ClassPictureDetail:
                baseInfo = new ClassPictureDetailInfo();
                break;

            case InfoType.RoomValue:
                baseInfo = new RoomPrice();
                break;

            case InfoType.Payment:
                baseInfo = new PaymentInfo();
                break;

            case InfoType.DWGameFile:
                baseInfo = new DWGameFileInfo();
                break;

            case InfoType.UserState:
                baseInfo = new UserState();
                break;

            case InfoType.Server:
                baseInfo = new ServerInfo();
                break;

            case InfoType.AVMsg:
                baseInfo = new AVMsg();
                break;
            }

            if (baseInfo != null)
            {
                baseInfo.FromBytes(br);
            }

            return(baseInfo);
        }