Advertisement
namofure

トバリスロット乱数調整

Nov 19th, 2024 (edited)
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.90 KB | None | 0 0
  1. using System;
  2. using System.Collections.Specialized;
  3. using System.ComponentModel.Design;
  4. using System.IO;
  5. using System.Reflection.Metadata;
  6.  
  7. class LCG
  8. {
  9. static void Main()
  10. {
  11. Console.Write("DPt Veilstone Slot RNG (Setting 0x5)\n");
  12. Console.Write("Enter Initial SEED : 0x"); // 初期SEED入力
  13. if (uint.TryParse(Console.ReadLine(), System.Globalization.NumberStyles.HexNumber, null, out uint Seed))
  14. {
  15. Console.Write("Enter SEED Count(10^3):"); //SeedCount入力(10^3)
  16. if (int.TryParse(Console.ReadLine(), out int count) && count > 0)
  17. {
  18. count = count * 1000;
  19.  
  20. string outputPath = $"DPt Slot.txt";
  21. using (StreamWriter writer = new(outputPath))
  22.  
  23. for (int i = 0; i < count; i++,Seed = NextSeed(Seed))
  24. {
  25. uint mod = (Seed >> 16) % 0x64;
  26.  
  27. if (mod <= 34) //ボール抽選
  28. {
  29. uint ASeed = Seed;
  30. ASeed = NextSeed(ASeed);
  31. uint Amod = (ASeed >> 16) % 0x64;
  32.  
  33. uint BSeed = ASeed;
  34. uint Bmod, Cmod;
  35.  
  36. if (Amod <= 3) //中身抽選
  37. {
  38.  
  39. BSeed = NextSeed(BSeed);
  40. BSeed = NextSeed(BSeed);
  41. Bmod = (BSeed >> 16) % 0x64;
  42. uint CSeed = NextSeed(BSeed);
  43. Cmod = (CSeed >> 16) % 0x64;
  44.  
  45. if (0 <= Bmod && Bmod <= 4 || 70 <= Bmod) //ABCテーブル抽選
  46. {
  47. if (Cmod <=4) //Shiny抽選
  48. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)モンスターボール<Shiny>"); }
  49. else if (5 <= Bmod && Bmod <= 24)
  50. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)モンスターボール<Normal>"); }
  51. else if (25 <= Bmod)
  52. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)モンスターボール<Ditto>"); }
  53. }
  54. else if (5 <= Bmod && Bmod <= 24 || 60 <= Bmod && Bmod <= 69)
  55. {
  56. if (Cmod <= 19)
  57. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)モンスターボール<Shiny>"); }
  58. else if (20 <= Bmod && Bmod <= 79)
  59. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)モンスターボール<Normal>"); }
  60. else if (80 <= Bmod)
  61. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)モンスターボール<Ditto>"); }
  62. }
  63. else if (25 <= Bmod && Bmod <= 59)
  64. {
  65. if (Cmod <= 74)
  66. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)モンスターボール<Shiny>"); }
  67. else if (75 <= Bmod && Bmod <= 94)
  68. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)モンスターボール<Normal>"); }
  69. else if (95 <= Bmod)
  70. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)モンスターボール<Ditto>"); }
  71. }
  72. }
  73. else if (Amod == 4)
  74. {
  75. writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} モンスターボール");
  76. }
  77. else if (5 <= Amod && Amod <= 10)
  78. {
  79.  
  80. BSeed = NextSeed(BSeed);
  81. BSeed = NextSeed(BSeed);
  82. Bmod = (BSeed >> 16) % 0x64;
  83. uint CSeed = NextSeed(BSeed);
  84. Cmod = (CSeed >> 16) % 0x64;
  85.  
  86. if (0 <= Bmod && Bmod <= 4 || 70 <= Bmod)
  87. {
  88. if (Cmod <= 4)
  89. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)サファリボール<Shiny>"); }
  90. else if (5 <= Bmod && Bmod <= 24)
  91. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)サファリボール<Normal>"); }
  92. else if (25 <= Bmod)
  93. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)サファリボール<Ditto>"); }
  94. }
  95. else if (5 <= Bmod && Bmod <= 24 || 60 <= Bmod && Bmod <= 69)
  96. {
  97. if (Cmod <= 19)
  98. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)サファリボール<Shiny>"); }
  99. else if (20 <= Bmod && Bmod <= 79)
  100. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)サファリボール<Normal>"); }
  101. else if (80 <= Bmod)
  102. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)サファリボール<Ditto>"); }
  103. }
  104. else if (25 <= Bmod && Bmod <= 59)
  105. {
  106. if (Cmod <= 74)
  107. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)サファリボール<Shiny>"); }
  108. else if (75 <= Bmod && Bmod <= 94)
  109. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)サファリボール<Normal>"); }
  110. else if (95 <= Bmod)
  111. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)サファリボール<Ditto>"); }
  112. }
  113. }
  114. else if (11 <= Amod && Amod <= 19)
  115. {
  116. writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} サファリボール");
  117. }
  118. else if (20 <= Amod && Amod <= 22)
  119. {
  120.  
  121. BSeed = NextSeed(BSeed);
  122. BSeed = NextSeed(BSeed);
  123. Bmod = (BSeed >> 16) % 0x64;
  124. uint CSeed = NextSeed(BSeed);
  125. Cmod = (CSeed >> 16) % 0x64;
  126.  
  127. if (0 <= Bmod && Bmod <= 4 || 70 <= Bmod)
  128. {
  129. if (Cmod <= 4)
  130. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)ハイパーボール<Shiny>"); }
  131. else if (5 <= Bmod && Bmod <= 24)
  132. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)ハイパーボール<Normal>"); }
  133. else if (25 <= Bmod)
  134. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)ハイパーボール<Ditto>"); }
  135. }
  136. else if (5 <= Bmod && Bmod <= 24 || 60 <= Bmod && Bmod <= 69)
  137. {
  138. if (Cmod <= 19)
  139. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)ハイパーボール<Shiny>"); }
  140. else if (20 <= Bmod && Bmod <= 79)
  141. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)ハイパーボール<Normal>"); }
  142. else if (80 <= Bmod)
  143. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)ハイパーボール<Ditto>"); }
  144. }
  145. else if (25 <= Bmod && Bmod <= 59)
  146. {
  147. if (Cmod <= 74)
  148. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)ハイパーボール<Shiny>"); }
  149. else if (75 <= Bmod && Bmod <= 94)
  150. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)ハイパーボール<Normal>"); }
  151. else if (95 <= Bmod)
  152. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)ハイパーボール<Ditto>"); }
  153. }
  154. }
  155. else if (23 <= Amod && Amod <= 59)
  156. {
  157. writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} ハイパーボール");
  158. }
  159. else if (60 <= Amod && Amod <= 62)
  160. {
  161.  
  162. BSeed = NextSeed(BSeed);
  163. BSeed = NextSeed(BSeed);
  164. Bmod = (BSeed >> 16) % 0x64;
  165. uint CSeed = NextSeed(BSeed);
  166. Cmod = (CSeed >> 16) % 0x64;
  167.  
  168. if (0 <= Bmod && Bmod <= 4 || 70 <= Bmod)
  169. {
  170. if (Cmod <= 4)
  171. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)スーパーボール<Shiny>"); }
  172. else if (5 <= Bmod && Bmod <= 24)
  173. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)スーパーボール<Normal>"); }
  174. else if (25 <= Bmod)
  175. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)スーパーボール<Ditto>"); }
  176. }
  177. else if (5 <= Bmod && Bmod <= 24 || 60 <= Bmod && Bmod <= 69)
  178. {
  179. if (Cmod <= 19)
  180. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)スーパーボール<Shiny>"); }
  181. else if (20 <= Bmod && Bmod <= 79)
  182. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)スーパーボール<Normal>"); }
  183. else if (80 <= Bmod)
  184. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)スーパーボール<Ditto>"); }
  185. }
  186. else if (25 <= Bmod && Bmod <= 59)
  187. {
  188. if (Cmod <= 74)
  189. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)スーパーボール<Shiny>"); }
  190. else if (75 <= Bmod && Bmod <= 94)
  191. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)スーパーボール<Normal>"); }
  192. else if (95 <= Bmod)
  193. { writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} (P)スーパーボール<Ditto>"); }
  194. }
  195. }
  196. else if (63 <= Amod && Amod <= 99)
  197. {
  198. writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod} スーパーボール");
  199. }
  200. }
  201. else
  202. {
  203. writer.WriteLine($"Seed = 0x{Seed:X8}, mod = {mod}");
  204. }
  205. }
  206. Console.WriteLine($"Generated {count} seeds. Output saved to {outputPath}");
  207. }else { Console.WriteLine("Invalid Input for SEED Count."); }
  208. }else { Console.WriteLine("Invalid Input for Initial SEED."); }
  209. }
  210. static uint NextSeed(uint Seed)
  211. {
  212. uint a = 1103515245;
  213. uint b = 24691;
  214. return a * Seed + b;
  215.  
  216. }
  217. }
  218.  
  219.  
  220.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement