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

ExilebuddyBeta Forsaken Masters Guide

Status
Not open for further replies.
Hi

if I set PrimaryexplorationCompletionBehavior to area transition, will it actually change level? as an exemple if the same map have multiple level will it do level 1 then 2 ans so on ?

thanks

It seems that logic is a little buggy now under certain scenarios. It's being rewritten and I'm working on making some more changes for some things that now seem different (they might not be though) in 1.2 with area changing.

How it should work, at least when I did my testing in various A1 areas before the patch last night, it keeps track of area transitions, and then after the exploration % is reached, it'll take an area transition out, and then create a new instance back in. That way, it only goes to town on inventory full, which is useful for avoiding extra time in towns (more susceptible to observation).

To answer your question, the basic setup is to grind one area, but it will travel though levels as needed (unless blocked by a quest) to get there. If you wanted to grind Lunaris 3, and didn't have Lunaris 2 WP, it would take Barracks WP, then find Lunaris 1, then make its way though 2, until it got to 3.
 
Any idea when town will be added?

Hopefully before the weekend is over. I need to make sure the movements and interactions in town look as natural as possible and the bots aren't all doing the same exact thing in terms of movement, because I feel towns are one of the most vulnerable areas for catching bots since there's other people around, and they are small enough that there's not much room to randomize things like out of town. Hideouts will help in this manner, but it will be some time before they are fully supported.

Since the new API has brand new stuff for everything related to inventory, it's most likely town logic will start out with simple stashing, and then leaving town to go back to the grind area. Seeing how the area transition logic turned out (not so good atm), it's a bad idea to try and rush out a ton of logic for town stuff and not be able to incrementally test it. Today was spent fixing a few design issues with the bot setup, and changing some core API stuff to address some of the main issues at the moment with 1.2. The next version should hopefully create the pathfinding data faster, and will have a design that helps avoid backtracking, but still ensure nothing is missed.

That is, having a bot implementation that can do a bunch of things based on what's on screen, then make its way around to the off screen things without forgetting about them (which has admittedly always been an issue with our previous implementations).
 
Is there any interact with item api now? I didn't see it in the new beta
 
Nope, all working.

im doing something wrong then, using the bot from the 1st page and i get the error about not being supported :/ now im not sure if i downloaded the right beta xD
 
im doing something wrong then, using the bot from the 1st page and i get the error about not being supported :/ now im not sure if i downloaded the right beta xD

I had the same problem. Reinstall and restart POE
 
Hopefully before the weekend is over. I need to make sure the movements and interactions in town look as natural as possible and the bots aren't all doing the same exact thing in terms of movement, because I feel towns are one of the most vulnerable areas for catching bots since there's other people around, and they are small enough that there's not much room to randomize things like out of town. Hideouts will help in this manner, but it will be some time before they are fully supported.

Since the new API has brand new stuff for everything related to inventory, it's most likely town logic will start out with simple stashing, and then leaving town to go back to the grind area. Seeing how the area transition logic turned out (not so good atm), it's a bad idea to try and rush out a ton of logic for town stuff and not be able to incrementally test it. Today was spent fixing a few design issues with the bot setup, and changing some core API stuff to address some of the main issues at the moment with 1.2. The next version should hopefully create the pathfinding data faster, and will have a design that helps avoid backtracking, but still ensure nothing is missed.

That is, having a bot implementation that can do a bunch of things based on what's on screen, then make its way around to the off screen things without forgetting about them (which has admittedly always been an issue with our previous implementations).

Sounds good :p
Really great to see things are coming along.
 
Is there any interact with item api now? I didn't see it in the new beta

You can't interact with an item directly anymore with the API. Instead, you can perform the actions required to trigger client interaction (as a normal player does).

That involves highlighting the item, and then clicking left mouse button to trigger the interact action.

If all things were perfect, that code would just literally be:
Code:
if (LokiPoe.Input.HighlightObject(worlditem))
{
   LokiPoe.Input.ClickLMB();
}

However, a lot more logic is actually needed to handle interaction correctly due to how the game works. I can't get into the entire process of what we do right now, but pseudocode would be something like:
Code:
PickupItem:
if item pathdistance < interaction range || cant see item position
   move towards item
   return

if !item can fit in inventory
   trigger town run
    return

wait for current client action to complete

if highlight item
   small sleep to let the client have the item highligted for a few frames
   click lmb
   small sleep to let the client start the action
   wait for current action to complete
   sleep for latency in letting the server pickup the item and send to the client the item is gone
   clear key states since key pickup is needed

Key thing, is to keep track of time spent on trying to loot an item, and how many times you're actually clicking, otherwise you get cases where an item simply can't be picked up by thte client, and your logic would just get stuck trying to do it over and over, and trigger bot like activity server sided most likely if it ran for hours.

LokiPoe.Me.HasCurrentAction will tell you if the player currently has an action (check out LocalPlayer / Actor for more goodies as well), and you can use LokiPoe.ProcessHookManager.Reset(); to clear the key/mouse states after doing the itneraction since your key pickup key will be set by HighlightObject.
 
Last edited:
soooo heres a bug

[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.



cant raise the zombie on that corpse but gets stuck trying
 
soooo heres a bug

[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.
[Logic] Using Raise Zombie on Seething Brine.



cant raise the zombie on that corpse but gets stuck trying

having the same issue, any eta on the next little update? :D
 
I'll check into that now, and see if I can get it squeezed into the next build.

The next build is later today. A lot of changes have been made, and I'm trying to get as much added as possible for users before building it.

Edit: This should be fixed in the next version, but you guys can test with a simple CR change.

Code:
private Monster BestDeadTarget
        {
            get
            {
                var myPos = LokiPoe.Me.Position;
                return LokiPoe.ObjectManager.GetObjectsByType<Monster>()
                    .Where(m => m.Distance < 30 && m.IsActiveDead && ExilePather.PathDistance(myPos, m.Position) < 30)
                    .OrderBy(m => m.Distance).FirstOrDefault();
            }
        }

should instead be:

Code:
private Monster BestDeadTarget
        {
            get
            {
                var myPos = LokiPoe.Me.Position;
                return LokiPoe.ObjectManager.GetObjectsByType<Monster>()
                    .Where(m => m.Distance < 30 && m.IsActiveDead && m.CorpseUsable && ExilePather.PathDistance(myPos, m.Position) < 30)
                    .OrderBy(m => m.Distance).FirstOrDefault();
            }
        }

The check for CorpseUsable is needed.
 
Last edited:
Is there a possibility to turn Arctic Armour off while running?
 
I'll check into that now, and see if I can get it squeezed into the next build.

The next build is later today. A lot of changes have been made, and I'm trying to get as much added as possible for users before building it.

Edit: This should be fixed in the next version, but you guys can test with a simple CR change.

Code:
private Monster BestDeadTarget
        {
            get
            {
                var myPos = LokiPoe.Me.Position;
                return LokiPoe.ObjectManager.GetObjectsByType<Monster>()
                    .Where(m => m.Distance < 30 && m.IsActiveDead && ExilePather.PathDistance(myPos, m.Position) < 30)
                    .OrderBy(m => m.Distance).FirstOrDefault();
            }
        }

should instead be:

Code:
private Monster BestDeadTarget
        {
            get
            {
                var myPos = LokiPoe.Me.Position;
                return LokiPoe.ObjectManager.GetObjectsByType<Monster>()
                    .Where(m => m.Distance < 30 && m.IsActiveDead && m.CorpseUsable && ExilePather.PathDistance(myPos, m.Position) < 30)
                    .OrderBy(m => m.Distance).FirstOrDefault();
            }
        }

The check for CorpseUsable is needed.

the new code works perfectly! thank you for this

is there any chance of implementing a chicken script to the bot as well?

also i noticed that the bot prioritizes the raising of zombies over anything else. this almost got me killed because while surrounded by enemies all the bot wanted to do was raise zombies more and more

lastly i noticed that lately when the bot is going for barrels close to chests it doesn't always click the barrel but assumes it did.

very minor things im reporting im sure when your main goal is town runs right now i assume

I want to say thank you for your extreme hard work and dedication to this project as well as keeping us informed as often as you do

i know this isnt a question probably to be asked here but are there any plans to make a bot for archeage from this company? I have a feeling there is a ton of money to be made from that game
 
Is there a possibility to turn Arctic Armour off while running?

The CR has some example code of turning it on when you enter combat, and then it can turn off when you leave combat. That setting is the ArcticArmourCastMode. When set to 1, it always casts, and when set to 2, it only casts in combat.

For specialized logic of casting it, starting combat and never moving, then uncasting when you did, you'd have to code that into your own little custom CR.

the new code works perfectly! thank you for this

A chicken plugin will be added back soonish. There just hasn't been time yet for it (there's no real obstacles in making a new one, just time). I'll try to get that worked back in for the next version after tonight's.

The CR code is where that priority comes from. If you need different logic for it, you'd have to change it. The CR we provide is just one big example of doing a bunch of generic stuff. There's certain things in there that work good for the average case, and others that would be better of going in a different direction. There's no way we could make a CR that is able to handle everything in a specialized form, so that's why most of the responses when it comes to CR stuff is "the user has to change it". I do show some rate limiting logic for Skeletons / Raging Spirits you could work from, but your best bet would be to make a custom CR for your build that does only the things you need it to (it'd also perform a lot better than ours did!)

Various issues with barrels are from the game itself. This game has a really weird hitbox system in place for chest clusters. You can easily test this yourself in a place like Chamber of Sins or Church Dungeon. Find some of the pot clusters, and try to highlight each one of them. Sometimes, you'll see the wrong one gets highlighted, and other times, it's actually impossible to highlight one. I don't know if this is some sort of anti-bot thing, or just something really weird they do. The next version has some changes to loot and item interaction, and I think it'll work a lot more smoothly than before.

As for AA, I can't really comment; I'm only in the know with PoE/EB. :) Check out the General forums though, as there might be a thread or two about general discussion.
 
since the update today the boot keeps in some longer fights items behind, the last 3 items was superior blood magic a chaos and a alchi...
Kombat distance 150 but i use as well a script to zoom more away

And the bot wont use anymatet weapon anylonger...

Arctical amor works fine now, an other question: dosnt the bot support double spelltotem?
The one for the skeletons works fine bot the other one is set on the range skill and just get spammed.
 
Last edited:
since the update today the boot keeps in some longer fights items behind, the last 3 items was superior blood magic a chaos and a alchi...
Kombat distance 150 but i use as well a script to zoom more away

And the bot wont use anymatet weapon anylonger...

Arctical amor works fine now, an other question: dosnt the bot support double spelltotem?
The one for the skeletons works fine bot the other one is set on the range skill and just get spammed.

We can't support clients that make use of any hacks, as they are not allowed here. Changing the zoom in the client will affect the bot, because it affects how this game works with target highlighting.

If the bot combat chains away from an item, it will go back and pick it up, so make sure you watch the entire run. The only exception is if it's not in the grind zone, in which case it might leave something behind as it's moving towards the grind zone itself. The priority of actions is combat -> items -> chests within 50 units, and then all previously know locations).

The CR does not support double spell totem, and I say CR, because combat is not handled by the bot itself. The default CR, ExampleRoutine, contains the logic that the bot executes for combat. :)

I'll double check animate weapon, but make sure you understand how the skill works in terms of the items required and your current skill level! It's an easy mistake to make, as I saw when I first tested it.
 
Is there a list of the constant strings that are used by the bot?

I want to detect if monsters that are attacking me have the elemental reflect aura with
monsters.Any(m => m.HasAura("") && m.IsTargetingMe);
but i do not know the correct aura string.

Or is there a better way of achieving what I'm trying to do with m.HasAura("") without the hardcoded use of strings?

Edit: I found this file. Is it up to date?
 
Last edited:
Status
Not open for further replies.
Back
Top