コード例 #1
0
ファイル: S_Login.cs プロジェクト: SoliaRdi/TeraCompass
        internal S_LOGIN(LoginServerMessage message)
        {
            if (PacketProcessor.Instance.NeedInit)
            {
                PacketProcessor.Instance.RaiseConnected(BasicTeraData.Instance.Servers.GetServerName(message.ServerId, PacketProcessor.Instance.Server));
                PacketProcessor.Instance.Server = BasicTeraData.Instance.Servers.GetServer(message.ServerId, PacketProcessor.Instance.Server);
                PacketProcessor.Instance.MessageFactory.Region = PacketProcessor.Instance.Server.Region;
                var trackerreset = true;
                if (PacketProcessor.Instance.EntityTracker != null)
                {
                    try
                    {
                        var oldregion = BasicTeraData.Instance.Servers.GetServer(PacketProcessor.Instance.EntityTracker.CompassUser.ServerId).Region;
                        trackerreset = PacketProcessor.Instance.Server.Region != oldregion;
                    }
                    catch
                    {
                        Trace.Write(
                            "New server:" + PacketProcessor.Instance.Server + ";Old server Id:" + PacketProcessor.Instance.EntityTracker.CompassUser?.ServerId);
                        throw;
                    }
                }
                if (trackerreset)
                {
                    PacketProcessor.Instance.EntityTracker    = new EntityTracker();
                    PacketProcessor.Instance.CompassViewModel = new CompassViewModel();
                }
                PacketProcessor.Instance.NeedInit = false;
            }

            PacketProcessor.Instance.EntityTracker.Update(message);
            Services.GameState = GameState.InGame;
        }
コード例 #2
0
 internal User(LoginServerMessage message)
     : base(message.Id)
 {
     Name            = message.Name;
     GuildName       = message.GuildName;
     RaceGenderClass = message.RaceGenderClass;
 }
コード例 #3
0
ファイル: S_Login.cs プロジェクト: ReinForce-II/ShinraMeter
        internal S_LOGIN(LoginServerMessage message)
        {
            if (PacketProcessor.Instance.NeedInit)
            {
                PacketProcessor.Instance.RaiseConnected(BasicTeraData.Instance.Servers.GetServerName(message.ServerId, PacketProcessor.Instance.Server));
                PacketProcessor.Instance.Server = BasicTeraData.Instance.Servers.GetServer(message.ServerId, PacketProcessor.Instance.Server);
                PacketProcessor.Instance.MessageFactory.Region = PacketProcessor.Instance.Server.Region;
                var trackerreset = true;
                if (PacketProcessor.Instance.EntityTracker != null)
                {
                    try
                    {
                        var oldregion = BasicTeraData.Instance.Servers.GetServer(PacketProcessor.Instance.EntityTracker.MeterUser.ServerId).Region;
                        trackerreset = PacketProcessor.Instance.Server.Region != oldregion;
                    }
                    catch
                    {
                        BasicTeraData.LogError(
                            "New server:" + PacketProcessor.Instance.Server + ";Old server Id:" + PacketProcessor.Instance.EntityTracker.MeterUser?.ServerId,
                            false, true);
                        throw;
                    }
                }
                if (trackerreset)
                {
                    PacketProcessor.Instance.TeraData = BasicTeraData.Instance.DataForRegion(PacketProcessor.Instance.Server.Region);
                    BasicTeraData.Instance.HotDotDatabase.Enraged.Name    = LP.Enrage;
                    BasicTeraData.Instance.HotDotDatabase.Slaying.Name    = LP.Slaying;
                    BasicTeraData.Instance.HotDotDatabase.Slaying.Tooltip = LP.SlayingTooltip;
                    PacketProcessor.Instance.EntityTracker = new EntityTracker(BasicTeraData.Instance.MonsterDatabase, PacketProcessor.Instance.UserLogoTracker);
                    PacketProcessor.Instance.PlayerTracker = new PlayerTracker(PacketProcessor.Instance.EntityTracker, BasicTeraData.Instance.Servers);
                    PacketProcessor.Instance.MeterPlayers.Clear();
                    Database.Database.Instance.DeleteAll();
                    SelectFont(PacketProcessor.Instance.Server.Region);
                }
                PacketProcessor.Instance.NeedInit = false;
            }
            PacketProcessor.Instance.AbnormalityStorage.EndAll(message.Time.Ticks);
            PacketProcessor.Instance.AbnormalityTracker = new AbnormalityTracker(PacketProcessor.Instance.EntityTracker,
                                                                                 PacketProcessor.Instance.PlayerTracker, BasicTeraData.Instance.HotDotDatabase, PacketProcessor.Instance.AbnormalityStorage,
                                                                                 DamageTracker.Instance.Update);
            if (PacketProcessor.Instance.MessageFactory.ChatEnabled)
            {
                PacketProcessor.Instance.AbnormalityTracker.AbnormalityAdded   += NotifyProcessor.Instance.AbnormalityNotifierAdded;
                PacketProcessor.Instance.AbnormalityTracker.AbnormalityRemoved += NotifyProcessor.Instance.AbnormalityNotifierRemoved;
            }
            PacketProcessor.Instance.OnGuildIconAction(PacketProcessor.Instance.UserLogoTracker.GetLogo(message.PlayerId));
            PacketProcessor.Instance.EntityTracker.Update(message);
            BasicTeraData.Instance.EventsData.Load(PacketProcessor.Instance.EntityTracker.MeterUser.RaceGenderClass.Class);
            PacketProcessor.Instance.PacketProcessing.Update();
            PacketProcessor.Instance.RaisePause(false);
            var me = PacketProcessor.Instance.PlayerTracker.Me();

            if (!PacketProcessor.Instance.MeterPlayers.Contains(me))
            {
                PacketProcessor.Instance.MeterPlayers.Add(me);
            }

            RichPresence.Instance.Login(me);
        }
コード例 #4
0
 private Entity LoginMe(LoginServerMessage m)
 {
     return(MeterUser = new UserEntity(m)
     {
         GuildName = _userLogoTracker?.GetGuildName(m.PlayerId) ?? ""
     });
 }
コード例 #5
0
 internal UserEntity(LoginServerMessage message)
     : this(message.Id)
 {
     Name            = message.Name;
     GuildName       = message.GuildName;
     RaceGenderClass = message.RaceGenderClass;
     PlayerId        = message.PlayerId;
 }
コード例 #6
0
ファイル: UserEntity.cs プロジェクト: tuita520/Tera
 internal UserEntity(LoginServerMessage message)
     : this(message.Id)
 {
     Name            = message.Name;
     GuildName       = "";
     RaceGenderClass = message.RaceGenderClass;
     PlayerId        = message.PlayerId;
     ServerId        = message.ServerId;
     Level           = message.Level;
     OutOfRange      = false;
 }
コード例 #7
0
        public void Update(LoginServerMessage message)
        {
            var newEntity = LoginMe(message);

            Register(newEntity);
        }
コード例 #8
0
 private Entity LoginMe(LoginServerMessage m)
 {
     MeterUser = new UserEntity(m);
     return(MeterUser);
 }
コード例 #9
0
ファイル: EntityTracker.cs プロジェクト: SoliaRdi/TeraCompass
 private Entity LoginMe(LoginServerMessage m)
 {
     CompassUser = new UserEntity(m);
     return CompassUser;
 }
コード例 #10
0
 public void Update(LoginServerMessage message)
 {
     _dictionary[message.Id] = new User(message);
 }
コード例 #11
0
 public void UpdateParty(LoginServerMessage message)
 {
     _currentParty = new List <Tuple <uint, uint> >();
     PartyChangedEvent?.Invoke();
 }