Beispiel #1
0
        public static void Serialize(Stream stream, AccountCompletionResultView instance)
        {
            int mask = 0;

            using (var bytes = new MemoryStream())
            {
                if (instance.ItemsAttributed != null)
                {
                    DictionaryProxy <int, int> .Serialize(bytes, instance.ItemsAttributed, Int32Proxy.Serialize, Int32Proxy.Serialize);
                }
                else
                {
                    mask |= 1;
                }
                if (instance.NonDuplicateNames != null)
                {
                    ListProxy <string> .Serialize(bytes, instance.NonDuplicateNames, StringProxy.Serialize);
                }
                else
                {
                    mask |= 2;
                }

                Int32Proxy.Serialize(bytes, instance.Result);
                Int32Proxy.Serialize(stream, ~mask);
                bytes.WriteTo(stream);
            }
        }
Beispiel #2
0
        // Token: 0x060010D5 RID: 4309 RVA: 0x00017DB0 File Offset: 0x00015FB0
        public static void Serialize(Stream stream, AccountCompletionResultView instance)
        {
            int num = 0;

            using (MemoryStream memoryStream = new MemoryStream())
            {
                if (instance.ItemsAttributed != null)
                {
                    DictionaryProxy <int, int> .Serialize(memoryStream, instance.ItemsAttributed, new DictionaryProxy <int, int> .Serializer <int>(Int32Proxy.Serialize), new DictionaryProxy <int, int> .Serializer <int>(Int32Proxy.Serialize));
                }
                else
                {
                    num |= 1;
                }
                if (instance.NonDuplicateNames != null)
                {
                    ListProxy <string> .Serialize(memoryStream, instance.NonDuplicateNames, new ListProxy <string> .Serializer <string>(StringProxy.Serialize));
                }
                else
                {
                    num |= 2;
                }
                Int32Proxy.Serialize(memoryStream, instance.Result);
                Int32Proxy.Serialize(stream, ~num);
                memoryStream.WriteTo(stream);
            }
        }
Beispiel #3
0
        // Token: 0x060010D6 RID: 4310 RVA: 0x00017E68 File Offset: 0x00016068
        public static AccountCompletionResultView Deserialize(Stream bytes)
        {
            int num = Int32Proxy.Deserialize(bytes);
            AccountCompletionResultView accountCompletionResultView = new AccountCompletionResultView();

            if ((num & 1) != 0)
            {
                accountCompletionResultView.ItemsAttributed = DictionaryProxy <int, int> .Deserialize(bytes, new DictionaryProxy <int, int> .Deserializer <int>(Int32Proxy.Deserialize), new DictionaryProxy <int, int> .Deserializer <int>(Int32Proxy.Deserialize));
            }
            if ((num & 2) != 0)
            {
                accountCompletionResultView.NonDuplicateNames = ListProxy <string> .Deserialize(bytes, new ListProxy <string> .Deserializer <string>(StringProxy.Deserialize));
            }
            accountCompletionResultView.Result = Int32Proxy.Deserialize(bytes);
            return(accountCompletionResultView);
        }
Beispiel #4
0
        public static AccountCompletionResultView Deserialize(Stream bytes)
        {
            int mask = Int32Proxy.Deserialize(bytes);
            var view = new AccountCompletionResultView();

            if ((mask & 1) != 0)
            {
                view.ItemsAttributed = DictionaryProxy <int, int> .Deserialize(bytes, Int32Proxy.Deserialize, Int32Proxy.Deserialize);
            }
            if ((mask & 2) != 0)
            {
                view.NonDuplicateNames = ListProxy <string> .Deserialize(bytes, StringProxy.Deserialize);
            }

            view.Result = Int32Proxy.Deserialize(bytes);
            return(view);
        }
Beispiel #5
0
    // Token: 0x06000CA8 RID: 3240 RVA: 0x00055ADC File Offset: 0x00053CDC
    private void CompleteAccountCallback(AccountCompletionResultView result, string name)
    {
        this._selectedIndex      = -1;
        this._waitingForWsReturn = false;
        switch (result.Result)
        {
        case 1:
        {
            this.Hide();
            List <IUnityItem> list = new List <IUnityItem>();
            foreach (int itemId in result.ItemsAttributed.Keys)
            {
                list.Add(Singleton <ItemManager> .Instance.GetItemInShop(itemId));
            }
            PlayerDataManager.Name = name;
            AutoMonoBehaviour <CommConnectionManager> .Instance.Client.Operations.SendAuthenticationRequest(PlayerDataManager.AuthToken, PlayerDataManager.MagicHash);

            base.StartCoroutine(this.StartPreparingNewPlayersLoadout(list));
            break;
        }

        case 2:
            this.GetNonDuplicatedNamesCallback(result.NonDuplicateNames);
            break;

        case 3:
            this.Hide();
            Singleton <SceneLoader> .Instance.LoadLevel("Menu", null);

            break;

        case 4:
            this._feedbackMessageColor = Color.red;
            this._errorMessage         = LocalizedStrings.NameInvalidCharsMsg;
            break;

        case 5:
            this._feedbackMessageColor = Color.red;
            this._errorMessage         = LocalizedStrings.YourAccountHasBeenBanned;
            break;
        }
    }
        public override AccountCompletionResultView OnCompleteAccount(int cmid, string name, ChannelType channelType, string locale, string machineId)
        {
            var member = Context.Users.GetMember(cmid);

            if (member == null)
            {
                Log.Error("An unidentified CMID was passed.");
                return(null);
            }

            var itemsAttributed = new Dictionary <int, int>();

            for (int i = 0; i < member.MemberItems.Count; i++) // The client seem to ignore the value of the dictionary.
            {
                itemsAttributed.Add(member.MemberItems[i], 0);
            }

            member.PublicProfile.Name = name;
            // Set email status to complete so we don't ask for the player name again.
            member.PublicProfile.EmailAddressStatus = EmailAddressStatus.Verified;
            // Save the profile since we modified it.
            Context.Users.Db.Profiles.Save(member.PublicProfile);

            /*
             * result:
             * 1 -> Success
             * 2 -> GetNonDuplicateNames?
             * 3 -> Load menu for show?
             * 4 -> Invalid characters in name
             * 5 -> Account banned
             */
            var view = new AccountCompletionResultView(
                1,
                itemsAttributed,
                null
                );

            return(view);
        }