Bond697

wondercards

Jan 3rd, 2012
459
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.39 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. namespace RNGPID
  11. {
  12.     public partial class cardMain : Form
  13.     {
  14.  
  15.         private static bool open;
  16.         private readonly char[] accepted = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
  17.  
  18.         public cardMain()
  19.         {
  20.             InitializeComponent();
  21.             open = true;
  22.             hpText.MaxLength = 2;
  23.             atkText.MaxLength = 2;
  24.             defText.MaxLength = 2;
  25.             spaText.MaxLength = 2;
  26.             spdText.MaxLength = 2;
  27.             speText.MaxLength = 2;
  28.             pidText.MaxLength = 10;
  29.         }
  30.  
  31.         public static bool isOpen()
  32.         {
  33.             return open;
  34.         }
  35.  
  36.         private void cardMain_KeyPress(object sender, KeyPressEventArgs e)//stop all keystrokes but the allowed list for tid/sid/pid
  37.         {
  38.             if (char.IsControl(e.KeyChar))
  39.                 return;
  40.             for (int i = 0; i < accepted.Length; i++)
  41.             {
  42.                 if (e.KeyChar == accepted[i])
  43.                 {
  44.                     return;
  45.                 }
  46.             }
  47.             e.Handled = true;
  48.         }
  49.  
  50.         private void cardMain_Load(object sender, EventArgs e)
  51.         {
  52.  
  53.         }
  54.  
  55.         private void cardMain_FormClosed(object sender, FormClosedEventArgs e)
  56.         {
  57.             open = false;
  58.         }
  59.  
  60.         private void cardRun_Click(object sender, EventArgs e)
  61.         {
  62.             byte hp, atk, def, spa, spd, spe;
  63.             uint pid, seed;
  64.             ulong fullseed;
  65.             byte[] ivs;
  66.  
  67.             byte.TryParse(hpText.Text, System.Globalization.NumberStyles.Number, null, out hp);
  68.             byte.TryParse(atkText.Text, System.Globalization.NumberStyles.Number, null, out atk);
  69.             byte.TryParse(defText.Text, System.Globalization.NumberStyles.Number, null, out def);
  70.             byte.TryParse(spaText.Text, System.Globalization.NumberStyles.Number, null, out spa);
  71.             byte.TryParse(spdText.Text, System.Globalization.NumberStyles.Number, null, out spd);
  72.             byte.TryParse(speText.Text, System.Globalization.NumberStyles.Number, null, out spe);
  73.             uint.TryParse(pidText.Text, System.Globalization.NumberStyles.Number, null, out pid);
  74.  
  75.             seed = pid ^ 0x00010000;
  76.  
  77.             for (uint i = 0; i <= 0xFFFFFFFF; i++)
  78.             {
  79.                 fullseed = (ulong)((seed << 32) + i);
  80.  
  81.                 wondercheck card = new wondercheck(fullseed);
  82.  
  83.                 ivs = card.getMysteryIVs();
  84.  
  85.                 if (ivs[5] == hp && ivs[4] == atk && ivs[3] == def && ivs[2] == spa && ivs[1] == spd && ivs[0] == spe)
  86.                 {
  87.                     fullseedText.Text = fullseed.ToString("X16");
  88.                     legalText.Text = "Legal wondercard";
  89.                     break;
  90.                 }
  91.                 else if (i == 0xFFFFFFFF)
  92.                 {
  93.                     fullseedText.Text = "No match";
  94.                     legalText.Text = "Illegal wondercard";
  95.                     break;
  96.                 }
  97.             }
  98.         }
  99.  
  100.     }
  101. }
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108. using System;
  109. using System.Collections.Generic;
  110. using System.Linq;
  111. using System.Text;
  112.  
  113. namespace RNGPID
  114. {
  115.     class wondercheck
  116.     {
  117.         private ulong seed;
  118.  
  119.         //constructor for one ulong argument
  120.         public wondercheck(ulong seed)
  121.         {
  122.             this.seed = seed;
  123.         }
  124.  
  125.         //reverses seed
  126.         public void reverse5()
  127.         {
  128.             seed = ((seed * 0xDEDCEDAE9638806D) + 0x9B1AE6E9A384E6F9) << 64 >> 64;
  129.         }
  130.  
  131.         //shows seed on -frames from seed input
  132.         public ulong previewReverse(ulong startSeed, int frames)
  133.         {
  134.             for (int i = 0; i < frames; i++)
  135.             {
  136.                 startSeed = ((startSeed * 0xDEDCEDAE9638806D) + 0x9B1AE6E9A384E6F9) << 64 >> 64;
  137.             }
  138.             return startSeed;
  139.         }
  140.  
  141.         //MG IVs
  142.         public byte[] getMysteryIVs()
  143.         {
  144.             byte[] ivs = new byte[6];
  145.             for (int i = 0; i < 3; i++)
  146.                 reverse5();
  147.  
  148.             for (int i = 0; i < 6; i++)
  149.             {
  150.                 ivs[i] = (byte)((seed >> 32) >> 27);
  151.                 reverse5();
  152.             }
  153.             return ivs;
  154.         }
  155.     }
  156. }
Advertisement
Comments
  • User was banned
Add Comment
Please, Sign In to add comment