コード例 #1
0
ファイル: PersonSelectionEdit.cs プロジェクト: lmumar/FreeSO
        /// <summary>
        /// Received status of character creation from LoginServer.
        /// </summary>
        private void Controller_OnCharacterCreationStatus(CharacterCreationStatus CCStatus)
        {
            UIAlertOptions Options = new UIAlertOptions();

            switch (CCStatus)
            {
            case CharacterCreationStatus.Success:
                GameFacade.Controller.ShowCityTransition(SelectedCity, true);
                break;

            case CharacterCreationStatus.NameAlreadyExisted:
                Options.Message = "Character's name already existed!";
                Options.Title   = "Name Already Existed";
                UI.Framework.UIScreen.ShowAlert(Options, true);
                break;

            case CharacterCreationStatus.NameTooLong:
                Options.Message = "Character's name was too long!";
                Options.Title   = "Name Too Long";
                UI.Framework.UIScreen.ShowAlert(Options, true);
                break;

            case CharacterCreationStatus.ExceededCharacterLimit:
                Options.Message = "You've already created three characters!";
                Options.Title   = "Too Many Avatars";
                UI.Framework.UIScreen.ShowAlert(Options, true);
                break;
            }
        }
コード例 #2
0
        /// <summary>
        /// Received a status update from the CityServer.
        /// Occurs after sending CharacterCreation packet.
        /// </summary>
        /// <param name="e">Status of character creation.</param>
        private void Controller_OnCharacterCreationStatus(CharacterCreationStatus CCStatus)
        {
            switch (CCStatus)
            {
            case CharacterCreationStatus.Success:
                if (m_Dead)
                {
                    return;
                }
                ProgressEvent Progress = new ProgressEvent(EventCodes.PROGRESS_UPDATE);
                Progress.Done  = 1;
                Progress.Total = 3;

                //Lord have mercy on the soul who figures out why commenting out the below line
                //causes the city to show...
                //OnTransitionProgress(Progress);
                GameFacade.Controller.ShowCity();
                m_Dead = true;
                break;

            case CharacterCreationStatus.GeneralError:
                Controller_OnNetworkError(new SocketException());
                break;
            }
        }
コード例 #3
0
 public void _OnCharacterCreationStatus(NetworkClient Client, ProcessedPacket Packet)
 {
     if (OnCharacterCreationStatus != null)
     {
         CharacterCreationStatus CCStatus = UIPacketHandlers.OnCharacterCreationStatus(Client, Packet);
         OnCharacterCreationStatus(CCStatus);
     }
     else
     {
         //TODO: Error handling...
     }
 }
コード例 #4
0
        /// <summary>
        /// Progressing to city server (received from login server).
        /// </summary>
        public void _OnCharacterCreationProgress(NetworkClient Client, ProcessedPacket Packet)
        {
            Log.LogThis("Received OnCharacterCreationProgress!", eloglevel.info);

            if (OnCharacterCreationProgress != null)
            {
                CharacterCreationStatus CCStatus = UIPacketHandlers.OnCharacterCreationProgress(Client, Packet);
                OnCharacterCreationProgress(CCStatus);
            }
            else
            {
                //TODO: Error handling...
            }
        }
コード例 #5
0
        /// <summary>
        /// Received CharacterCreation packet from LoginServer.
        /// </summary>
        /// <returns>The result of the character creation.</returns>
        public static CharacterCreationStatus OnCharacterCreationProgress(NetworkClient Client, ProcessedPacket Packet)
        {
            CharacterCreationStatus CCStatus = (CharacterCreationStatus)Packet.ReadByte();

            if (CCStatus == CharacterCreationStatus.Success)
            {
                Guid CharacterGUID = new Guid();

                CharacterGUID           = new Guid(Packet.ReadPascalString());
                PlayerAccount.CityToken = Packet.ReadPascalString();
                PlayerAccount.CurrentlyActiveSim.AssignGUID(CharacterGUID.ToString());
            }

            return(CCStatus);
        }
コード例 #6
0
ファイル: UIPacketHandlers.cs プロジェクト: pepster98/FreeSO
        /// <summary>
        /// Received CharacterCreation packet from LoginServer.
        /// </summary>
        /// <returns>The result of the character creation.</returns>
        public static CharacterCreationStatus OnCharacterCreationProgress(NetworkClient Client, ProcessedPacket Packet)
        {
            CharacterCreationStatus CCStatus = (CharacterCreationStatus)Packet.ReadByte();

            if (CCStatus == CharacterCreationStatus.Success)
            {
                Guid CharacterGUID = Guid.NewGuid();

                CharacterGUID           = new Guid(Packet.ReadString());
                PlayerAccount.CityToken = Packet.ReadString();
                PlayerAccount.CurrentlyActiveSim.AssignGUID(CharacterGUID.ToString());

                //This previously happened when clicking the accept button in CAS, causing
                //all chars to be cached even if the new char wasn't successfully created.
                lock (NetworkFacade.Avatars)
                    Cache.CacheSims(NetworkFacade.Avatars);
            }

            return(CCStatus);
        }
コード例 #7
0
ファイル: UIPacketHandlers.cs プロジェクト: pepster98/FreeSO
        /// <summary>
        /// Received CharacterCreation packet from CityServer.
        /// </summary>
        /// <returns>The result of the character creation.</returns>
        public static CharacterCreationStatus OnCharacterCreationStatus(NetworkClient Client, ProcessedPacket Packet)
        {
            LogThis.Log.LogThis("Received OnCharacterCreationStatus!", LogThis.eloglevel.info);

            CharacterCreationStatus CCStatus = (CharacterCreationStatus)Packet.ReadByte();

            ushort NumHouses = Packet.ReadUInt16();

            LotTileEntry[] TileEntries = new LotTileEntry[NumHouses];

            if (NumHouses > 0)
            {
                for (int i = 0; i < NumHouses; i++)
                {
                    TileEntries[i] = new LotTileEntry(Packet.ReadInt32(), Packet.ReadString(), (short)Packet.ReadUInt16(),
                                                      (short)Packet.ReadUInt16(), (byte)Packet.ReadByte(), Packet.ReadInt32());
                }
            }

            lock (GameFacade.CDataRetriever.LotTileData)
                GameFacade.CDataRetriever.LotTileData = TileEntries;

            return(CCStatus);
        }
コード例 #8
0
        public void _OnCharacterCreationStatus(NetworkClient Client, ProcessedPacket packet)
        {
            CharacterCreationStatus CCStatus = UIPacketHandlers.OnCharacterCreationStatus(Client, packet);

            OnCharacterCreationStatus(CCStatus);
        }
コード例 #9
0
        /// <summary>
        /// Received CharacterCreation packet from CityServer.
        /// </summary>
        /// <returns>The result of the character creation.</returns>
        public static CharacterCreationStatus OnCharacterCreationStatus(NetworkClient Client, ProcessedPacket Packet)
        {
            CharacterCreationStatus CCStatus = (CharacterCreationStatus)Packet.ReadByte();

            return(CCStatus);
        }
コード例 #10
0
        /// <summary>
        /// Received a status update from the CityServer.
        /// Occurs after sending CharacterCreation packet.
        /// </summary>
        /// <param name="e">Status of character creation.</param>
        private void Controller_OnCharacterCreationStatus(CharacterCreationStatus CCStatus)
        {
            switch (CCStatus)
            {
                case CharacterCreationStatus.Success:
                    if (m_Dead) return;
                    ProgressEvent Progress = new ProgressEvent(EventCodes.PROGRESS_UPDATE);
                    Progress.Done = 1;
                    Progress.Total = 3;

                    //Lord have mercy on the soul who figures out why commenting out the below line
                    //causes the city to show...
                    //OnTransitionProgress(Progress);
                    GameFacade.Controller.ShowCity();
                    m_Dead = true;
                    break;
                case CharacterCreationStatus.GeneralError:
                    Controller_OnNetworkError(new SocketException());
                    break;
            }
        }
コード例 #11
0
ファイル: PersonSelectionEdit.cs プロジェクト: Daribon/FreeSO
        /// <summary>
        /// Received status of character creation from LoginServer.
        /// </summary>
        private void Controller_OnCharacterCreationStatus(CharacterCreationStatus CCStatus)
        {
            UIAlertOptions Options = new UIAlertOptions();

            switch (CCStatus)
            {
                case CharacterCreationStatus.Success:
                    GameFacade.Controller.ShowCityTransition(SelectedCity, true);
                    break;
                case CharacterCreationStatus.NameAlreadyExisted:
                    Options.Message = "Character's name already existed!";
                    Options.Title = "Name Already Existed";
                    UI.Framework.UIScreen.ShowAlert(Options, true);
                    break;
                case CharacterCreationStatus.NameTooLong:
                    Options.Message = "Character's name was too long!";
                    Options.Title = "Name Too Long";
                    UI.Framework.UIScreen.ShowAlert(Options, true);
                    break;
                case CharacterCreationStatus.ExceededCharacterLimit:
                    Options.Message = "You've already created three characters!";
                    Options.Title = "Too Many Avatars";
                    UI.Framework.UIScreen.ShowAlert(Options, true);
                    break;
            }
        }
コード例 #12
0
 /// <summary>
 /// Received a status update from the CityServer.
 /// Occurs after sending CharacterCreation packet.
 /// </summary>
 /// <param name="e">Status of character creation.</param>
 private void Controller_OnCharacterCreationStatus(CharacterCreationStatus e)
 {
     switch (e)
     {
         case CharacterCreationStatus.Success:
             OnTransitionProgress(new TSOClient.Network.Events.ProgressEvent(EventCodes.PROGRESS_UPDATE));
             GameFacade.Controller.ShowCity();
             break;
         case CharacterCreationStatus.GeneralError:
             Controller_OnNetworkError(new SocketException());
             break;
     }
 }
コード例 #13
0
 public void _OnCharacterCreationStatus(CharacterCreationStatus CCStatus)
 {
     OnCharacterCreationStatus(CCStatus);
 }
コード例 #14
0
        /// <summary>
        /// Received status of character creation from LoginServer.
        /// </summary>
        private void Controller_OnCharacterCreationStatus(CharacterCreationStatus e)
        {
            UIAlertOptions Options = new UIAlertOptions();

            switch (e)
            {
                case CharacterCreationStatus.Success:
                    GameFacade.Controller.ShowCityTransition(SelectedCity, true);
                    break;
                case CharacterCreationStatus.NameAlreadyExisted:
                    Options.Message = "Character's name already existed!";
                    Options.Title = "Name Already Existed";
                    Options.Buttons = UIAlertButtons.OK;
                    UI.Framework.UIScreen.ShowAlert(Options, true);
                    break;
                case CharacterCreationStatus.ExceededCharacterLimit:
                    Options.Message = "Character's name exceeded 24 characters!";
                    Options.Title = "Name Too Long";
                    Options.Buttons = UIAlertButtons.OK;
                    UI.Framework.UIScreen.ShowAlert(Options, true);
                    break;
            }
        }
コード例 #15
0
 public CreateCharacterResponseParameters(CharacterCreationStatus characterCreationStatus = CharacterCreationStatus.Failed)
 {
     Status = characterCreationStatus;
 }
コード例 #16
0
 public void Deserialize(BinaryReader reader)
 {
     Status = (CharacterCreationStatus)reader.ReadByte();
 }