示例#1
0
 public void DoAuthSuccess()
 {
     try
     {
         FLLog.Info("Server", "Account logged in");
         Client.SendPacket(new LoginSuccessPacket(), PacketDeliveryMethod.ReliableOrdered);
         CharacterList = Game.Database.PlayerLogin(playerGuid);
         Client.SendPacket(new OpenCharacterListPacket()
         {
             Info = new CharacterSelectInfo()
             {
                 ServerName        = Game.ServerName,
                 ServerDescription = Game.ServerDescription,
                 ServerNews        = Game.ServerNews,
                 Characters        = CharacterList,
             }
         }, PacketDeliveryMethod.ReliableOrdered);
     }
     catch (Exception ex)
     {
         FLLog.Error("Player", ex.Message);
         FLLog.Error("Player",
                     ex.StackTrace);
     }
 }
示例#2
0
 public void AddRTC(string rtc)
 {
     lock (rtcs)
     {
         rtcs.Add(rtc);
         Client.SendPacket(new UpdateRTCPacket()
         {
             RTCs = rtcs.ToArray()
         }, PacketDeliveryMethod.ReliableOrdered);
     }
 }
示例#3
0
        public void OpenSaveGame(Data.Save.SaveGame sg)
        {
            Orientation       = Quaternion.Identity;
            Position          = sg.Player.Position;
            Base              = sg.Player.Base;
            System            = sg.Player.System;
            Character         = new NetCharacter();
            Character.Credits = sg.Player.Money;
            string ps;

            if (sg.Player.ShipArchetype != null)
            {
                ps = sg.Player.ShipArchetype;
            }
            else
            {
                ps = game.GameData.GetShip(sg.Player.ShipArchetypeCrc).Nickname;
            }
            Character.Ship      = game.GameData.GetShip(ps);
            Character.Equipment = new List <NetEquipment>();
            foreach (var eq in sg.Player.Equip)
            {
                var       hp = eq.Hardpoint;
                Equipment equip;
                if (eq.EquipName != null)
                {
                    equip = game.GameData.GetEquipment(eq.EquipName);
                }
                else
                {
                    equip = game.GameData.GetEquipment(eq.EquipHash);
                }
                if (equip != null)
                {
                    Character.Equipment.Add(new NetEquipment()
                    {
                        Equipment = equip, Hardpoint = hp, Health = 1
                    });
                }
            }
            if (Base != null)
            {
                client.SendPacket(new BaseEnterPacket()
                {
                    Base = Base,
                    Ship = Character.EncodeLoadout()
                }, NetDeliveryMethod.ReliableOrdered);
            }
            else
            {
                var sys = game.GameData.GetSystem(System);
                game.RequestWorld(sys, (world) =>
                {
                    World = world;
                    client.SendPacket(new SpawnPlayerPacket()
                    {
                        System      = System,
                        Position    = Position,
                        Orientation = Orientation,
                        Ship        = Character.EncodeLoadout()
                    }, NetDeliveryMethod.ReliableOrdered);
                    world.SpawnPlayer(this, Position, Orientation);
                });
            }
            var missionNum = sg.StoryInfo?.MissionNum ?? 0;

            if (game.GameData.Ini.ContentDll.AlwaysMission13)
            {
                missionNum = 14;
            }
            if (missionNum != 0 && (missionNum - 1) < game.GameData.Ini.Missions.Count)
            {
                msnRuntime = new MissionRuntime(game.GameData.Ini.Missions[missionNum - 1], this);
                msnRuntime.Update(TimeSpan.Zero);
            }
        }