Пример #1
0
        private void pidStart_Click(object sender, EventArgs e)
        {
            statusLabel.Text    = "Finding desired PID...";
            progressBar.Visible = true;

            byte hp, atk, def, spa, spd, spe;
            uint seed, pid, ivseed1, ivseed2;

            statusLabel.Text  = "Parsing data...";
            progressBar.Value = 25;

            byte.TryParse(dhpText.Text, System.Globalization.NumberStyles.Number, null, out hp);
            byte.TryParse(datkText.Text, System.Globalization.NumberStyles.Number, null, out atk);
            byte.TryParse(ddefText.Text, System.Globalization.NumberStyles.Number, null, out def);
            byte.TryParse(dspaText.Text, System.Globalization.NumberStyles.Number, null, out spa);
            byte.TryParse(dspdText.Text, System.Globalization.NumberStyles.Number, null, out spd);
            byte.TryParse(dspeText.Text, System.Globalization.NumberStyles.Number, null, out spe);

            ivseed1 = (uint)(hp + (atk << 5) + (def << 10));
            ivseed2 = (uint)(spe + (spa << 5) + (spd << 10));

            statusLabel.Text  = "Configuring output...";
            progressBar.Value = 50;

            pidOutput.BackgroundColor = Color.White;
            pidOutput.Rows.Clear();
            pidOutput.Columns.Clear();
            pidOutput.Columns.Add("Seed", "Seed");
            pidOutput.Columns[0].Width = 70;
            pidOutput.Columns.Add("PID", "PID");
            pidOutput.Columns[1].Width = 70;
            pidOutput.Columns.Add("Nature", "Nature");
            pidOutput.Columns[2].Width = 67;

            statusLabel.Text  = "Running PID search...";
            progressBar.Value = 75;

            for (int i = 0; i < 2; i++)
            {
                for (int j = 0; j < 65536; j++)
                {
                    seed = (uint)(((ivseed1 + (i << 15)) << 16) + j);
                    xdRNG xd = new xdRNG(seed);

                    if ((xd.previewHalfAdvance(seed, 1) & 0x7FFF) == ivseed2)
                    {
                        pid = xd.getPID();
                        pidOutput.Rows.Add(seed.ToString("X"), pid.ToString("X"), xd.getNature(pid).ToString());
                    }
                }
            }

            statusLabel.Text  = "PID search complete.";
            progressBar.Value = 100;
            Thread.Sleep(50); // Flash the full status bar
            progressBar.Visible = false;
        }
Пример #2
0
        private Boolean runSearch(UInt32 ivseed1, UInt32 ivseed2, UInt32 upid, UInt32 lpid)
        {
            xdRNG xd;
            uint  seed;

            for (int i = 0; i < 65536; i++)
            {
                seed = (uint)((ivseed1 << 16) + i);
                xd   = new xdRNG(seed);

                if ((xd.previewHalfAdvance(seed, 1) == ivseed2) &&
                    (xd.previewHalfAdvance(seed, 3) == upid) &&
                    (xd.previewHalfAdvance(seed, 4) == lpid))
                {
                    return(true);
                }
            }

            return(false);
        }
Пример #3
0
        private Boolean runSearch(UInt32 ivseed1, UInt32 ivseed2, UInt32 upid, UInt32 lpid)
        {
            xdRNG xd;
            uint seed;

            for (int i = 0; i < 65536; i++)
            {
                seed = (uint)((ivseed1 << 16) + i);
                xd = new xdRNG(seed);

                if ( (xd.previewHalfAdvance(seed, 1) == ivseed2) &&
                     (xd.previewHalfAdvance(seed, 3) == upid)    &&
                     (xd.previewHalfAdvance(seed, 4) == lpid)     )
                        return true;
            }

            return false;
        }
Пример #4
0
        private void pidStart_Click(object sender, EventArgs e)
        {
            statusLabel.Text = "Finding desired PID...";
            progressBar.Visible = true;

            byte hp, atk, def, spa, spd, spe;
            uint seed, pid, ivseed1, ivseed2;

            statusLabel.Text = "Parsing data...";
            progressBar.Value = 25;

            byte.TryParse(dhpText.Text, System.Globalization.NumberStyles.Number, null, out hp);
            byte.TryParse(datkText.Text, System.Globalization.NumberStyles.Number, null, out atk);
            byte.TryParse(ddefText.Text, System.Globalization.NumberStyles.Number, null, out def);
            byte.TryParse(dspaText.Text, System.Globalization.NumberStyles.Number, null, out spa);
            byte.TryParse(dspdText.Text, System.Globalization.NumberStyles.Number, null, out spd);
            byte.TryParse(dspeText.Text, System.Globalization.NumberStyles.Number, null, out spe);

            ivseed1 = (uint)(hp + (atk << 5) + (def << 10));
            ivseed2 = (uint)(spe + (spa << 5) + (spd << 10));

            statusLabel.Text = "Configuring output...";
            progressBar.Value = 50;

            pidOutput.BackgroundColor = Color.White;
            pidOutput.Rows.Clear();
            pidOutput.Columns.Clear();
            pidOutput.Columns.Add("Seed", "Seed");
            pidOutput.Columns[0].Width = 70;
            pidOutput.Columns.Add("PID", "PID");
            pidOutput.Columns[1].Width = 70;
            pidOutput.Columns.Add("Nature", "Nature");
            pidOutput.Columns[2].Width = 67;

            statusLabel.Text = "Running PID search...";
            progressBar.Value = 75;

            for (int i = 0; i < 2; i++)
                for (int j = 0; j < 65536; j++)
                {
                    seed = (uint)(((ivseed1 + (i << 15)) << 16) + j);
                    xdRNG xd = new xdRNG(seed);

                    if ((xd.previewHalfAdvance(seed, 1) & 0x7FFF) == ivseed2)
                    {
                        pid = xd.getPID();
                        pidOutput.Rows.Add(seed.ToString("X"), pid.ToString("X"), xd.getNature(pid).ToString());
                    }
                }

            statusLabel.Text = "PID search complete.";
            progressBar.Value = 100;
            Thread.Sleep(50); // Flash the full status bar
            progressBar.Visible = false;
        }