CallofDutyWaWZombies.asl 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. state("CoDWaW")
  2. {
  3. byte Paused: 0x49C945C; // 1 paused, 0 unpaused, pretty easy to find
  4. int Round : 0x2D03898;
  5. /* So this is the total zombies spawned that I'm using as the identifier if the round has ended as there is no possibility of hitting 0
  6. before the end of the round as zombies will spawn instantly after a nuke. To find this it was pretty simple of getting the zombies down to 3-4
  7. doing a scan and decrease the value after killing each zombie
  8. */
  9. bool Loader : 0x3172284; // Taken from main-game ASL
  10. string50 CurrentLevelName : 0x5592B8; // Taken from main-game ASL
  11. bool RoundEnd: 0x14E73D0; // Just a generic bool check on if the round end screen is shown and or the death screen
  12. }
  13. startup
  14. {
  15. settings.Add("SPR", false, "Split Every Round?");
  16. settings.Add("SSR", true, "Split Specific Rounds");
  17. vars.missions2 = new Dictionary<string,string>
  18. {
  19. {"5","Round 5"},
  20. {"10","Round 10"},
  21. {"15","Round 15"},
  22. {"20","Round 20"},
  23. {"25","Round 25"},
  24. {"30","Round 30"},
  25. {"35","Round 35"},
  26. {"40","Round 40"},
  27. {"45","Round 45"},
  28. {"50","Round 50"},
  29. {"75","Round 75"},
  30. {"100","Round 100"},
  31. };
  32. foreach (var Tag in vars.missions2)
  33. {
  34. settings.Add(Tag.Key, true, Tag.Value, "SSR");
  35. };
  36. }
  37. init
  38. {
  39. vars.doneMaps = new List <string>();
  40. vars.currentCount = 1;
  41. }
  42. update
  43. {
  44. if ((current.Round == 0) && (old.Round != 0) && (old.Round == 1) && (current.Paused != 1))
  45. {
  46. vars.currentCount++;
  47. }
  48. }
  49. start
  50. {
  51. return ((current.Loader) && (current.Round == 1) && (vars.currentCount == 1));
  52. }
  53. split
  54. {
  55. if (!settings["SPR"] && (settings["SSR"]) && (settings[vars.currentCount.ToString()]) && (!vars.doneMaps.Contains(vars.currentCount.ToString())))
  56. {
  57. vars.doneMaps.Add(vars.currentCount.ToString());
  58. return true;
  59. }
  60. }
  61. isLoading
  62. {
  63. return (current.Paused == 1 || current.RoundEnd);
  64. }
  65. reset
  66. {
  67. return (current.CurrentLevelName == "ui");
  68. }
  69. onReset
  70. {
  71. vars.doneMaps.Clear();
  72. vars.currentCount = 1;
  73. }