Exemple #1
0
 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());
 }
Exemple #2
0
        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 { }
            }
        }