//Monster Hunter Rise Autosplitter V1.0.0 (1 March 2025) //Supports RTA and Game Splits for main game //Script & Pointers by TheDementedSalad state("MonsterHunterRise"){} startup { Assembly.Load(File.ReadAllBytes("Components/asl-help")).CreateInstance("Basic"); vars.Helper.Settings.CreateFromXml("Components/MHRise.Settings.xml"); //vars.Helper.StartFileLogger("MHRise_Log.txt"); } init { IntPtr QuestManager = vars.Helper.ScanRel(3, "48 8b 05 ?? ?? ?? ?? 41 8b 48"); IntPtr NowLoading = vars.Helper.ScanRel (3, "48 8b 05 ?? ?? ?? ?? 83 78 ?? ?? 0f 86"); IntPtr EventManager = vars.Helper.ScanRel (3, "48 8b 05 ?? ?? ?? ?? 49 8b f8 48 8b 88"); IntPtr FadeManager = vars.Helper.ScanRel (3, "48 8b 05 ?? ?? ?? ?? 4c 8b c9 83 78"); IntPtr SnowSaveService = vars.Helper.ScanRel (3, "48 8b 0d ?? ?? ?? ?? 8b 41 ?? c7 81"); vars.Helper["QuestNo"] = vars.Helper.Make(QuestManager, 0x108, 0x10); vars.Helper["QuestStatus"] = vars.Helper.Make(QuestManager, 0x110); //vars.Helper["LoadStatus"] = vars.Helper.Make(NowLoading, 0x68); vars.Helper["EventActive"] = vars.Helper.Make(EventManager, 0x70, 0x20, 0x18, 0x58); vars.Helper["EventID"] = vars.Helper.MakeString(EventManager, 0x70, 0x20, 0x10, 0x28, 0x14); vars.Helper["EventID"].FailAction = MemoryWatcher.ReadFailAction.SetZeroOrNull; //vars.Helper["FadeStatus"] = vars.Helper.Make(FadeManager, 0x58); //vars.Helper["FadeFrame"] = vars.Helper.Make(FadeManager, 0x5C); vars.Helper["SnowSaveState"] = vars.Helper.Make(SnowSaveService, 0x58); vars.Helper["HunterSlotNo"] = vars.Helper.Make(SnowSaveService, 0x88); vars.completedSplits = new HashSet(); } onStart { vars.completedSplits.Clear(); } start { return current.HunterSlotNo != -1 && old.HunterSlotNo == -1; } update { vars.Helper.Update(); vars.Helper.MapPointers(); //print(current.EventID.ToString()); } gameTime { } split { string setting = ""; if(current.QuestStatus == 3 && old.QuestStatus != 3){ setting = current.QuestNo + "_" + current.QuestStatus; } // Debug. Comment out before release. //if (!string.IsNullOrEmpty(setting)) //vars.Log(setting); if (settings.ContainsKey(setting) && settings[setting] && vars.completedSplits.Add(setting)){ return true; } } isLoading { } reset { return current.HunterSlotNo != -1 && old.HunterSlotNo == -1; } exit { }