コード例 #1
0
ファイル: WorldBot.cs プロジェクト: PsychoTeras/RatKing
        private void GameHostResponse(BaseResponse e)
        {
            switch (e.Type)
            {
            case PacketType.UserEnter:
                Connected           = true;
                _changingConnection = false;
                break;

            case PacketType.UserLogin:
                RUserLogin userLogin = (RUserLogin)e;
                _sessionToken = userLogin.SessionToken;
                ShortSize screenRes = new ShortSize
                                      (
                    Screen.PrimaryScreen.Bounds.Width,
                    Screen.PrimaryScreen.Bounds.Height
                                      );
                TCPClientDataSend(new PUserEnter
                {
                    SessionToken = _sessionToken,
                    ScreenRes    = screenRes
                });
                break;
            }
        }
コード例 #2
0
ファイル: FrameHelp.cs プロジェクト: yangyangscript/RedisLib
 /// <summary>
 /// 跟新单个可以登陆用户
 /// </summary>
 /// <param name="userLogin"></param>
 public static void UpdateLoginUser(RUserLogin userLogin)
 {
     try
     {
         var db = RedisLib.Config.RedisDbs.AuditFrameDb();
         RedisLib.Config.RedisHelper.SetHash(db, RedisLib.Model.Frame.Tables.UserLogin, userLogin.Name, userLogin);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
コード例 #3
0
ファイル: MapControl.cs プロジェクト: PsychoTeras/RatKing
        private void GameHostResponse(BaseResponse e)
        {
            if (e.HasError)
            {
                ReconnectToHost();
                return;
            }

            switch (e.Type)
            {
            case PacketType.UserLogin:
                RUserLogin userLogin = (RUserLogin)e;
                _sessionToken = userLogin.SessionToken;
                ShortSize screenRes = new ShortSize
                                      (
                    Screen.PrimaryScreen.Bounds.Width,
                    Screen.PrimaryScreen.Bounds.Height
                                      );
                TCPClientDataSend(new PUserEnter
                {
                    SessionToken = _sessionToken,
                    ScreenRes    = screenRes
                });
                break;

            case PacketType.UserEnter:
                lock (_playersData)
                {
                    RUserEnter userEnter = (RUserEnter)e;      //!!!
                    _map.Setup(userEnter.MapSize);
                    _map.AppendMapData(userEnter.MapData, userEnter.MapWindow);
                    _map.AppendMiniMapData(userEnter.MiniMapData, userEnter.MiniMapSize);
                    OnMapChanged();

                    foreach (Player p in userEnter.PlayersOnLocation)
                    {
                        if (!_playersData.ContainsKey(p.Id))
                        {
                            _playersData.Add(p.Id, new PlayerDataEx(p));
                        }
                    }
                    _myPlayerData = _playersData[userEnter.MyPlayerId];
                    _playersRo    = new ReadOnlyCollection <PlayerDataEx>(_playersData.Values.ToArray());
                }
                CenterTo((int)(_myPlayerData.Player.Position.X * _scaleFactor),    //!!!
                         (int)(_myPlayerData.Player.Position.Y * _scaleFactor),
                         true);
                break;

            case PacketType.PlayerEnter:
                lock (_playersData)
                {
                    RPlayerEnter playerEnter = (RPlayerEnter)e;
                    if (!_playersData.ContainsKey(playerEnter.Player.Id) && _myPlayerData != null &&
                        playerEnter.Player.Id != _myPlayerData.Player.Id)
                    {
                        _playersData.Add(playerEnter.Player.Id, new PlayerDataEx(playerEnter.Player));
                        _playersRo        = new ReadOnlyCollection <PlayerDataEx>(_playersData.Values.ToArray());
                        _somethingChanged = true;     //!!!
                    }
                }
                break;

            case PacketType.PlayerExit:
                lock (_playersData)
                {
                    RPlayerExit playerExit = (RPlayerExit)e;
                    if (_playersData.ContainsKey(playerExit.PlayerId) && _myPlayerData != null &&
                        playerExit.PlayerId != _myPlayerData.Player.Id)
                    {
                        _playersData.Remove(playerExit.PlayerId);
                        _playersRo        = new ReadOnlyCollection <PlayerDataEx>(_playersData.Values.ToArray());
                        _somethingChanged = true;     //!!!
                    }
                }
                break;

            case PacketType.PlayerRotate:
                lock (_playersData)
                {
                    PlayerDataEx  playerData;
                    RPlayerRotate playerRotate = (RPlayerRotate)e;
                    if (_playersData.TryGetValue(playerRotate.PlayerId, out playerData))
                    {
                        playerData.Player.Angle = playerRotate.Angle;
                    }
                }
                break;

            case PacketType.PlayerMove:
                lock (_playersData)
                {
                    PlayerDataEx playerData;
                    RPlayerMove  playerMove = (RPlayerMove)e;
                    if (_playersData.TryGetValue(playerMove.PlayerId, out playerData))
                    {
                        if (playerMove.Direction == Direction.None)
                        {
                            playerData.StopMoving(playerMove.Position);
                        }
                        else
                        {
                            playerData.StartMoving(playerMove.Position, playerMove.Direction);
                        }
                    }
                }
                break;

            case PacketType.MapData:
                RMapData mapData = (RMapData)e;
                _map.AppendMapData(mapData.MapData, mapData.MapWindow);     //!!!
                _myPlayerData.GettingMapWindow = false;
                break;
            }
        }