What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

[Plugin] Arcanum Enchanter 1.1.4

Just watched this plugin skip CritHitDmg 99% even if I set it at 95% :(

In the info it just showed the 0 instead of 99

[Arcanum][UI] ValidAffixes=15 ControlItems=22 Enabled=22
[Arcanum][Commands] Enchanting CritcalHitDamage >= 95
[Arcanum][Enchanting] Found: LifePercent (14)
[Arcanum][Enchanting] Found: RegenerateLifePerSecond (6815)
[Arcanum][Enchanting] Found: PhysicalSkills (20)
[Arcanum][Enchanting] Found: AreaDamage (18)
[Arcanum][Enchanting] Found: Armor (577)
[Arcanum][Enchanting] Found: Cooldown (0)
[Arcanum][Commands] Stopping Enchanting
[Arcanum][Commands] Enchanting CritcalHitDamage >= 95
[Arcanum][Enchanting] Found: Vitality (736)
[Arcanum][Enchanting] Found: CritcalHitDamage (0)
[Arcanum][Enchanting] Found: LifePerHit (16,169)
[Arcanum][Enchanting] Found: RegenerateLifePerSecond (7177)
[Arcanum][Enchanting] Found: BaseDamage (134) Damage
[Arcanum][Enchanting] Found: Armor (591)
[Arcanum][Commands] Stopping Enchanting

It couldn't parse cooldown for you there too, both 0.

What i need is for you to turn on 'Verbose' level debugging and make sure 'Use Debug Logging' is enabled in QuestTools Config; and then run it again to get these 0s to show up and it will give me the strings that it cant understand. I tried to reproduce but it worked for me.

[Arcanum][UI] Worker IsRunning=True ArcanumTabSelected=True
[Arcanum] State = EnchantProperty
[Arcanum][UI] Worker IsRunning=True ArcanumTabSelected=True
[Arcanum] State = SelectNewEnchant
[Arcanum][UI] Worker IsRunning=True ArcanumTabSelected=True
[Arcanum][Enchantment] PropertyChanged LifePercent > ItemProperty LifePercent by Worker: Arcanum.Arcanum.Enchanting (19)
[Arcanum][Enchantment] PropertyChanged LifePercent > Maximum 18 by Worker: Arcanum.Arcanum.Enchanting (19)
[Arcanum][Enchantment] PropertyChanged LifePercent > Minimum 18 by Worker: Arcanum.Arcanum.Enchanting (19)
[Arcanum][Enchantment] PropertyChanged LifePercent > Value 18 by Worker: Arcanum.Arcanum.Enchanting (19)
[Arcanum][Enchantment] PropertyChanged LifePercent > Original +18% Life by Worker: Arcanum.Arcanum.Enchanting (19)
[Arcanum][Enchanting] Existing Enchant: LifePercent (18)
[Arcanum][Enchantment] PropertyChanged CritcalHitDamage > ItemProperty CritcalHitDamage by Worker: Arcanum.Arcanum.Enchanting (19)
[Arcanum][Enchantment] PropertyChanged CritcalHitDamage > Maximum 55 by Worker: Arcanum.Arcanum.Enchanting (19)
[Arcanum][Enchantment] PropertyChanged CritcalHitDamage > Minimum 55 by Worker: Arcanum.Arcanum.Enchanting (19)
[Arcanum][Enchantment] PropertyChanged CritcalHitDamage > Value 55 by Worker: Arcanum.Arcanum.Enchanting (19)
[Arcanum][Enchantment] PropertyChanged CritcalHitDamage > Original Critical Hit Damage Increased by 55.0% by Worker: Arcanum.Arcanum.Enchanting (19)
[Arcanum] Checking for Match CritcalHitDamage 55 against 1 desired enchants
[Arcanum] >> CritcalHitDamage 55 >= CritcalHitDamage 100
[Arcanum] Checking for Upgrade on existing enchant: LifePercent 18
[Arcanum] >> CritcalHitDamage 55 is an upgrade because current enchant (LifePercent ) is not what we're looking for
[Arcanum][Enchanting] Found Upgrade!: CritcalHitDamage (55) , still searching though...

i just put up a new version 1.08 that fixes an issue where if you had been running the bot arcanum would stop working. (It now starts up the threads again when the bot is stopped)
 
Last edited:
I still cant enchant Critical Dmg Increase, still shows as 0 in the log.
 
What i need is for you to turn on 'Verbose' level debugging and make sure 'Use Debug Logging' is enabled in QuestTools Config; and then run it again to get these 0s to show up and it will give me the strings that it cant understand. I tried to reproduce but it worked for me.

I cant fix it unless you do this, if its showing up as 0 the regex is unable to correctly parse the particular string you are seeing, its probably a system language or encoding issue on the string, but i need to know what the 'Original' string is that its trying to extract the number from.
 
how do you stop it from enchanting other things? e.g im trying to get 15% sentry damage, i already 13/14%. but if it sees 15% companion, it will choose that instead.
 
how do you stop it from enchanting other things? e.g im trying to get 15% sentry damage, i already 13/14%. but if it sees 15% companion, it will choose that instead.

There's some situations where you don't care if it substitutes different types, like base damage cold/fire/poison/black.

Added a new download version 1.09 - Skills shouldn't do this anymore
 
If you let it keep going it will still pick 15% sentry when it finds it. I just ignored it when it would pick something else, eventually it will pick what you asked it to for the 15%.
 
thanks. but, zArcanum 1.09.zip
Arcanum.cs source
--------------------------------------
private Arcanum()
{
Name = "Arcanum";
Version = new Version(1, 0, 8);
Author = "xzjv";
Description = "Enchanting";
}
--------------------------------------
 
thanks. but, zArcanum 1.09.zip
Arcanum.cs source
--------------------------------------
private Arcanum()
{
Name = "Arcanum";
Version = new Version(1, 0, 8);
Author = "xzjv";
Description = "Enchanting";
}
--------------------------------------

cheers, should be right version now
 
This plugin is amazing. Just amazing...

Enchanting party!

nWfPLYR.jpg
 
how do i change the 600 sec time out? Trying to get 100 crit on ammy which requires a bit of time lol

never mind found it in the enchanting.cs file
 
Last edited:
Why I can't see any information in the arcanum tab.
The bot has paused.
View attachment 170940

Probably because it scans the text in the game and expects it to be in english. It should still work if you translated all the text its looking for with whatever language you are using.

You'll probably need to update enchanting.cs State property where it says .Contains(something), its reading the button text.

Code:
        public static EnchantingState State
        {
            get
            {
                using(new MemoryHelper())
                {
                    if (!ZetaDia.IsInGame || ZetaDia.Me == null || !ZetaDia.Me.IsValid || !ZetaDia.IsInTown)
                        return EnchantingState.NotEnchanting;


                    if (!EnchantButton.IsValid || !EnchantButton.IsVisible || !EnchantStackPanel.IsValid || !EnchantStackPanel.IsVisible)
                        return EnchantingState.NotEnchanting;


                    if (EnchantButton.Text.ToLowerInvariant().Contains("place an item"))
                        return EnchantingState.NoItemSelected;


                    if (EnchantButton.Text.ToLowerInvariant().Contains("select a property to replace"))
                        return EnchantingState.SelectPropertyToEnchant;


                    if (EnchantButton.Text.ToLowerInvariant().Contains("select property"))
                        return EnchantingState.SelectNewEnchant;


                    if (EnchantButton.Text.ToLowerInvariant().Contains("replace property"))
                    {
                        if (RequiredMaterialsPanel.IsValid && RequiredMaterialsPanel.IsVisible && EnchantButton.IsValid && !EnchantButton.IsEnabled)
                            return EnchantingState.CantAffordToEnchant;


                        return EnchantingState.EnchantProperty;
                    }
                }


                return EnchantingState.NotEnchanting;
            }
        }

and also update the main regex search string

var regex = new Regex(@"(?<value>[\d\.,]+)(?<=[^\.])|(?<1>% Life)|(?<2>Armor)|(?<3>Critical Hit Chance)|(?<4>Critical Hit Damage)|Increases (?<5>.*) Damage|(?<6>Life per Spirit)|(?<7>Dexterity)|(?<8>Strength)|(?<9>Intelligence)|(?<10>Vitality)|(?<11>Area Damage)|(?<12>cooldown)|(?<13>resource costs)|(?<14>Durability)|(?<15>Physical Resist)|(?<16>Cold Resist)|(?<17>Fire Resist)|(?<18>Lightning Resist)|(?<19>Arcane Resist)|(?<20>Poison Resist)|(?<21>Extra Gold)|(?<22>damage per hit)|(?<23>Health Pickup)|(?<24>Chance to Chill)|(?<25>Ignores Durability)|(?<26>Potions Grant)|(?<27>Level Req)|(?<28>Movement)|(?<29>All Elements)|(?<30>Monster kills)|(?<31>Immobilize)|(?<32>Blind)|(?<33>Control Impair)|(?<34>Cold skills)|(?<35>Fire skills)|(?<36>Holy skills)|(?<37>Lightning skills)|(?<38>Poison skills)|(?<39>Physical skills)|(?<40>Wrath Regen)|(?<41>Attack Speed)|(?<42>Life per Hit)|(?<43>damage from elites)|(?<44>Bleed)|(?<45>Hatred Regen)|(?<46>Sockets)|(?<!\]%|%)(?<47> Fire Damage| Arcane Damage| Poison Damage| Lightning Damage| Cold Damage| Holy Damage| Damage)(?!\sper|\.)|(?<48>Life per Wrath)|(?<49>Maximum Wrath)|(?<50>Life per Fury)|(?<51>Spirit Regen)|(?<52>damage against elites)|(?<53>Life after Each)|(?<54>Maximum Mana)|(?<55>Maximum Arcane)|(?<56>damage from melee)|(?<57>damage from ranged)|(?<58>Maximum Spirit)|(?<59>Maximum Fury)|(?<60>Chance to Block)|(?<61>Chance to Fear)|(?<62>Chance to Stun)|(?<63>Chance to Freeze)|(?<64>Chance to Slow)|(?<65>Chance to Knock)|(?<66>Regenerates)|(?<67>Maximum Discipline)|(?<68>Critical Hits grant)|(?<69>Arcane skills)|(?<70>Mana Regeneration)|(?<71> Damage(?!\sper|\.))");
 
Keeps stopping after, 20-40 attempts saying I can't afford to enchant anymore even though there's no possible way I couldn't afford to. Other then that, lovely.
 
Probably because it scans the text in the game and expects it to be in english. It should still work if you translated all the text its looking for with whatever language you are using.

You'll probably need to update enchanting.cs State property where it says .Contains(something), its reading the button text.

Code:
        public static EnchantingState State
        {
            get
            {
                using(new MemoryHelper())
                {
                    if (!ZetaDia.IsInGame || ZetaDia.Me == null || !ZetaDia.Me.IsValid || !ZetaDia.IsInTown)
                        return EnchantingState.NotEnchanting;


                    if (!EnchantButton.IsValid || !EnchantButton.IsVisible || !EnchantStackPanel.IsValid || !EnchantStackPanel.IsVisible)
                        return EnchantingState.NotEnchanting;


                    if (EnchantButton.Text.ToLowerInvariant().Contains("place an item"))
                        return EnchantingState.NoItemSelected;


                    if (EnchantButton.Text.ToLowerInvariant().Contains("select a property to replace"))
                        return EnchantingState.SelectPropertyToEnchant;


                    if (EnchantButton.Text.ToLowerInvariant().Contains("select property"))
                        return EnchantingState.SelectNewEnchant;


                    if (EnchantButton.Text.ToLowerInvariant().Contains("replace property"))
                    {
                        if (RequiredMaterialsPanel.IsValid && RequiredMaterialsPanel.IsVisible && EnchantButton.IsValid && !EnchantButton.IsEnabled)
                            return EnchantingState.CantAffordToEnchant;


                        return EnchantingState.EnchantProperty;
                    }
                }


                return EnchantingState.NotEnchanting;
            }
        }

and also update the main regex search string

var regex = new Regex(@"(?<value>[\d\.,]+)(?<=[^\.])|(?<1>% Life)|(?<2>Armor)|(?<3>Critical Hit Chance)|(?<4>Critical Hit Damage)|Increases (?<5>.*) Damage|(?<6>Life per Spirit)|(?<7>Dexterity)|(?<8>Strength)|(?<9>Intelligence)|(?<10>Vitality)|(?<11>Area Damage)|(?<12>cooldown)|(?<13>resource costs)|(?<14>Durability)|(?<15>Physical Resist)|(?<16>Cold Resist)|(?<17>Fire Resist)|(?<18>Lightning Resist)|(?<19>Arcane Resist)|(?<20>Poison Resist)|(?<21>Extra Gold)|(?<22>damage per hit)|(?<23>Health Pickup)|(?<24>Chance to Chill)|(?<25>Ignores Durability)|(?<26>Potions Grant)|(?<27>Level Req)|(?<28>Movement)|(?<29>All Elements)|(?<30>Monster kills)|(?<31>Immobilize)|(?<32>Blind)|(?<33>Control Impair)|(?<34>Cold skills)|(?<35>Fire skills)|(?<36>Holy skills)|(?<37>Lightning skills)|(?<38>Poison skills)|(?<39>Physical skills)|(?<40>Wrath Regen)|(?<41>Attack Speed)|(?<42>Life per Hit)|(?<43>damage from elites)|(?<44>Bleed)|(?<45>Hatred Regen)|(?<46>Sockets)|(?<!\]%|%)(?<47> Fire Damage| Arcane Damage| Poison Damage| Lightning Damage| Cold Damage| Holy Damage| Damage)(?!\sper|\.)|(?<48>Life per Wrath)|(?<49>Maximum Wrath)|(?<50>Life per Fury)|(?<51>Spirit Regen)|(?<52>damage against elites)|(?<53>Life after Each)|(?<54>Maximum Mana)|(?<55>Maximum Arcane)|(?<56>damage from melee)|(?<57>damage from ranged)|(?<58>Maximum Spirit)|(?<59>Maximum Fury)|(?<60>Chance to Block)|(?<61>Chance to Fear)|(?<62>Chance to Stun)|(?<63>Chance to Freeze)|(?<64>Chance to Slow)|(?<65>Chance to Knock)|(?<66>Regenerates)|(?<67>Maximum Discipline)|(?<68>Critical Hits grant)|(?<69>Arcane skills)|(?<70>Mana Regeneration)|(?<71> Damage(?!\sper|\.))");

Solved!Thanks!
 
Solved!Thanks!

Hey if you've translated for another language post/message me the code and i'll add it into the release. Also, if you turn on verbose logging it will spam a lot of stuff which might help you with copy/pasting the actual text/case used in the game.
 
Anything like this (or any chance of something like this being made) for crafting?
  • Just pick the item you want
  • Even using this same UI just highlight the 6 properties you want (or less if you aren't picky)
  • Use the sliders to pick minimum rolls
  • Pick a number you want to craft each 'batch' (for example, craft 10 then salvage everything bad, then craft 10 again)
  • Tickbox for 'stop crafting once requirements met once' for people extremely specific who want 6 specific properties at high rolls.
  • Not as important, but could also pick the total you want to craft before deactivating (example, after 100 total crafts it gives up.)

For this example, anything that didn't meet the requirements it salvages after every 10 crafts and everything that does gets stashed, after crafting the item 100 times total (10 separate batches) it stops crafting.
 
Last edited:
Have some problems- i put a ring and wonted to get chd but plugin show me max possible stat - 0
Bezymyannyj.1426616992.jpg
 
Last edited:
@xzjv,

Sorry for being blunt but i've been sifting thru the thread, but i havent found a svn/git location for this plugin, would that be a possible to obtain .. if asking nicely ? :)
 
Back
Top