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

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

[Snippet/PoC] Dodge dangerous attacks (Dominus only for now)

To help myself make it i'm going to make a "dev" plugin that captures every move of every monsterr i think it's better than going through the codedom
 
I will add this to the main post, but if you wanna help me capture a few boss move, use this AssistantBot :
Code:
using System.Collections.Generic;
using log4net;
using Loki.Bot;
using Loki.Bot.Settings;
using Loki.Game;
using Loki.Game.GameData;
using Loki.Game.Objects;
using Loki.Utilities;
using System;
using System.Windows;
using System.Windows.Markup;
using System.IO;
using System;
using System.Windows.Data;
using System.Threading.Tasks;
using System.Linq;
using System.Windows.Controls;

//!CompilerOption|AddRef|C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Speech.dll

namespace AlertBot
{
    /// <summary> </summary>
    public class AlertBot : IBot
    {
        private static readonly ILog Log = Logger.GetLoggerInstanceForType();

        struct Skill
        {
            public readonly Loki.Game.NativeWrappers.ActionWrapper action;
            public readonly int createdts;
            public int timeout;
            public readonly bool active;

            public Skill(Loki.Game.NativeWrappers.ActionWrapper action)
            {
                this.action = action;
                this.createdts = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                this.timeout = 3;
                this.active = true;
            }
            public override bool Equals(Object obj)
            {
                // Check for null values and compare run-time types.
                if (obj == null || GetType() != obj.GetType())
                    return false;

                Skill s = (Skill)obj;
                return (s.action.Skill.Name == action.Skill.Name) && (s.action.Destination.Equals(action.Destination)) && (s.createdts - createdts <= 3);
            }
            public override int GetHashCode()
            {
                return (action.GetHashCode() + action.Destination.GetHashCode() + createdts) % 100000000;
            }

        }
        private readonly List<Skill> _trackedSkills = new List<Skill>();

        #region Implementation of IAuthored

        /// <summary> The name of this bot. </summary>
        public string Name
        {
            get { return "AssistantBot"; }
        }

        /// <summary> The description of this bot. </summary>
        public string Description
        {
            get { return "This bot will assist you during manual play."; }
        }

        /// <summary>The author of this bot.</summary>
        public string Author
        {
            get { return "JYam"; }
        }

        /// <summary>The version of this bot's implementation.</summary>
        public Version Version
        {
            get { return new Version(0, 0, 1, 1); }
        }

        #endregion

        #region Implementation of IBase

        /// <summary>Initializes this object. This is called when the object is loaded into the bot.</summary>
        public void Initialize()
        {
        }

        #endregion

        #region Implementation of IRunnable

        /// <summary> The bot start callback. Do any initialization here. </summary>
        public void Start()
        {
            Log.DebugFormat("[AssistantBot] Start");

            // Reset the default MsBetweenTicks on start.
            Log.DebugFormat("[Start] MsBetweenTicks: {0}.", MainSettings.Instance.MsBetweenTicks);
            Log.DebugFormat("[Start] InputEventMsDelay: {0}.", MainSettings.Instance.InputEventMsDelay);

            GameEventManager.Start();

            GameEventManager.AreaChanged += GameEventManagerOnAreaChanged;
        }

        /// <summary> The bot tick callback. Do any update logic here. </summary>
        public void Tick()
        {
            // We don't want to do anything when we're not in game!
            if (!LokiPoe.IsInGame)
                return;

            GameEventManager.Tick();

            foreach (Monster obj in LokiPoe.ObjectManager.GetObjectsByType<Monster>())
            {

                if (obj.IsHostile && obj.Rarity == Rarity.Unique && obj.HasCurrentAction && obj.CurrentAction.Skill != null && obj.CurrentAction.Skill.Name.Length >= 5)
                {
                    Loki.Game.NativeWrappers.ActionWrapper action = ((Monster)obj).CurrentAction;
                    if (!_trackedSkills.Contains(new Skill(action)))
                    {
                        _trackedSkills.Add(new Skill(action));
                        Log.DebugFormat("Action performed by {0} [X : {1}, Y : {2}]", obj.Name, obj.Position.X, obj.Position.Y);
                        if (action.Destination != null)
                            Log.DebugFormat("Destination X : {0}, Y : {1}", action.Destination.X, action.Destination.Y);
                        if (action.Target != null)
                            Log.DebugFormat("Target X : {0}, Y : {1}", action.Target.Position.X, action.Target.Position.Y);
                        if (action.Skill != null)
                            Log.DebugFormat("{0} [ID : {2} - Addr : {3}] ~ {1}", action.Skill.Name, action.Skill.Description, action.Skill.Id, action.Skill.BaseAddress);
                    }

                }
                List<Skill> toDelete = new List<Skill>();

                foreach (Skill s in _trackedSkills)
                {
                    if (s.createdts + s.timeout <= (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds)
                    {

                        toDelete.Add(s);
                    }
                }
                foreach (Skill s in toDelete)
                {
                    _trackedSkills.Remove(s);
                }
            }
        }

        /// <summary> The bot stop callback. Do any pre-dispose cleanup here. </summary>
        public void Stop()
        {
            Log.DebugFormat("[AssistantBot] OnStop");

            GameEventManager.Stop();

            GameEventManager.AreaChanged -= GameEventManagerOnAreaChanged;
        }

        #endregion

        #region Implementation of IConfigurable

        public JsonSettings Settings
        {
            get { return null; }
        }

        /// <summary> The bot's settings control. This will be added to the Exilebuddy Settings tab.</summary>
        public UserControl Control
        {
            get { return null; }
        }

        #endregion

        #region Implementation of IDisposable

        /// <summary> </summary>
        public void Dispose()
        {

        }

        #endregion

        #region Override of Object

        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return Name + ": " + Description;
        }

        #endregion

        #region Coroutine Logic

        #endregion

        private void GameEventManagerOnAreaChanged(object sender, AreaChangedEventArgs areaChangedEventArgs)
        {
            _trackedSkills.Clear();
        }
    }
}
Put this in Bot/AssistantBot/AssistantBot.cs, use it instead of grindbasicbot and just start the bot and play, whenever a boss uses a special move, it gets added to the console window.
 
Also pushedx, is there a way to know if a skill is the same "cast" instance as another
for now i'm using
Code:
return (s.action.Skill.Name == action.Skill.Name) && (s.action.Destination.Equals(action.Destination)) && (s.createdts - createdts <= 3);
To distinguish between cast but i still get stuff like ethereal knives registered 4x because apparently the Destination changes during windup?
 
Atziri's going to do harder because her skills are always multi state or something, need to detect transition.
 
Hello friends,

First, thank you gyam for this and helping improve EB even more.
So, could someone help me on how to exactly add this dodge code inside my ExampleRoutine.cs, please?
I'm following the guide but I'm a bit lost. I found the flameblast logic in the code and just before that I'm pasting the whole code part jyam gave us there. I'm just wondering about the really final part where it says:
Code:
if (!await Coroutines.MoveToLocation(dodgepos, 1, 1000))
                                 {
                                    Log.InfoFormat("[Warning] Failed Dodge");
                                 }
                            }
                          
                            
                         
                           
  
                         
                        }
                    }
                    else
                    {
                        
                    }
                }
Is that should end like that with a empty "else"?
And how about that last code piece that he said to place it "outside the function in CR." Where exactly it goes in my ExampleRoutine.cs? Could someone paste the last line of the original file so I can search for it and paste the rest of the code? Or if you guys don't mind share full ExampleRoutine.cs already with the dodge added so I can copy/paste everything and avoid problems.
Again, thanks in advance.
 
yeah im also kinda confused on where to paste the code exactly since im getting tons of error´s when pasting the code before this:


// If we have flameblast, we need to use special logic for it.
if (_flameblastSlot != -1)

isnt this the flameblast logic???

edit: thank you very much author for providing the modified example routine

(now only gift us with your custom filter to skip mobs until dominus... :P )
 
Last edited:
Thank you for the CR, gonna test it.

How are you changing the attack range on the fly?

I am trying now also to get the AuraName for the Bloodlines Mod: Phylacteral Link and Bearers of the Guardian.

For Phylacteral Link, we need to focus into the guy that has the "bigger ring" (and move to melee range to it, bcse the others with "smaller ring" might block the way and/or stay in the way of projectiles you cast) . . .

For Bearers of the Guardian, we need to ignore the unique guy, focus on the blue mobs that has "Bearers of the Guardian", once all gone and the unique guy is not invul (maybe there is a far away blue mob with "Bearers of the Guardian"), kill the unique . . .

For Necrovigil, the implementation we have now, is ok (ignore them), but sometimes they block the way/stay in the way of spells . . . The best would be to be able to identify if they are on top of the "green ring" that makes them invul, if not, kill them . . .
Here is the code for a mob with 1 life standing on top of the green ring, invul (CannotDie = 1)
Code:
_28: 0x0
BaseComponentPtr: 0x59A45570
WorldPosition.X: 8375
WorldPosition.Y: 17201,09
WorldPosition.Z: -31,88479
ModelLength: 19,56522
ModelWidth: 19,56522
ModelHeight: 31,88479
_30: 0
_34: -31,88479
Name: Spindle Spider
Rotation.X: 4,248736
Rotation.Y: 4,248735
Rotation.Z: 2,384186E-06
_70: 0x1
_7C: 0x0
_80: 0x380030
_84: 0x35
TerrainHeightAt: 0
_8C: First: 66303688
Last: 6630368C
End: 6630368C
Allocator: 3F240000
_9C: First: 0
Last: 0
End: 0
Allocator: 0
_AC: First: 59629390
Last: 59629390
End: 596293A4
Allocator: 0
_BC: First: 0
Last: 0
End: 0
Allocator: 20
_CC: 0x651CFC20
_D0: 0x19E1928
_D4: 0x578AC2F8
_D8: 0
_DC: 0
_E0: 0x0
_E4: 0x0
_E8: 0x1000000
_EC: 1
Model Size (Map): 1.79999987792969, 1.79999987792969, 2.93340089416504
Health: 1/10028 (0%)
Mana: 928/928 (100%)
Energy Shield: 0/0 (0%)
Actor Flags: UsingAbility, AbilityCooldownActive (00000012)
Pathing To: {770, 1582} ({0, 0})
Stats: 
	MainHandWeaponType = 10
	OffHandWeaponType = 14
	MovementVelocityPosPct = 10
	IsDualWielding = 0
	MaximumLife = 10028
	MainHandAttackSpeedPosPct = 20
	OffHandAttackSpeedPosPct = 20
	FireDamageResistancePct = 0
	MainHandBaseWeaponAttackDurationMs = 1440
	OffHandBaseWeaponAttackDurationMs = 1440
	MainHandMinimumAttackDistance = 3
	OffHandMinimumAttackDistance = 3
	MainHandBaseMaximumAttackDistance = 3
	OffHandBaseMaximumAttackDistance = 3
	ActionSpeedNegPct = 30
	CannotDie = 1
	MonsterAttackCastSpeedPosPctAndDamageNegPctFinal = 20
	MainHandMaximumAttackDistance = 3
	OffHandMaximumAttackDistance = 3
	ActorScalePosPct = 20
	CombinedAllDamageOverTimePosPct = 80
	FireDamageTakenPerMinute = 0
	MonsterDropHigherLevelGear = 1
	ItemDropSlots = 1
	MaximumPhysicalDamageReductionPct = 75
	BaseEvasionRating = 2642
	BaseMaximumLife = 2889
	BaseMaximumMana = 200
	ManaRegenerationRatePerMinutePct = 100
	BaseMaximumEnergyShield = 0
	EnergyShieldRechargeRatePerMinutePct = 2000
	EnergyShieldDelayNegPct = 50
	ResistAllElementsPctPerEnduranceCharge = 15
	MaximumFireDamageResistancePct = 75
	BaseFireDamageResistancePct = 0
	MaximumColdDamageResistancePct = 75
	BaseColdDamageResistancePct = 0
	MaximumLightningDamageResistancePct = 75
	BaseLightningDamageResistancePct = 40
	MaximumChaosDamageResistancePct = 75
	BaseChaosDamageResistancePct = 0
	MovementVelocityPosPctPerFrenzyCharge = 3
	MaxEnduranceCharges = 3
	MaxFrenzyCharges = 3
	MaxPowerCharges = 3
	MaximumMana = 928
	ManaRegenerationRatePerMinute = 928
	EvasionRating = 2642
	MainHandAccuracyRating = 362
	OffHandAccuracyRating = 362
	LightningDamageResistancePct = 40
	BaseAttackSpeedPosPctPerFrenzyCharge = 20
	IntermediaryMaximumLife = 2889
	PhysicalDamageReductionPctPerEnduranceCharge = 15
	MaximumBlockPct = 75
	BaseCastSpeedPosPctPerFrenzyCharge = 20
	MaxViperStrikeOrbs = 4
	MaxFuseArrowOrbs = 5
	CriticalStrikeChancePosPctPerPowerCharge = 200
	BaseCriticalStrikeMultiplier = 130
	MainHandCriticalStrikeMultiplier = 130
	OffHandCriticalStrikeMultiplier = 130
	SpellCriticalStrikeMultiplier = 130
	ChanceToHitPct = 95
	ChanceToEvadePct = 95
	SecondaryCriticalStrikeMultiplier = 130
	MainHandLocalAccuracyRating = 362
	OffHandLocalAccuracyRating = 362
	BaseNumberOfTotemsAllowed = 1
	BaseNumberOfTrapsAllowed = 3
	BaseNumberOfRemoteMinesAllowed = 5
	BaseMaximumFireDamageResistancePct = 75
	BaseMaximumColdDamageResistancePct = 75
	BaseMaximumLightningDamageResistancePct = 75
	BaseMaximumChaosDamageResistancePct = 75
	NumberOfTrapsAllowed = 3
	NumberOfRemoteMinesAllowed = 5
	NumberOfTotemsAllowed = 1
	MovementVelocityCap = 128
	IntermediaryMaximumLifeIncludingChaosInnoculation = 2889
	ManaRecoveryPerMinute = 928
	TotalBaseEvasionRating = 2642
	AttackSpeedPosPctPerFrenzyCharge = 20
	CastSpeedPosPctPerFrenzyCharge = 20
	MaxCorruptedBloodStacks = 20
	MonsterLevelScaleMaximumManaAndManaCostPosPctFinal = 364
	MaxCorruptedBloodRainStacks = 20
	TotalLightningDamageResistancePct = 40
	MaximumDodgeChancePct = 75
	MaximumSpellDodgeChancePct = 75
Current Auras:
	Name: , InternalName: monster_magic_effect_buff, Description: , IsInvisible: True, IsRemovable: False, Charges: 1, TimeLeft: 10675199.02:48:05.4775807, BuffType: 26, CasterId: 18183, OwnerId: 0
	Name: Necrovigil, InternalName: bloodlines_necrovigil, Description: The souls of your fallen pack members protect you, IsInvisible: False, IsRemovable: False, Charges: 0, TimeLeft: 10675199.02:48:05.4775807, BuffType: 26, CasterId: 25534, OwnerId: 0
	Name: Necrovigil, InternalName: bloodlines_necrovigil, Description: The souls of your fallen pack members protect you, IsInvisible: False, IsRemovable: False, Charges: 0, TimeLeft: 10675199.02:48:05.4775807, BuffType: 26, CasterId: 6205, OwnerId: 0
	Name: Chilled Ground, InternalName: ground_ice_chill, Description: Your actions are slowed while standing on chilled ground, IsInvisible: False, IsRemovable: False, Charges: 1, TimeLeft: 10675199.02:48:05.4775807, BuffType: 26, CasterId: -2147478431, OwnerId: 0
Rarity: Magic
Implicit Affixes:
	Level: 1, Category: MonsterSlainExperience, InternalName: MonsterMagic1, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 250, Max: 250, Stat: 10, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MaximumLifeIncreasePercent, InternalName: MonsterMagic2, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 187, Max: 187, Stat: 125, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterDroppedItemQuantity, InternalName: MonsterMagic3, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 600, Max: 600, Stat: 12, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterDroppedItemRarity, InternalName: MonsterMagic4, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 200, Max: 200, Stat: 11, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterDamage, InternalName: MonsterMagic5, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 30, Max: 30, Stat: 25, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterSlainFlaskCharges, InternalName: MonsterMagic6, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 250, Max: 250, Stat: 465, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterDoesNotFlee, InternalName: MonsterMagic7, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 50, Max: 50, Stat: 521, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MovementVelocity, InternalName: MonsterMagic8, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 10, Max: 10, Stat: 181, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterSpeedAndDamageFixupRarity, InternalName: MonsterMagic9, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 20, Max: 20, Stat: 882, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterHighLevelDrops, InternalName: MonsterMagic10, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 1, Max: 1, Stat: 2078, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
Explicit Affixes:
	Level: 1, Category: MaximumLifeIncreasePercent, InternalName: MonsterIncreasedLife1, DisplayName: Massive, IsHidden: False, IsPrefix: True, IsSuffix: False, Stats: Min: 50, Max: 50, Stat: 125, Min: 20, Max: 20, Stat: 730, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: Bloodlines, InternalName: MonsterBloodlinesNecrovigil1, DisplayName: Necrovigil, IsHidden: False, IsPrefix: False, IsSuffix: False, Stats: Min: 50, Max: 50, Stat: 2576, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
Walk Triangles:
Projection Triangles:
Dword0: 26373828
Dword4: 1558294472

Stats: 
	MainHandWeaponType = 10
	OffHandWeaponType = 14
	MovementVelocityPosPct = 10
	IsDualWielding = 0
	MaximumLife = 10028
	MainHandAttackSpeedPosPct = 20
	OffHandAttackSpeedPosPct = 20
	FireDamageResistancePct = 0
	MainHandBaseWeaponAttackDurationMs = 1440
	OffHandBaseWeaponAttackDurationMs = 1440
	MainHandMinimumAttackDistance = 3
	OffHandMinimumAttackDistance = 3
	MainHandBaseMaximumAttackDistance = 3
	OffHandBaseMaximumAttackDistance = 3
	ActionSpeedNegPct = 30
	CannotDie = 1
	MonsterAttackCastSpeedPosPctAndDamageNegPctFinal = 20
	MainHandMaximumAttackDistance = 3
	OffHandMaximumAttackDistance = 3
	ActorScalePosPct = 20
	CombinedAllDamageOverTimePosPct = 80
	FireDamageTakenPerMinute = 0
	MonsterDropHigherLevelGear = 1
	ItemDropSlots = 1
	MaximumPhysicalDamageReductionPct = 75
	BaseEvasionRating = 2642
	BaseMaximumLife = 2889
	BaseMaximumMana = 200
	ManaRegenerationRatePerMinutePct = 100
	BaseMaximumEnergyShield = 0
	EnergyShieldRechargeRatePerMinutePct = 2000
	EnergyShieldDelayNegPct = 50
	ResistAllElementsPctPerEnduranceCharge = 15
	MaximumFireDamageResistancePct = 75
	BaseFireDamageResistancePct = 0
	MaximumColdDamageResistancePct = 75
	BaseColdDamageResistancePct = 0
	MaximumLightningDamageResistancePct = 75
	BaseLightningDamageResistancePct = 40
	MaximumChaosDamageResistancePct = 75
	BaseChaosDamageResistancePct = 0
	MovementVelocityPosPctPerFrenzyCharge = 3
	MaxEnduranceCharges = 3
	MaxFrenzyCharges = 3
	MaxPowerCharges = 3
	MaximumMana = 928
	ManaRegenerationRatePerMinute = 928
	EvasionRating = 2642
	MainHandAccuracyRating = 362
	OffHandAccuracyRating = 362
	LightningDamageResistancePct = 40
	BaseAttackSpeedPosPctPerFrenzyCharge = 20
	IntermediaryMaximumLife = 2889
	PhysicalDamageReductionPctPerEnduranceCharge = 15
	MaximumBlockPct = 75
	BaseCastSpeedPosPctPerFrenzyCharge = 20
	MaxViperStrikeOrbs = 4
	MaxFuseArrowOrbs = 5
	CriticalStrikeChancePosPctPerPowerCharge = 200
	BaseCriticalStrikeMultiplier = 130
	MainHandCriticalStrikeMultiplier = 130
	OffHandCriticalStrikeMultiplier = 130
	SpellCriticalStrikeMultiplier = 130
	ChanceToHitPct = 95
	ChanceToEvadePct = 95
	SecondaryCriticalStrikeMultiplier = 130
	MainHandLocalAccuracyRating = 362
	OffHandLocalAccuracyRating = 362
	BaseNumberOfTotemsAllowed = 1
	BaseNumberOfTrapsAllowed = 3
	BaseNumberOfRemoteMinesAllowed = 5
	BaseMaximumFireDamageResistancePct = 75
	BaseMaximumColdDamageResistancePct = 75
	BaseMaximumLightningDamageResistancePct = 75
	BaseMaximumChaosDamageResistancePct = 75
	NumberOfTrapsAllowed = 3
	NumberOfRemoteMinesAllowed = 5
	NumberOfTotemsAllowed = 1
	MovementVelocityCap = 128
	IntermediaryMaximumLifeIncludingChaosInnoculation = 2889
	ManaRecoveryPerMinute = 928
	TotalBaseEvasionRating = 2642
	AttackSpeedPosPctPerFrenzyCharge = 20
	CastSpeedPosPctPerFrenzyCharge = 20
	MaxCorruptedBloodStacks = 20
	MonsterLevelScaleMaximumManaAndManaCostPosPctFinal = 364
	MaxCorruptedBloodRainStacks = 20
	TotalLightningDamageResistancePct = 40
	MaximumDodgeChancePct = 75
	MaximumSpellDodgeChancePct = 75
MagicProperties: (Magic)
	MonsterSlainExperiencePosPct = 250
	MonsterDroppedItemRarityPosPct = 200
	MonsterDroppedItemQuantityPosPct = 600
	DamagePosPct = 30
	MaximumLifePosPct = 237
	BaseMovementVelocityPosPct = 10
	MonsterSlainFlaskChargesGrantedPosPct = 250
	MonsterChanceToNotFleePct = 50
	BaseActorScalePosPct = 20
	MonsterRarityAttackCastSpeedPosPctAndDamageNegPctFinal = 20
	MonsterDropHigherLevelGear = 1
	CannotDieAndDamagePosPctNearPackCorpse = 50

Must be this first buff here, i will check again, if when the mob is not standing on top of the green shit, if this first buff appears . . .

Code:
Current Auras:
	Name: , InternalName: monster_magic_effect_buff, Description: , IsInvisible: True, IsRemovable: False, Charges: 1, TimeLeft: 10675199.02:48:05.4775807, BuffType: 26, CasterId: 18183, OwnerId: 0

	Name: Necrovigil, InternalName: bloodlines_necrovigil, Description: The souls of your fallen pack members protect you, IsInvisible: False, IsRemovable: False, Charges: 0, TimeLeft: 10675199.02:48:05.4775807, BuffType: 26, CasterId: 25534, OwnerId: 0

	Name: Necrovigil, InternalName: bloodlines_necrovigil, Description: The souls of your fallen pack members protect you, IsInvisible: False, IsRemovable: False, Charges: 0, TimeLeft: 10675199.02:48:05.4775807, BuffType: 26, CasterId: 6205, OwnerId: 0

Now not standing in top of green shit

Code:
_28: 0x0
BaseComponentPtr: 0x59A4B420
WorldPosition.X: 19125
WorldPosition.Y: 19440,22
WorldPosition.Z: -54,88486
ModelLength: 38,04348
ModelWidth: 38,04348
ModelHeight: 47,07236
_30: 7,8125
_34: -39,25986
Name: Noxious Tarantula
Rotation.X: 2,034443
Rotation.Y: 2,034443
Rotation.Z: 1,764948
_70: 0x1
_7C: 0x0
_80: 0x320031
_84: 0x39
TerrainHeightAt: -7,8125
_8C: First: 6493AA60
Last: 6493AA64
End: 6493AA64
Allocator: 876D0000
_9C: First: 0
Last: 0
End: 0
Allocator: 0
_AC: First: 0
Last: 0
End: 0
Allocator: 0
_BC: First: 0
Last: 0
End: 0
Allocator: 57F90020
_CC: 0x7E8C3C50
_D0: 0x19E1928
_D4: 0x65FF4E58
_D8: 0
_DC: 0
_E0: 0x0
_E4: 0x0
_E8: 0x1000000
_EC: 1
Model Size (Map): 3.49999980163574, 3.49999980163574, 4.33065756225586
Health: 10952/10952 (100%)
Mana: 928/928 (100%)
Energy Shield: 0/0 (0%)
Actor Flags: UsingAbility, AbilityCooldownActive (00000012)
Pathing To: {1769, 1793} ({0, 0})
Stats: 
	MainHandWeaponType = 10
	OffHandWeaponType = 14
	MovementVelocityPosPct = 10
	IsDualWielding = 0
	MaximumLife = 10952
	MainHandAttackSpeedPosPct = 20
	OffHandAttackSpeedPosPct = 20
	MainHandBaseWeaponAttackDurationMs = 1440
	OffHandBaseWeaponAttackDurationMs = 1440
	MainHandMinimumAttackDistance = 4
	OffHandMinimumAttackDistance = 4
	MainHandBaseMaximumAttackDistance = 6
	OffHandBaseMaximumAttackDistance = 6
	ActionSpeedNegPct = 0
	CannotDie = 0
	MonsterAttackCastSpeedPosPctAndDamageNegPctFinal = 20
	MainHandMaximumAttackDistance = 6
	OffHandMaximumAttackDistance = 6
	CombinedAllDamageOverTimePosPct = 55
	MonsterDropHigherLevelGear = 1
	ItemDropSlots = 1
	MaximumPhysicalDamageReductionPct = 75
	BaseEvasionRating = 2642
	BaseMaximumLife = 3705
	BaseMaximumMana = 200
	ManaRegenerationRatePerMinutePct = 100
	BaseMaximumEnergyShield = 0
	EnergyShieldRechargeRatePerMinutePct = 2000
	EnergyShieldDelayNegPct = 50
	ResistAllElementsPctPerEnduranceCharge = 15
	MaximumFireDamageResistancePct = 75
	BaseFireDamageResistancePct = 0
	MaximumColdDamageResistancePct = 75
	BaseColdDamageResistancePct = 0
	MaximumLightningDamageResistancePct = 75
	BaseLightningDamageResistancePct = 40
	MaximumChaosDamageResistancePct = 75
	BaseChaosDamageResistancePct = 0
	MovementVelocityPosPctPerFrenzyCharge = 3
	MaxEnduranceCharges = 3
	MaxFrenzyCharges = 3
	MaxPowerCharges = 3
	MaximumMana = 928
	ManaRegenerationRatePerMinute = 928
	EvasionRating = 2642
	MainHandAccuracyRating = 362
	OffHandAccuracyRating = 362
	LightningDamageResistancePct = 40
	BaseAttackSpeedPosPctPerFrenzyCharge = 20
	IntermediaryMaximumLife = 3705
	PhysicalDamageReductionPctPerEnduranceCharge = 15
	MaximumBlockPct = 75
	BaseCastSpeedPosPctPerFrenzyCharge = 20
	MaxViperStrikeOrbs = 4
	MaxFuseArrowOrbs = 5
	CriticalStrikeChancePosPctPerPowerCharge = 200
	BaseCriticalStrikeMultiplier = 130
	MainHandCriticalStrikeMultiplier = 130
	OffHandCriticalStrikeMultiplier = 130
	SpellCriticalStrikeMultiplier = 130
	ChanceToHitPct = 95
	ChanceToEvadePct = 95
	SecondaryCriticalStrikeMultiplier = 130
	MainHandLocalAccuracyRating = 362
	OffHandLocalAccuracyRating = 362
	BaseNumberOfTotemsAllowed = 1
	BaseNumberOfTrapsAllowed = 3
	BaseNumberOfRemoteMinesAllowed = 5
	BaseMaximumFireDamageResistancePct = 75
	BaseMaximumColdDamageResistancePct = 75
	BaseMaximumLightningDamageResistancePct = 75
	BaseMaximumChaosDamageResistancePct = 75
	NumberOfTrapsAllowed = 3
	NumberOfRemoteMinesAllowed = 5
	NumberOfTotemsAllowed = 1
	MovementVelocityCap = 128
	IntermediaryMaximumLifeIncludingChaosInnoculation = 3705
	ManaRecoveryPerMinute = 928
	TotalBaseEvasionRating = 2642
	AttackSpeedPosPctPerFrenzyCharge = 20
	CastSpeedPosPctPerFrenzyCharge = 20
	MaxCorruptedBloodStacks = 20
	MonsterLevelScaleMaximumManaAndManaCostPosPctFinal = 364
	MaxCorruptedBloodRainStacks = 20
	TotalLightningDamageResistancePct = 40
	MaximumDodgeChancePct = 75
	MaximumSpellDodgeChancePct = 75
Current Auras:
	Name: , InternalName: monster_magic_effect_buff, Description: , IsInvisible: True, IsRemovable: False, Charges: 1, TimeLeft: 10675199.02:48:05.4775807, BuffType: 26, CasterId: 38, OwnerId: 0
Rarity: Magic
Implicit Affixes:
	Level: 1, Category: MonsterSlainExperience, InternalName: MonsterMagic1, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 250, Max: 250, Stat: 10, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MaximumLifeIncreasePercent, InternalName: MonsterMagic2, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 187, Max: 187, Stat: 125, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterDroppedItemQuantity, InternalName: MonsterMagic3, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 600, Max: 600, Stat: 12, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterDroppedItemRarity, InternalName: MonsterMagic4, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 200, Max: 200, Stat: 11, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterDamage, InternalName: MonsterMagic5, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 30, Max: 30, Stat: 25, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterSlainFlaskCharges, InternalName: MonsterMagic6, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 250, Max: 250, Stat: 465, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterDoesNotFlee, InternalName: MonsterMagic7, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 50, Max: 50, Stat: 521, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MovementVelocity, InternalName: MonsterMagic8, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 10, Max: 10, Stat: 181, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterSpeedAndDamageFixupRarity, InternalName: MonsterMagic9, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 20, Max: 20, Stat: 882, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterHighLevelDrops, InternalName: MonsterMagic10, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 1, Max: 1, Stat: 2078, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
Explicit Affixes:
	Level: 1, Category: MonsterDamage, InternalName: MonsterPhysicalDamage1, DisplayName: Savage, IsHidden: False, IsPrefix: True, IsSuffix: False, Stats: Min: 25, Max: 25, Stat: 25, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: MonsterCastsViperStrikeText, InternalName: MonsterCastsViperStrikeText, DisplayName: , IsHidden: True, IsPrefix: False, IsSuffix: False, Stats: Min: 1, Max: 1, Stat: 963, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
	Level: 1, Category: Bloodlines, InternalName: MonsterBloodlinesNecrovigil1, DisplayName: Necrovigil, IsHidden: False, IsPrefix: False, IsSuffix: False, Stats: Min: 50, Max: 50, Stat: 2576, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0
Walk Triangles:
Projection Triangles:
Dword0: 26373828
Dword4: 1558459592

Stats: 
	MainHandWeaponType = 10
	OffHandWeaponType = 14
	MovementVelocityPosPct = 10
	IsDualWielding = 0
	MaximumLife = 10952
	MainHandAttackSpeedPosPct = 20
	OffHandAttackSpeedPosPct = 20
	MainHandBaseWeaponAttackDurationMs = 1440
	OffHandBaseWeaponAttackDurationMs = 1440
	MainHandMinimumAttackDistance = 4
	OffHandMinimumAttackDistance = 4
	MainHandBaseMaximumAttackDistance = 6
	OffHandBaseMaximumAttackDistance = 6
	ActionSpeedNegPct = 0
	CannotDie = 0
	MonsterAttackCastSpeedPosPctAndDamageNegPctFinal = 20
	MainHandMaximumAttackDistance = 6
	OffHandMaximumAttackDistance = 6
	CombinedAllDamageOverTimePosPct = 55
	MonsterDropHigherLevelGear = 1
	ItemDropSlots = 1
	MaximumPhysicalDamageReductionPct = 75
	BaseEvasionRating = 2642
	BaseMaximumLife = 3705
	BaseMaximumMana = 200
	ManaRegenerationRatePerMinutePct = 100
	BaseMaximumEnergyShield = 0
	EnergyShieldRechargeRatePerMinutePct = 2000
	EnergyShieldDelayNegPct = 50
	ResistAllElementsPctPerEnduranceCharge = 15
	MaximumFireDamageResistancePct = 75
	BaseFireDamageResistancePct = 0
	MaximumColdDamageResistancePct = 75
	BaseColdDamageResistancePct = 0
	MaximumLightningDamageResistancePct = 75
	BaseLightningDamageResistancePct = 40
	MaximumChaosDamageResistancePct = 75
	BaseChaosDamageResistancePct = 0
	MovementVelocityPosPctPerFrenzyCharge = 3
	MaxEnduranceCharges = 3
	MaxFrenzyCharges = 3
	MaxPowerCharges = 3
	MaximumMana = 928
	ManaRegenerationRatePerMinute = 928
	EvasionRating = 2642
	MainHandAccuracyRating = 362
	OffHandAccuracyRating = 362
	LightningDamageResistancePct = 40
	BaseAttackSpeedPosPctPerFrenzyCharge = 20
	IntermediaryMaximumLife = 3705
	PhysicalDamageReductionPctPerEnduranceCharge = 15
	MaximumBlockPct = 75
	BaseCastSpeedPosPctPerFrenzyCharge = 20
	MaxViperStrikeOrbs = 4
	MaxFuseArrowOrbs = 5
	CriticalStrikeChancePosPctPerPowerCharge = 200
	BaseCriticalStrikeMultiplier = 130
	MainHandCriticalStrikeMultiplier = 130
	OffHandCriticalStrikeMultiplier = 130
	SpellCriticalStrikeMultiplier = 130
	ChanceToHitPct = 95
	ChanceToEvadePct = 95
	SecondaryCriticalStrikeMultiplier = 130
	MainHandLocalAccuracyRating = 362
	OffHandLocalAccuracyRating = 362
	BaseNumberOfTotemsAllowed = 1
	BaseNumberOfTrapsAllowed = 3
	BaseNumberOfRemoteMinesAllowed = 5
	BaseMaximumFireDamageResistancePct = 75
	BaseMaximumColdDamageResistancePct = 75
	BaseMaximumLightningDamageResistancePct = 75
	BaseMaximumChaosDamageResistancePct = 75
	NumberOfTrapsAllowed = 3
	NumberOfRemoteMinesAllowed = 5
	NumberOfTotemsAllowed = 1
	MovementVelocityCap = 128
	IntermediaryMaximumLifeIncludingChaosInnoculation = 3705
	ManaRecoveryPerMinute = 928
	TotalBaseEvasionRating = 2642
	AttackSpeedPosPctPerFrenzyCharge = 20
	CastSpeedPosPctPerFrenzyCharge = 20
	MaxCorruptedBloodStacks = 20
	MonsterLevelScaleMaximumManaAndManaCostPosPctFinal = 364
	MaxCorruptedBloodRainStacks = 20
	TotalLightningDamageResistancePct = 40
	MaximumDodgeChancePct = 75
	MaximumSpellDodgeChancePct = 75
MagicProperties: (Magic)
	MonsterSlainExperiencePosPct = 250
	MonsterDroppedItemRarityPosPct = 200
	MonsterDroppedItemQuantityPosPct = 600
	DamagePosPct = 55
	MaximumLifePosPct = 187
	BaseMovementVelocityPosPct = 10
	MonsterSlainFlaskChargesGrantedPosPct = 250
	MonsterChanceToNotFleePct = 50
	MonsterRarityAttackCastSpeedPosPctAndDamageNegPctFinal = 20
	MonsterCastsViperStrikeText = 1
	MonsterDropHigherLevelGear = 1
	CannotDieAndDamagePosPctNearPackCorpse = 50

Code:
Current Auras:
	Name: , InternalName: monster_magic_effect_buff, Description: , IsInvisible: True, IsRemovable: False, Charges: 1, TimeLeft: 10675199.02:48:05.4775807, BuffType: 26, CasterId: 38, OwnerId: 0

Monster Affixes - Path of Exile Wiki
 
Last edited:
check area + tileset, if it's not matching dominus area, make your Combat range to 1.

How to check if you're in dominus area :
Code:
if (LokiPoe.ObjectManager.GetObjectByMetadata("Metadata/Monsters/Demonmodular/TowerSpawners/TowerFightStarter") != null) { //We are in dominus ring area
ExampleRoutineSettings.Instance.CombatRange = 50;
} else {
ExampleRoutineSettings.Instance.CombatRange = 1;
}
idk if it works as i don't know if combatrange is writtable or not, my way of doing it is kinda different but can't share it atm. but this should work the exact same (albeit this one still is gonna try corrupted area and open chestbox, you need to disable them) if it's writtable.
 
Last edited:
check area + tileset, if it's not matching dominus area, make your Combat range to 1.

How to check if you're in dominus area :
Code:
if (LokiPoe.ObjectManager.GetObjectByMetadata("Metadata/Monsters/Demonmodular/TowerSpawners/TowerFightStarter") != null) { //We are in dominus ring area
ExampleRoutineSettings.Instance.CombatRange = 50;
} else {
ExampleRoutineSettings.Instance.CombatRange = 1;
}
idk if it works as i don't know if combatrange is writtable or not, my way of doing it is kinda different but can't share it atm. but this should work the exact same (albeit this one still is gonna try corrupted area and open chestbox, you need to disable them) if it's writtable.
Hi jyam,
It is writable, as long as you get the reference to ExampleRoutine.
 
pushedx, are the id 0 objects available in the raw list of the objectmanager?
 
flameblast effect is a id0 object, need it to be able to make a atziri farm plugin.
 
jyam, is this still being developed/updated?

Would it be possible to add to this bot, that once a hand of god is detected that within the evade movement we hit/use a lightning res flask, if available?
 
jyam, is this still being developed/updated?

Would it be possible to add to this bot, that once a hand of god is detected that within the evade movement we hit/use a lightning res flask, if available?

He's waiting for the id0 objects to be implemented (projectiles & stuff) when it's gonna happen, I'll add communication into flaskhelper to detect such avoidance/possibilities ;)
 
can you tell me how to use it?
i replace file in it C:\Users\***\Desktop\Budy\Routines\ExampleRoutine\ExampleRoutine.cs
take in BasicGrindBot -> The Upper Sceptre of God and start
he come to dominus move 2-3 steps, then use TP and go back to town
after he go to the new copy of Sceptre of God and same tp in dominus
 
Back
Top