public void AddPlayer(Player player)
        {
            var session     = sessions.Get(player);
            var connections = connectionProvider.GetConnectedActivePlayerConnections(session);

            foreach (var connection in connections)
            {
                connection.Send(PlayerAdd.Create(gameData, player), SendOption.Reliable);
            }
        }
Esempio n. 2
0
        public Task AddAsync(PlayerAdd player)
        {
            if (player == null)
            {
                throw new ArgumentNullException(nameof(player), "Player add must be provided.");
            }

            Logger.LogDebug($"Adding player '{player}' to '{MetadataResolver.TableName<PlayerSql>()}' table.");

            PlayerSql sqlEntry = PlayerSql.FromCoreAddEntity(player);

            return(DbConnection.Insert(sqlEntry).ExecuteAsync());
        }
Esempio n. 3
0
        public async Task AddAsync(PlayerAdd player)
        {
            if (player == null)
            {
                throw new ArgumentNullException(nameof(player), "Player add model must be provided.");
            }

            var collectionName = CollectionResolver.GetName <PlayerDocument>();

            PlayerDocument document = PlayerDocument.FromCoreAddEntity(player);

            await GetMongoDbContext().InsertOneAsync(document);

            Logger.LogDebug($"Added player '{player.NflId}' as '{document.Id}' to '{collectionName}' collection.");
        }
Esempio n. 4
0
 public static PlayerSql FromCoreAddEntity(PlayerAdd add)
 {
     return(new PlayerSql
     {
         Id = Guid.NewGuid(),
         NflId = add.NflId,
         EsbId = add.EsbId,
         GsisId = add.GsisId,
         FirstName = add.FirstName,
         LastName = add.LastName,
         Position = add.Position,
         Status = add.Status,
         Number = add.Number,
         Height = add.Height,
         Weight = add.Weight,
         DateOfBirth = add.DateOfBirth,
         College = add.College
     });
 }
Esempio n. 5
0
        internal string AddPlayer(PlayerAdd addItem)
        {
            bool success;

            List <string> carsState = new List <string>();

            lock (this.PlayerLock)
            {
                addItem.Key = addItem.Key.Trim();
                if (this._Players.ContainsKey(addItem.Key))
                {
                    success = false;
                    return("ng");
                }
                else
                {
                    success = true;

                    bool hasTheSameName = false;
                    do
                    {
                        hasTheSameName = false;
                        foreach (var item in this._Players)
                        {
                            if (item.Value.PlayerName == addItem.PlayerName)
                            {
                                hasTheSameName = true;
                                break;
                            }
                        }
                        if (hasTheSameName)
                        {
                            addItem.PlayerName += "A";
                        }
                    } while (hasTheSameName);

                    // BaseInfomation.rm.AddPlayer
                    this._Players.Add(addItem.Key, new Player()
                    {
                        Key         = addItem.Key,
                        FromUrl     = addItem.FromUrl,
                        WebSocketID = addItem.WebSocketID,
                        PlayerName  = addItem.PlayerName,

                        CreateTime   = DateTime.Now,
                        ActiveTime   = DateTime.Now,
                        StartFPIndex = -1,
                        //others = new Dictionary<string, OtherPlayers>(),
                        PromoteState = new Dictionary <string, int>()
                        {
                            { "mile", -1 },
                            { "business", -1 },
                            { "volume", -1 },
                            { "speed", -1 }
                        },
                        Collect = -1,
                        //Debts = new Dictionary<string, long>(),
                        //Money = 500 * 100,
                        //  Bust = false,
                        //TaxInPosition = new Dictionary<int, long>(),
                        returningRecord = new Dictionary <string, List <Model.MapGo.nyrqPosition> >()
                        {
                            { "carA", new List <Model.MapGo.nyrqPosition>() },
                            { "carB", new List <Model.MapGo.nyrqPosition>() },
                            { "carC", new List <Model.MapGo.nyrqPosition>() },
                            { "carD", new List <Model.MapGo.nyrqPosition>() },
                            { "carE", new List <Model.MapGo.nyrqPosition>() }
                        },
                        OpenMore            = 0,
                        PromoteDiamondCount = new Dictionary <string, int>()
                        {
                            { "mile", 0 },
                            { "business", 0 },
                            { "volume", 0 },
                            { "speed", 0 }
                        }
                    });
                    this._Players[addItem.Key].initializeCars(addItem.CarsNames, this);
                    this._Players[addItem.Key].initializeOthers();
                    // this._Players[addItem.Key].SysRemovePlayerByKeyF = BaseInfomation.rm.SysRemovePlayerByKey;
                    //System.Random rm = new System.Random(DateTime.Now.GetHashCode());

                    int fpIndex = this.GetRandomPosition(false); // this.rm.Next(0, Program.dt.GetFpCount());

                    // this._FpOwner.Add(fpIndex, addItem.Key);
                    this._Players[addItem.Key].StartFPIndex = fpIndex;

                    this._Players[addItem.Key].TaxChanged = RoomMain.TaxAdded;
                    this._Players[addItem.Key].TaxInPositionInit();// = RoomMain.TaxAdded;
                    this._Players[addItem.Key].InitializeDebt();


                    //SetMoneyCanSave 在InitializeDebt 之后,MoneySet之前
                    this._Players[addItem.Key].SetMoneyCanSave = RoomMain.SetMoneyCanSave;
                    this._Players[addItem.Key].MoneyChanged    = RoomMain.MoneyChanged;
                    var notifyMsgs = new List <string>();
                    this._Players[addItem.Key].MoneySet(500 * 100, ref notifyMsgs);

                    // this._Players[addItem.Key].SupportChangedF = RoomMain.SupportChanged;

                    this._Players[addItem.Key].TheLargestHolderKeyChanged = this.TheLargestHolderKeyChanged;
                    this._Players[addItem.Key].InitializeTheLargestHolder();

                    // this._Players[addItem.Key].Money

                    this._Players[addItem.Key].BustChangedF = this.BustChangedF;
                    this._Players[addItem.Key].SetBust(false, ref notifyMsgs);

                    this._Players[addItem.Key].DrawSingleRoadF = this.DrawSingleRoadF;
                    this._Players[addItem.Key].addUsedRoad(Program.dt.GetFpByIndex(fpIndex).RoadCode, ref notifyMsgs);

                    this._Players[addItem.Key].brokenParameterT1RecordChanged = this.brokenParameterT1RecordChanged;
                    //  this._Players[addItem.Key].DrawSingleRoadF = this.DrawSingleRoadF;
                }
            }

            if (success)
            {
                return("ok");
            }
            else
            {
                return("ng");
            }
            //  throw new NotImplementedException();
        }
        public void LinkToGameSession(string sessionKey, PlayerConnection myConnection)
        {
            try
            {
                var session = sessions.GetOrCreate(sessionKey);

                session.AddPlayer(myConnection);

                if (!session.IsOpenWorldSession && session.Bot == null)
                {
                    var bot = botManager.GetMostAvailable();
                    if (bot != null)
                    {
                        session.AssignBot(bot);
                    }
                }

                var allPlayers  = session.Players.GetAll();
                var connections = connectionProvider.GetConnectedActivePlayerConnections(session);

                var objects = session.Objects.GetAll();
                var npcs    = session.Npcs.GetAll();

                var myInventory = playerInventoryProvider.GetInventory(myConnection.Player.Id);

                foreach (var connection in connections)
                {
                    var isMe = connection.InstanceID == myConnection.InstanceID;
                    if (isMe)
                    {
                        connection.Send(MyPlayerAdd.Create(gameData, myConnection.Player, myInventory.Items), SendOption.Reliable);
                        //connection.Send(PlayerInventory.Create(myConnection.Player, inventory.Items), SendOption.Reliable);
                    }
                    else
                    {
                        connection.Send(PlayerAdd.Create(gameData, myConnection.Player), SendOption.Reliable);
                    }
                }

                foreach (var player in allPlayers)
                {
                    if (player.Id == myConnection.Player.Id)
                    {
                        continue;
                    }
                    myConnection.Send(PlayerAdd.Create(gameData, player), SendOption.Reliable);
                }

                foreach (var obj in objects)
                {
                    var gobj      = gameData.GetGameObject(obj.ObjectId);
                    var transform = gameData.GetTransform(gobj.TransformId);
                    if (gobj.Static)
                    {
                        if (obj.Type != gobj.Type)
                        {
                            myConnection.Send(ObjectUpdate.Create(obj, transform, gobj.Static), SendOption.Reliable);
                        }
                    }
                    else
                    {
                        myConnection.Send(ObjectAdd.Create(obj, transform), SendOption.Reliable);
                    }
                }

                foreach (var npc in npcs)
                {
                    var transform = gameData.GetTransform(npc.TransformId);
                    myConnection.Send(NpcAdd.Create(gameData, npc, transform), SendOption.Reliable);
                }
            }
            catch (Exception exc)
            {
                logger.LogInformation(exc.ToString());
            }
        }