예제 #1
0
        public override void ProcessMessage(ConnectBase conn, ByteBuffer data)
        {
            int moduleId = data.readByte();

            switch (moduleId)
            {
            case SERVER_MESSAGEBOX:
                int      boxType = data.readByte();
                int      key     = data.readInt();
                int      size    = data.readByte();
                string   value   = ConfigData.GetStaticText(key.ToString());
                string[] c       = new string[size];
                for (int i = 0; i < size; ++i)
                {
                    int a = data.readByte();
                    int b = data.readInt();
                    c[i] = (0 == a) ? b.ToString() : ConfigData.GetStaticText(b.ToString());
                }
                MsgBoxPanel.ShowMsgBox(string.Empty, string.Format(value, c), boxType);
                break;

            case SERVER_STRING:
                string msg = data.readUTF();
                MsgBoxPanel.ShowMsgBox(string.Empty, msg, 1);
                break;
            }
        }
예제 #2
0
        public override void ProcessMessage(ConnectBase conn, ByteBuffer data)
        {
            int moduleId = data.readByte();

            switch (moduleId)
            {
            case BATTLE_START:
            {
                BattleManager.GetInst().m_BattleScene.OnBattleStart();
                break;
            }

            case BATTLE_COIN:
            {
                BattleManager.GetInst().m_BattleScene.Coin = data.readInt();
                break;
            }

            case BATTLE_CUR_SPAWN:
            {
                SpawnHandler.GetInst().SetSpawnInfo(data.readInt());
                break;
            }

            case BATTLE_CUR_WAVE:
            {
                SpawnHandler.GetInst().CurWave = data.readInt();
                SpawnHandler.GetInst().ReleaseCurWave();
                break;
            }

            case BATTLE_HIGHEST_SPAWN:
            {
                int highestLv = data.readInt();
                //
                break;
            }

            case BATTLE_TASK:
            {
                int taskId = data.readInt();
                BattleTaskFinishPanel.GetInst().Show(taskId);
                break;
            }

            case BATTLE_HERO:
            {
                BattleManager.GetInst().AddHero(data.readInt(), data.readInt(), data.readByte());
                break;
            }

            case BATTLE_HERO_LEVEL:
            {
                break;
            }
            }
        }
예제 #3
0
        public override void ProcessMessage(ConnectBase conn, ByteBuffer data)
        {
            int moduleId = data.readByte();

            switch (moduleId)
            {
            case INTO_BATTLE:
                SceneLoaderMain.GetInst().LoadBattleScene();
                break;

            default:
                break;
            }
        }
예제 #4
0
        public override void ProcessMessage(ConnectBase conn, ByteBuffer data)
        {
            int moduleId = data.readByte();

            switch (moduleId)
            {
            case PLAYER_LOGIN_END:
            {
                SceneLoader.LoadScene("MainScene");
                break;
            }

            case PLAYER_INFO:
            {
                LoginPanel.GetInst().SaveAccount();
                ApplicationConst.bGM = data.readBoolean();
                PlayerInfo.PlayerId  = data.readUTF();
                PlayerInfo.Nickname  = data.readUTF();
                PlayerInfo.GuideStep = data.readByte();
                break;
            }

            case PLAYER_HERO:
            {
                int     heroId       = data.readInt();
                int     star         = data.readInt();
                int     maxPower     = data.readInt();
                float[] mainProperty = new float[10];
                for (int j = 0; j < 10; ++j)
                {
                    mainProperty[j] = data.readInt() / 100f;
                }

                HeroAll.SetHeroInfo(heroId, new HeroInfo(heroId, star, maxPower, mainProperty));
                if (BattleHeroListPanel.m_Inst != null)
                {
                    BattleHeroListPanel.GetInst().InsertHeroItem(heroId);
                }
                break;
            }
            }
        }
예제 #5
0
        public static void SendMsgToOneClient(BattleCommand command, string accountID, Battle battle, LemonMessage msg)
        {
            SocketServer socketServer = FightServer.Instance.GetServer();

            try
            {
                ConnectBase conn = socketServer.GetConnect(accountID);
                if (conn != null)
                {
                    conn.SendMessage(msg);
                }
                //socketServer.SendMessage(accountID, msg);
            }
            catch (Exception ex)
            {
                LogHelper.LogError("AskTouchCard发送出错:" + ex.Message + " " + ex.StackTrace);
            }
            BattleAIServerManager.Instance.SendToAIUser(accountID, command, battle);
            LogHelper.DebugLog("send " + command);
        }
예제 #6
0
        public override void ProcessMessage(ConnectBase conn, ByteBuffer data)
        {
            int moduleId = data.readByte();

            switch (moduleId)
            {
            case PLAYER_INFO_RES:
                LoginPanel.GetInst().SaveAccount();
                ApplicationConst.bGM = data.readBoolean();
                PlayerData.PlayerId  = data.readInt();
                PlayerData.Nickname  = data.readUTF();
                PlayerData.CurHP     = 5;                              //Temp
                SceneLoader.LoadScene("MainScene");
                break;

            case PLAYER_COIN:
                PlayerData.Coin = data.readInt();
                break;

            case PLAYER_CUR_HERO:
                PlayerData.CurHero = data.readByte();
                break;

            case PLAYER_CUR_SCENE:
                PlayerData.CurScene = data.readByte();
                break;

            case PLAYER_STATE_HERO:
                PlayerData.StateHero = data.readInt();
                break;

            case PLAYER_STATE_SCENE:
                PlayerData.StateScene = data.readInt();
                break;

            case PLAYER_SEARCHING:
                SearchingPanel.GetInst().ShowPanel(data.readBoolean());
                break;
            }
        }
예제 #7
0
        void CleanUpAndRestart()
        {
            ThisTrunOperationNum = 0;
            CreateTime           = DateTime.Now;
            InitCardLibrary();
            this.Battle.TrunNum          = 1;
            this.Battle.BetGoldNum       = 0;
            this.Battle.CurrentNoteNum   = 0;
            this.Battle.CurrentSideOrder = 0;
            this.Battle.IsStarted        = false;
            List <PokerSide> willRemove = new List <PokerSide>();

            foreach (var s in Battle.Sides)
            {
                s.Cards.Clear();
                s.IsFlipCard = false;
                s.IsDisCard  = false;
                s.BatGold    = 0;
                s.WinGold    = 0;
            }
            //确定底注
            int goldMin = 0;

            switch (this.MatchType)
            {
            case PokerMatchType.GreenHands:
                Battle.CurrentNoteNum = 10;
                goldMin = 100;
                break;

            case PokerMatchType.Primary:
                Battle.CurrentNoteNum = 20;
                goldMin = 1000;
                break;

            case PokerMatchType.Intermediate:
                Battle.CurrentNoteNum = 40;
                goldMin = 5000;
                break;

            case PokerMatchType.Advanced:
                Battle.CurrentNoteNum = 80;
                goldMin = 20000;
                break;

            case PokerMatchType.Earl:
                Battle.CurrentNoteNum = 200;
                goldMin = 100000;
                break;
            }

            foreach (var s in Battle.Sides)
            {
                ConnectBase conn = PokerServer.Instance.GetServer().GetConnect(s.AccountID);
                if (conn == null || s.Gold < goldMin)
                {
                    willRemove.Add(s);
                }
                if (s.Gold < Battle.CurrentNoteNum)
                {
                    willRemove.Add(s);
                }
            }
            //清除一些
            foreach (var c in willRemove)
            {
                Battle.Sides.Remove(c);
                Battle.Msg = c.AccountID;
                ToPokerCleintCommand.SendToClient(PokerCommand.Leave, Battle);
            }

            ToPokerCleintCommand.SendToClient(PokerCommand.ReStart, Battle);
        }
예제 #8
0
 public abstract void ProcessMessage(ConnectBase conn, ByteBuffer data);