Ejemplo n.º 1
0
 public override Task OnDisconnected()        // дисконнект конкретного игрока с задержкой 7 секунд
 {
     if (_broadcaster.players.Any(p => p.ConnectionId == Context.ConnectionId))
     {
         LeavePlayers.Add(_broadcaster.players.First(p => p.ConnectionId == Context.ConnectionId));
         Thread mythread = new Thread(WaitLeavePlayerTimer);
         mythread.Start(LeavePlayers.First(p => p.ConnectionId == Context.ConnectionId).Id);
         //_logger.Log("OnDisconnected({0})", Context.ConnectionId);
         Clients.All.playerleave(_broadcaster.players.First(p => p.ConnectionId == Context.ConnectionId).Id);
         _broadcaster.players.Remove(_broadcaster.players.First(p => p.ConnectionId == Context.ConnectionId));
     }
     return(base.OnDisconnected());
 }
Ejemplo n.º 2
0
        public Task Connect(int id)        // дисконнект конкретного игрока с задержкой 7 секунд
        {
            //BD.UsersVK
            // int id = 0;
            id = Broadcaster.Instance.players.Count();
            var User = (from u in BD.UsersData where u.Id == id select u).ToArray();

            if (User.Length > 0)            // Тут еще проверочку на пасс
            {
                if (LeavePlayers.Any(p => p.Id == id))
                {
                    LeavePlayers.First(p => p.Id == id).ConnectionId = Context.ConnectionId;
                    _broadcaster.players.Add(LeavePlayers.First(p => p.Id == id));
                    LeavePlayers.Remove(LeavePlayers.First(p => p.Id == id));
                }
                else if (_broadcaster.players.Any(p => p.Id == id))
                {
                    _broadcaster.players.First(p => p.Id == id).ConnectionId = Context.ConnectionId;
                }
                else
                {
                    PlayerModel newPlayer = oldplayer(Context.ConnectionId, id, User[0]);
                    SendPosition(newPlayer.x, newPlayer.y);
                    _broadcaster.players.Add(newPlayer);
                }
            }
            else
            {
                PlayerModel newPlayer = newplayer(Context.ConnectionId, "dEND", BD.UsersData.Count());
                #region Добавление юзера в бд
                UsersData RegModel = new UsersData();
                RegModel.Id        = BD.UsersData.Count();
                RegModel.Name      = newPlayer.Name;
                RegModel.Money     = 10000;
                RegModel.Credits   = 2;
                RegModel.SkillData = JsonConvert.SerializeObject(newPlayer.skillsInfoArray);
                BD.UsersData.InsertOnSubmit(RegModel);
                BD.SubmitChanges();
                #endregion
                SendPosition(newPlayer.x, newPlayer.y);             //кидаем его на эту точку
                _broadcaster.players.Add(newPlayer);                //добавляем в список
            }
            return(base.OnConnected());
        }