public void Dispose() { Armor.Dispose(); MainHand.Dispose(); OffHand.Dispose(); Ring.Dispose(); Ring2.Dispose(); Amulet.Dispose(); Helm.Dispose(); Gloves.Dispose(); Boots.Dispose(); Belt.Dispose(); Flasks.ForEach(vm => vm.Dispose()); TreeJewels.ForEach(vm => vm.Dispose()); ItemJewels.Values.Flatten().ForEach(vm => vm.Dispose()); }
private void getPlayerFlasks() { while(true) { try { if (Mem.CheckProcess()) { Mem.StartProcess(); int flaskBase = Mem.ReadInt(Mem.ImageAddress() + 0x008F6A88); for (int x = 0; x < 5; x++) { _flasks[x] = new Flasks(); int FlaskInvBase = Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(flaskBase + 0x34) + 0x788) + 0x204) + 0x30) + (x * 4)); int Flask_Charge_Ptr = Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x1C) + 0x4) + 0x4) + 0xC); // Flask Name / Type / Quality _flasks[x].MetaData = Mem.ReadStringUnicode(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x0) + 0x8), 70); _flasks[x].BaseItemType = Mem.ReadStringUnicode(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x0) + 0x8) + 0x10), 70); _flasks[x].Quality = Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x4) + 0xC); // Flask Stats _flasks[x].LocalStat1Type = Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x18) + 0x20) + 0xC) + 0x0); _flasks[x].LocalStat1Value = Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x18) + 0x20) + 0xC) + 0x4); _flasks[x].LocalStat2Type = Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x18) + 0x20) + 0xC) + 0x8); _flasks[x].LocalStat2Value = Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x18) + 0x20) + 0xC) + 0xC); if (_flasks[x].LocalStat2Type != 13 && _flasks[x].LocalStat2Type != 15 && _flasks[x].LocalStat2Type != 18) { _flasks[x].LocalStat2Type = 0; _flasks[x].LocalStat2Value = 0; } // Flask Prefixes / Suffixes _flasks[x].Prefix = Mem.ReadStringUnicode(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x1C) + 0x4) + 0x4) + 0x10) + 0x7c) + 0x2c) + 0x30), 74); _flasks[x].PrefixEffect = Mem.ReadStringUnicode(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x1C) + 0x4) + 0x4) + 0x10) + 0x7c) + 0x2c) + 0x38), 74); if (_flasks[x].Prefix == null || _flasks[x].Prefix == "") { _flasks[x].Prefix = "NULL"; _flasks[x].PrefixEffect = "NULL"; } _flasks[x].Suffix = Mem.ReadStringUnicode(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x1C) + 0x4) + 0x4) + 0x10) + 0x7c) + 0x14) + 0x30), 74); _flasks[x].SuffixEffect = Mem.ReadStringUnicode(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(Mem.ReadInt(FlaskInvBase) + 0x4) + 0x1C) + 0x4) + 0x4) + 0x10) + 0x7c) + 0x14) + 0x38), 74); // Flask Charges _flasks[x].TotalCharges = Mem.ReadInt(Mem.ReadInt(Flask_Charge_Ptr + 0x8) + 0x8); _flasks[x].CurrentCharges = Mem.ReadInt(Flask_Charge_Ptr + 0xC); _flasks[x].ChargesPerUse = Mem.ReadInt(Mem.ReadInt(Flask_Charge_Ptr + 0x8) + 0xc); if (_flasks[x].SuffixEffect == "FlaskRemovesShock") { _flasks[x].RemovesShock = true; } else { _flasks[x].RemovesShock = false; } if (_flasks[x].SuffixEffect == "FlaskDispellBurning") { _flasks[x].RemovesBurning = true; } else { _flasks[x].RemovesBurning = false; } if (_flasks[x].SuffixEffect == "FlaskDispellChill") { _flasks[x].RemovesFreezing = true; } else { _flasks[x].RemovesFreezing = false; } if (_flasks[x].SuffixEffect == "FlaskRemovesBleeding") { _flasks[x].RemovesBleeding = true; } else { _flasks[x].RemovesBleeding = false; } if (_flasks[x].PrefixEffect == "FlaskRecoverySpeed") { _flasks[x].InstantHealing = true; } else { _flasks[x].InstantHealing = false; } } } if (runDebugCheckBox.Checked) { displayPlayerFlasksDebug(); } } catch { } } }