Esempio n. 1
0
        private void btnRemove_Click(object sender, EventArgs e)
        {
            if (selAcct != null)
            {
                if (selAcct.GetFlag(0x0001))
                {
                    --numBans;
                }
                foreach (SlotObject mSlot in selAcct.CharSlots)
                {
                    if (mSlot.Serial != 0xFFFFFFFF)
                    {
                        --numPlayers;
                    }
                }
                --numAccts;

                if (selAcct.Number == (nextAcct - 1))
                {
                    --nextAcct;
                }
                int index = listAccounts.SelectedIndex;
                accountList.Remove(selAcct.Name);
                listAccounts.Items.RemoveAt(index);

                if (index > 0)
                {
                    listAccounts.SelectedIndex = index - 1;
                }
                else if (listAccounts.Items.Count > 0)
                {
                    listAccounts.SelectedIndex = 0;
                }


                UpdateStats();
            }
        }
Esempio n. 2
0
        private void btnBrowse_Click(object sender, EventArgs e)
        {
            fldrAccounts.Description = "Please Select the UOX3 Accounts Directory to Load.";
            if (fldrAccounts.ShowDialog() == DialogResult.OK)
            {
                string dirPath = fldrAccounts.SelectedPath + "\\accounts.adm";
                accountList.Clear();
                listAccounts.Items.Clear();
                if (myForm.Visible)
                {
                    myForm.Clear();
                }
                txtAccountsDir.Text = fldrAccounts.SelectedPath;
                listAccounts.Update();
                txtAccountsDir.Update();

                progressBar.Minimum = 0;
                if (File.Exists(dirPath))
                {
                    progressBar.Value = 1;
                    UOXData.Script.AccountScript mScript = new UOXData.Script.AccountScript(dirPath);
                    progressBar.Maximum = mScript.Sections.Count;
                    foreach (UOXData.Script.AccountSection mSect in mScript.Sections)
                    {
                        ushort acctNum = UOXData.Conversion.ToUInt16(mSect.SectionName);
                        if (acctNum >= nextAcct)
                        {
                            nextAcct = acctNum + 1;
                        }
                        AccountObject toAdd = new AccountObject(acctNum);
                        foreach (UOXData.Script.TagDataPair mPair in mSect.TagDataPairs)
                        {
                            string mTag  = mPair.Tag.ToUpper();
                            string mData = mPair.Data;

                            switch (mTag)
                            {
                            case "NAME":
                                toAdd.Name = mData;
                                break;

                            case "PASS":
                                toAdd.Pass = mData;
                                break;

                            case "FLAGS":
                                toAdd.Flags = UOXData.Conversion.ToUInt16(mData);
                                break;

                            case "PATH":
                                toAdd.Path = mData;
                                break;

                            case "CONTACT":
                                toAdd.Contact = mData;
                                break;

                            case "TIMEBAN":
                                toAdd.TimeBan = UOXData.Conversion.ToUInt32(mData);
                                break;

                            case "CHARACTER-1":
                            case "CHARACTER-2":
                            case "CHARACTER-3":
                            case "CHARACTER-4":
                            case "CHARACTER-5":
                            case "CHARACTER-6":
                                string []  tagSplit = mTag.Split('-');
                                byte       charNum  = (byte)(UOXData.Conversion.ToUInt08(tagSplit[1]) - 1);
                                SlotObject mSlot    = toAdd.CharSlots[charNum];

                                string[] dataSplit = mData.Split(' ');
                                mSlot.Serial = UOXData.Conversion.ToUInt32(dataSplit[0]);
                                if (dataSplit[1].Length > 0)
                                {
                                    mSlot.Name = dataSplit[1].Substring(1, dataSplit[1].Length - 2);
                                }

                                if (mSlot.Serial != 0xFFFFFFFF)
                                {
                                    ++numPlayers;
                                }
                                break;

                            default:
                                break;
                            }
                        }
                        if (toAdd.GetFlag(0x0001))
                        {
                            ++numBans;
                        }
                        accountList.Add(toAdd.Name, toAdd);
                        ++numAccts;
                        listAccounts.Items.Add(toAdd.Name + " (" + mSect.SectionName + ")");
                        progressBar.PerformStep();
                    }

                    LoadOrphans();

                    UpdateStats();

                    if (listAccounts.Items.Count > 0)
                    {
                        listAccounts.SelectedIndex = 0;
                    }
                    else
                    {
                        listAccounts.Items.Add("No Accounts to Display");
                    }
                }
                else
                {
                    MessageBox.Show("Accounts.adm not found, please select a valid directory", "File Not Found");
                }
            }
        }
Esempio n. 3
0
        private void listAccounts_SelectedIndexChanged(object sender, EventArgs e)
        {
            selAcct             = null;
            cbPublic.Checked    = false;
            rdBanned.Checked    = false;
            rdSuspended.Checked = false;
            rdPlayer.Checked    = true;

            if (listAccounts.SelectedIndex == -1)
            {
                txtName.Clear();
                txtPass.Clear();
                txtPath.Clear();
                txtContact.Clear();
                txtTimeban.Clear();
                if (myForm.Visible)
                {
                    myForm.Clear();
                }
                return;
            }

            AccountObject tmpAcct = accountList[listAccounts.SelectedItem.ToString().Split(' ')[0]];

            txtName.Text    = tmpAcct.Name;
            txtPass.Text    = tmpAcct.Pass;
            txtPath.Text    = tmpAcct.Path;
            txtContact.Text = tmpAcct.Contact;
            txtTimeban.Text = tmpAcct.TimeBan.ToString();
            if (tmpAcct.GetFlag(0x0004))
            {
                cbPublic.Checked = true;
            }

            if (tmpAcct.GetFlag(0x8000))
            {
                rdGM.Checked = true;
            }
            else if (tmpAcct.GetFlag(0x4000))
            {
                rdCns.Checked = true;
            }
            else if (tmpAcct.GetFlag(0x2000))
            {
                rdSeer.Checked = true;
            }

            if (tmpAcct.GetFlag(0x0001))
            {
                rdBanned.Checked = true;
            }
            else if (tmpAcct.GetFlag(0x0002))
            {
                rdSuspended.Checked = true;
            }

            if (myForm.Visible)
            {
                myForm.UpdateList(tmpAcct);
            }

            selAcct = tmpAcct;
        }