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

Possible solution to "tanking Desecrator"?

twistedheat

New Member
Joined
Jun 14, 2012
Messages
295
Reaction score
1
Hello,

anyways im not sure if anyone else has noticed(allthough im sure someone has). But When Standing in Desecrator you receive a visible Debuff, under your buffs.

i have not tested this with arcane/molten/plague.

My programming background is small, but would it be simple to say..<if>Condition = Desecrator Debuff Move 3-5 Yards</if>

Obviously this is not the correct coding, but just thought. :D

P.S. Dont flame me :S
 
I dont think DB can detect of you got a buff or not atm. Sry
 
haha, no need to be sorry man. i was just thinking, cause its something everyone complains about. just wanted to be apart of the solution and not part of the flame fest ;)

im sure the buddy team is working on it as we speak, they do good work :D IMO
 
Does demonbuddy have that capability to "learn" from screenshots?
 
From what I know DB can check for Buffs, just need to do adjustments to the CC. This kind of stuff should be handled in the CC imho.
 
Apoc made a post somewhere saying that this is next on their list right behind random dungeons
 
desecrator/plague is honestly not too bad.. standing right on top of arcane sentry is way worse.. its the only thing that has potential to kill me if i stand on top of 2-3 from horde mobs
 
They actually appear as DiaObjects & Units, the hard part is moving away from them


//Object monsterAffix_Desecrator_damage_AOE-2632 || SNOId 84608|| AppearanceSNO 14315|| Distance 9.736207
//Object monsterAffix_Plagued_endCloud-853 || SNOId 108869 || AppearanceSNO 14315
//Unit MonsterAffix_ArcaneEnchanted_PetSweep-24127 Health: 22304.44921875/22304 || ActorSNO 219702
 
They actually appear as DiaObjects & Units, the hard part is moving away from them


//Object monsterAffix_Desecrator_damage_AOE-2632 || SNOId 84608|| AppearanceSNO 14315|| Distance 9.736207
//Object monsterAffix_Plagued_endCloud-853 || SNOId 108869 || AppearanceSNO 14315
//Unit MonsterAffix_ArcaneEnchanted_PetSweep-24127 Health: 22304.44921875/22304 || ActorSNO 219702

well.. move into random direction, if distance increased, move further. if it decreased start moving into opposite direction. g_G
 
They actually appear as DiaObjects & Units, the hard part is moving away from them


//Object monsterAffix_Desecrator_damage_AOE-2632 || SNOId 84608|| AppearanceSNO 14315|| Distance 9.736207
//Object monsterAffix_Plagued_endCloud-853 || SNOId 108869 || AppearanceSNO 14315
//Unit MonsterAffix_ArcaneEnchanted_PetSweep-24127 Health: 22304.44921875/22304 || ActorSNO 219702
Correct me if I'm wrong, but detection in advance isn't necessarily a requirement. And by that I mean you don't need to move out of it before your character is hit; simply don't stand there and facetank it. Could you not determine the maximum range of Arcane Enchanted, and then move that distance after being struck? Utilizing this method, no matter where you move to, you will be out of its range. Then just remember the last 3-5 Arcane Enchanted coordinates (i.e. where you were hit), set timers on them to expire (based on the maximum duration of Arcane Enchanted), and make the pathing route not intersect with any of those areas.

Likewise, similar logic would apply to finding the radius of a plague pool / desecrate patch.

I realize this is oversimplification, but I just wanted to post a possible solution in case it hadn't been considered.
 
Correct me if I'm wrong, but detection in advance isn't necessarily a requirement. And by that I mean you don't need to move out of it before your character is hit; simply don't stand there and facetank it. Could you not determine the maximum range of Arcane Enchanted, and then move that distance after being struck? Utilizing this method, no matter where you move to, you will be out of its range. Then just remember the last 3-5 Arcane Enchanted coordinates (i.e. where you were hit), set timers on them to expire (based on the maximum duration of Arcane Enchanted), and make the pathing route not intersect with any of those areas.

Likewise, similar logic would apply to finding the radius of a plague pool / desecrate patch.

I realize this is oversimplification, but I just wanted to post a possible solution in case it hadn't been considered.


That would entail a good deal of work involved in the mathematics of it all but that would potentially allow you to avoid everything, if I'm understanding you correctly. Any time an Arcane/Plague/Desecrator object is detected, determine the coordinates that the buff's radius will cover and avoid those. Things like Molten might require a little more finagling but if DB itself can give us accurate information it's just a matter of writing the code; should be good to go.
 
Moving from all those "bad stuff" is perfectly possible with DB's current capabilities. It can both detect your buffs + as Nuok said they're actually objects that DB can see and get the exact position for.
 
Moving from all those "bad stuff" is perfectly possible with DB's current capabilities. It can both detect your buffs + as Nuok said they're actually objects that DB can see and get the exact position for.

Correct.

This is a little snippet of a very unfinished func in the new API I'm adding;

Code:
        public bool PlayerIsStandingInGroundEffect()        {
            foreach (DiaObject a in
                    ZetaDia.Actors.GetActorsOfType<DiaObject>(true).Where(o => o.ActorType == ActorType.ServerProp ||
                                                                               o.ActorSNO == 219702 || // MonsterAffix_ArcaneEnchanted_PetSweep
                                                                               o.ActorSNO == 221225    // MonsterAffix_ArcaneEnchanted_PetSweep_Reverse
                        ))
            {
                // TODO: Figure out the proper ranges on these ground effects. These are just approximations.
                switch (a.ActorSNO)
                {
                    case 221225:
                    case 219702:
                        // Arcane beam. Only check if we're standing on the middle portion of it. We should be ok to take 1 pass, but standing on it for the full duration is bad.
                        return a.Position.Distance(ZetaDia.Me.Position) < 4;


                    case 108869: // Plagued
                        return a.Position.Distance(ZetaDia.Me.Position) < 8;
                    case 84608: // Desecrator
                        return a.Position.Distance(ZetaDia.Me.Position) < 6;
                        // TODO: Molten
                }
            }
            return false;
        }
 
Hello peeps,

Just signed up but following demonbuddy forums since the beginning. Descided to register becoz of this subforum. Atm I'm trying my best to learn some C# from tutorials since I want to help and contribute in any way.

After testing the current plugin [Plugin] Escape Desecrator \ Arcane made by OutSide, the bot kept on evading the arcane beams, not attacking anymore and thus dying.
I think when the bot descides to evade it should have some kind of logic that estimates the amount of danger it is actually in.
For instance if standing on a beam it should (like what was already said) immidiatly move 1 or two passes. No matter what direction as long as its a "free" location (not "on" a monster position or a wall or bush or something). If it detects 3 or more arcane sentries within 8 passes of each other it should move a good deal farther away (again into a "free" place, preferably backtracking the last "safe" position the bot came from to not agro more mobs)

The bot should maybe have some kind of logic as to estimate in what actual danger it is. Maybe this can be done by closely monitoring its health draining vs its health gaining per time-interval (by hitting mobs). I think thats what the Belphegor routine already kinda does when it comes to using certain skills like serentity for monks. If it detects its not in great danger (health gaining > health draining per certain time-interval) it should continue to attack.

So in short what would be needed:
- danger estimater
- intelligent runaway path

Ofcourse I cannot say if this is even remotely possible with the knowledge I have atm, but from what I have seen so far the bot has great potential in many many things.

Just my 2 cents.
 
Back
Top