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

[Plugin] Escape Desecrator \ Arcane

I'm lazy and haven't read the thread but 0.4 still prevents running to health globes. I haven't checked it but this should work:
its hard to do this plugin perfectly work with belphegor. I think about include my code to belphe, or make my own route, or find solution to this. (atm when plugin go away from affixe succesfyle, belphe route can easy move back to affixe, cus mob that he want attack stay here, etc)
 
All in all very happy with the plugin! Tnx a lot Outside
Thank. Its still alpha-beta, but i`l try do my best, till its work perfectly in many situations, or if devs team make own cool AI, that avoid affixes :p
 
I'll try to give you some input on how the bot should move the character specially on ranged mobs who don't move. The character should run away from the mob just like it does when mobs have shield, that is to say far enough to pull the mob towards the direction you run and then move back towards the mob to start combat again. This way even if there are lasers around you will not stand on them even if they are many, so the bot acts more like a real player who runs away from the area, then moves back and fights again, runs away again... simply called kiting.
 
its hard to do this plugin perfectly work with belphegor. I think about include my code to belphe, or make my own route, or find solution to this. (atm when plugin go away from affixe succesfyle, belphe route can easy move back to affixe, cus mob that he want attack stay here, etc)


including your code into belphe would be the best but until then the code segment I posted seems to fix for the health globe issue :S

I'm testing it with vault and no deaths so far, I'll test running right now.

edit: fail, movement command doesn't work, I'll get it in a sec

edit edit: i got it working but noticed an access violation is causing globes to not register, must be when reading health globes or something T_T

Code:
private static DiaObject HealthGlobes
                {
                    get
                    {
                        return ZetaDia.Actors.GetActorsOfType<DiaItem>().Where(i => i.ActorSNO == 4267 && 
           i.Distance <= 34f).OrderBy(i => i.Distance).FirstOrDefault();
                    }
                }
            
        public void OnPulse()
                {
                    if (ZetaDia.IsInGame && ZetaDia.Me.IsValid)
                    {
                        if (ZetaDia.Me.HitpointsCurrentPct < 0.65 && 
                            HealthGlobes != null)
                        {
                            
                            if (Zeta.CommonBot.PowerManager.CanCast(SNOPower.DemonHunter_Vault))
                            {
                                Log("Vaulting to Health Globe");
                                ZetaDia.Me.UsePower(SNOPower.DemonHunter_Vault, HealthGlobes.Position, ZetaDia.Me.WorldDynamicId);
                            }
                            else if (Zeta.CommonBot.PowerManager.CanCast(SNOPower.Wizard_Teleport))
                            {
                                Log("Teleporting to Health Globe");
                                ZetaDia.Me.UsePower(SNOPower.Wizard_Teleport, HealthGlobes.Position, ZetaDia.Me.WorldDynamicId);
                            }
                            else if (Zeta.CommonBot.PowerManager.CanCast(SNOPower.Barbarian_FuriousCharge) && false)
                            {
                               //something clever
                            }
                            else //people should suggest abilities to use with the run to the health globe 
                                //like smokescreen, spirit walk, dashing strike or whatever
                            {
                                Log("Moving to Health Globe");
                                ZetaDia.Me.UsePower(SNOPower.Walk, HealthGlobes.Position, ZetaDia.Me.WorldDynamicId, -1);
                            }
                        }
                        else 
                        {
                             if( HealthGlobes == null) Log("No Health Globes");
                            if (CombatTargeting.Instance.LastObjects.Count(u => IsDebuff((DiaUnit)u)) >= 1)
                            {
                                MoveAway();
                            }
                            if (ZetaDia.Actors.GetActorsOfType<DiaObject>(true, false).Count(u => IsDebuff((DiaObject)u)) >= 1)
                            {
                                MoveAway();
                            }
                        }
                    }
                }

edit edit edit: null pointer in IsElite method :(
edit edit edit edit: I think access violations are causing it to freeze up. I haven't seen it miss a single globe before demonbuddy throws an error somewhere else.
 
Last edited:
including your code into belphe
problem in this that I'm not sure that all code from plugin will work in route + if nouk change any code in belphe - i need find this updates, and include\recheck it again..
 
Just went against - Arcane Illusionist Molten Electrifying.
It didn't even try move out of the range, at all!

Code:
[08:34:28.092 D] Rare
[08:34:28.092 D] Illusionist
[08:34:28.092 D] ArcaneEnchanted
[08:34:28.092 D] Molten
[08:34:28.092 D] Electrified
[08:34:28.102 D] Rare
[08:34:28.102 D] Illusionist
[08:34:28.102 D] ArcaneEnchanted
[08:34:28.102 D] Molten
[08:34:28.102 D] Electrified
[08:34:28.112 D] Rare
[08:34:28.112 D] Illusionist
[08:34:28.112 D] ArcaneEnchanted
[08:34:28.112 D] Molten
[08:34:28.112 D] Electrified
[08:34:28.132 D] Rare
[08:34:28.132 D] Illusionist
[08:34:28.132 D] ArcaneEnchanted
[08:34:28.132 D] Molten
[08:34:28.132 D] Electrified
[08:34:28.702 V] Using power Barbarian_Frenzy clickPos:<0, 0, 0> worldDynamicId:0 targetACDGuid:-1766522575
[08:34:29.032 D] Exception while pulsing plugin DebuffsEvasion 0.4: System.AccessViolationException: Could not read bytes from 00000000 [299]!
   at Zeta.MemoryManagement.ExternalProcessReader.ReadBytes(IntPtr address, Int32 count, Boolean isRelative)
   at Zeta.MemoryManagement.ExternalProcessReader.Read[T](IntPtr address, Boolean isRelative)
   at Zeta.Internals.Actors.DiaObject.()
   at Zeta.Internals.Actors.DiaObject.get_Name()
   at OutSideDebuffsEvasion.OutSideDebuffsEvasion.IsDebuff(DiaUnit unit)
   at OutSideDebuffsEvasion.OutSideDebuffsEvasion.<OnPulse>b__4(DiaObject u)
   at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source, Func`2 predicate)
   at OutSideDebuffsEvasion.OutSideDebuffsEvasion.OnPulse()
   at Zeta.Common.Plugins.PluginManager.PulsePlugin(IPlugin plugin)
[08:34:29.132 V] Using power Barbarian_Frenzy clickPos:<0, 0, 0> worldDynamicId:0 targetACDGuid:-1787756317
[08:34:29.562 V] Using power Barbarian_Frenzy clickPos:<0, 0, 0> worldDynamicId:0 targetACDGuid:-1766653695
[08:34:30.003 V] Blacklisting D9260010 for 00:10:00
[08:34:30.043 V] Using power Barbarian_Frenzy clickPos:<0, 0, 0> worldDynamicId:0 targetACDGuid:-1766653695
[08:34:31.614 V] Using power Barbarian_Frenzy clickPos:<0, 0, 0> worldDynamicId:0 targetACDGuid:-1787756317
[08:34:33.036 V] Using power Barbarian_Frenzy clickPos:<0, 0, 0> worldDynamicId:0 targetACDGuid:-1766719317
[08:34:33.866 V] Using power Barbarian_Leap clickPos:<982.528, 3382.008, 62.82557> worldDynamicId:1999503360 targetACDGuid:-1
[08:34:34.166 V] Blacklisting D9A70061 for 00:10:00
[08:34:34.176 V] Blacklisting D9A8006B for 00:10:00
[08:34:34.176 N] Logging out
[08:34:34.176 N] Player died, Resetting caches.

stood in arcane and molten at under 20% hp (set to run away from both), had a clear path and moving 5ft away would have saved him for sure.
- it does work usually just this time didn't at all.
 
Exception while pulsing plugin DebuffsEvasion 0.4: System.AccessViolationException: Could not read bytes from 00000000 [299]!
maybe its becouse of this error. i`l fix it yesterday.

p.s. maybe someone know what aoe ranges have affixes? (like desecrator\plague ~7-10, arcane ~20-30?)
 
maybe its becouse of this error. i`l fix it yesterday.

p.s. maybe someone know what aoe ranges have affixes? (like desecrator\plague ~7-10, arcane ~20-30?)

I attached demonbuddy as a process to an IDE and I've seen that error pop up twice for the combat routine but not for your plugin

edit: oops, I am getting the error on your plugin first :S it just isn't being flagged in the IDE...
 

Attachments

Last edited:
So. For new release i need help to find damage-ranges of each affixe (distance at which bot can get damage from this affixe)
 
v 0.5
- fixed plugin not move away from arcane enchanted.
- fixed "Exception while pulsing plugin DebuffsEvasion 0.4: System.AccessViolationException: Could not read bytes from 00000000 [299]!"
- added Now molten trail, and molten bomb - divided, each with self configuration.
- added configuration for HP potions usage.
- added configuration for HP globes pickup.
 
Last edited:
Yes this is a good idea to move to a safe spot and wait there until the mobs come towards you and then you activate Belphegor again and meanwhile you have control add some condition to use health potions and globes to stay alive. Many times I noticed that after the fight is over the stupid character moves in to pick up stuff and actually dies due to poison, desc, etc that still is on the area. Now I know this has nothing to do with your plugin but if you could implement it so the bot actually uses some pot in these kind of situations it would be super.
 
v 0.5
- fixed plugin not move away from arcane enchanted.
- fixed "Exception while pulsing plugin DebuffsEvasion 0.4: System.AccessViolationException: Could not read bytes from 00000000 [299]!"
- working on "So, looks like I need to find a position that is closest to the target, that bot wants to kill, and this position must be secure from other affixes, right?
And maybe make my own hp + globes pickup, and if i cant come to target, that bot want attack (cus there many affixes) - then just wait?
Look like i need self route, or stop belphegor, till all conditions are true (we run from affixe, wait while we can move to mob safe (at this time we just use potions and globes, and then come to mob, and only after this enable belphegor)"

Cant seem to find the download on this one
 
its nor released, cus i still working on third point
 
v 0.5 released. Need feedbacks + new test (specialy for hp pots & globes).
Working on 0.6 with new pathing.
 
New version 0.5 I'm dying a lot more. It seems to not attack as much as previous version and because I rely on LOH I died 6 times in 1 hour. Normally I might die once per hour.
 
Trying out 0.5 working alot better, though i have a few problems.

1. it attacks alot slower
2. runs back and forth a few times with poison
3. ran too far away and lost interest in elite and cut the battle - if desecrator its easy to deal with but arcane maybe just wait outside of arcane range as long as its a threat and let the monster come to you (so long as it isn't mortar).
 
1. it attacks alot slower
2. runs back and forth a few times with poison
3. ran too far away and lost interest in elite and cut the battle - if desecrator its easy to deal with but arcane maybe just wait outside of arcane range as long as its a threat and let the monster come to you (so long as it isn't mortar).
all this problems will be fixed with new pathing, now it run randomly to walkable point, with new pathing its first try to run to safe zone, than will be most closely to mob. Now just need to test how it use pots\globes, etc.

Btw, i forgot to include in code bot pickup radius.

Thank all who testing this
 
Outside. My hero was also noticeably attacking much slower and it was not because it was moving away from affixes. I was dying mainly because it was not attacking mobs right on front of me.

I'm back to 0.4 and no deaths now for over 1 hour
 
My hero was also noticeably attacking much slower
Can you make fraps (eta 1min for each fraps) with attacking mob on 0.4 and 0.5?
 
or fraps where you use (enable) 0.5, and then disable
 
Back
Top