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

[Discontinued] [Plugin] Quest Plugin 2.0

I personally call CloseBlockingWindows every time I use movement to avoid such situations, because you never know what can happen. It's not hard to add, won't break anything and make's life easier in case of not your's plugin fault.
I didn't feel the need of posting full log because I already checked it before posting on the forum. I have enough knowledge to lurk trough the logs and code (made a visual studio project of QuestPlugin so it's easier to check). Wanted to save your time so I posted a ready solution.

IMHO CloseBlockingWindows should be called internally in every movement function. PHM is not blocking keyboard clicks so that would be logical. But pushedx would need to see that post to do that (or block keyboard too).


EDIT: The Black Core issue was propably caused by PoESmoother I've used for testing, already mentioned it somewhere.

I trust you it can do everything without interaction. I even merged optional and main tasks today (after posting the line the shitstorm is going about!) to do them at once. AutoEquip is next on my todo list :)

Default Tasks Already call close blocking windows.

Calling Close All Blocking windows will have an adverse effect on other's plugins. How?

For instance.
Task A is someone else's
Task B is yours
Task C is someone else's

Task A is some stash task, Task B is your Stash Buddy, Stash C requires stash to be open

You will never be able to account for what task requires what.

Task A finishes, task B closes window, then opens stash again.

Task C is a divination trader plugin , it requires stash to be open and closed when it moves.

So since it already closed stash because task B called it when it started, CPU cycles wasted in opening stash again. Task C Needs stash open when whit drawing, and closed when moving, and it does just that when it's needed to close all windows, Never at the start of a task.

Do logic when needed, not in case it's needed.

You make your work with others that have been there before you, not make others change their work to accommodate you. The underlying issue is not adding a line of code, it's the pretense of telling someone to change their logic to match yours, which cannot happen when deving. Each person has their own style, make yours work with, not make someone work their for you.

What you said you called close blocking windows when you move. If you look at my task, close blocking windows, will always get called by default task, always. There's no reason for me to add another a 5th wheel to a 4 wheel car. I make it work with the assumption everyone will run default task, it has worked thus far and with other plugins when needed. You need to add close blocking windows to the end of your stash task, because you called the window to be opened in the first place.


PHM is used to send keys to the client to emulate actions, EB does not use packets or anything, because that would get us banned. PHM is meant so no one should touch the bot when it's running. If you need to adjust something, stop the bot do the adjustment and run again. If you can't do the with your plugin, you need to rethink your logic, because it's achievable.


The reason I separated the quests to 2 sections is because I felt it would give more control to the user, some wanted to rush through content, some wanted just to get the side quests done, some wanted both. I opted out the latter because i would cause issues with users posting about things not working, it's doing this quest before that quest. No, not going to have any of that.

Gl on auto equip, we've got one for a year or so, the underlying logic has always been the same consensus, too many variables to account for, and equipment won't change much in end game, leveling, yes, it will change a lot. But a character spends 10% of his time leveling, and the rest end game. Why bother, rather spend time automating thing we can, so we can have time to make more things to automate more things, Auto-mate-ception.
 
Default Tasks Already call close blocking windows.
Gl on auto equip, we've got one for a year or so, the underlying logic has always been the same consensus, too many variables to account for, and equipment won't change much in end game, leveling, yes, it will change a lot. But a character spends 10% of his time leveling, and the rest end game. Why bother, rather spend time automating thing we can, so we can have time to make more things to automate more things, Auto-mate-ception.

That's what I want, autoequip only on leveling to not babysit several accounts for the whole day and gear them every 30 minutes. With larger amount of accounts that's going to be tiring.
 
That's cool but don't consider yourself as a competent dev, pushedx will crush you Kappa. EVERY FUCKING DAY THIS GUY HURTS OUR SHIT DEVS FEELINGS! jk bra. But still, QuestPlugin don't really have issues with blocking windows.

And tbh, now that AIF is pretty much working fully (well stil some bugs maybe, and still have few things to modify but it shouldn't take long) I'll work on QuestBot, specific to questing. My testing for A1 went pretty well, just gathering ideas from the devs to make it better :)
I would say most needed feature while leveling is gear swap but since it would be too big feature to implement maybe potion swapper?
You choose what potion you need ie. 2x life 2x mana 1x quicksilver and bot will upgrade if he find better potion.
Still it might be a lot of code and maybe deserve alone plugin.
If u need something from Act I Normal maybe:
- Wear quicksilver from medicine chest if u dont have it already.
- Buy cold res ring before Merveil fight if available at vendor.
 
That's what I want, autoequip only on leveling to not babysit several accounts for the whole day and gear them every 30 minutes. With larger amount of accounts that's going to be tiring.
IDK what build you are using, but levelling with a customized CR makes the game cakewalk. I'll hold myself to getting a PoC.
 
IDK what build you are using, but levelling with a customized CR makes the game cakewalk. I'll hold myself to getting a PoC.

With no items at all? I can't believe that you can get to act4 merciless ungeared without 3000 deads.
 
With no items at all? I can't believe that you can get to act4 merciless ungeared without 3000 deads.

NAKED! jk, no but you can still every act alch some shit to make things happen, at lower levels you tend to get affixes pretty easily since there's not a lot. little res, maxlife.

I usually end up on malachai with around 50 deaths overall (bosses are bitches
 
NAKED! jk, no but you can still every act alch some shit to make things happen, at lower levels you tend to get affixes pretty easily since there's not a lot. little res, maxlife.

I usually end up on malachai with around 50 deaths overall (bosses are bitches

With my uniques deadly attacks avoider (didn't name it yet xD But UDAA souds epic, right?) I've got 20 deads with gearing in A1N and A1-2C (I dont remember).
Thanks for the alching idea, I may use it somehow.
 
With my uniques deadly attacks avoider (didn't name it yet xD But UDAA souds epic, right?) I've got 20 deads with gearing in A1N and A1-2C (I dont remember).
Thanks for the alching idea, I may use it somehow.

Well yeah the really huge thing the bot lacks actually is some dodging stuff, else we're in a good way. I opened QuestBot project this morning, tweaked few things and added last core tasks to the manager, I'll now work on full quest handling, I'm still gathering thoughts (devs, not random bullshit :D) about the best way to handle and the data that has to be exposed for plugins. Few tweaks for the core tasks and I guess I'll start working on GUI after that :) coding quest behaviors will be easy now that everything is set up. I can grab data from QP aswell (not the logic, dbf is an ass :D)

If you have any suggestion code-wise about the best way to handle objects related to quests, let me know.
 
You mean how to efficiently find them on the ground or turn them to the NPC's?
 
You mean how to efficiently find them on the ground or turn them to the NPC's?

More like the optimal "structure" to adopt to have everything ready for plugins to catch QB's stuff.

I'll have a generic turn-in task so that's fine.
 
I'm having problems in specific problem.
I'm standing at Twilight Strand Cruel, but already have the Act done, so it should go to the town. But instead the bot is taking the waypoint and is porting to Normal Highgate. Then it's taking portal To cruel and we are again in Twilight Strand. Neverending story until I stop the bot.

Looks like OldGrindBot is derping with changing waypoints.

Code:
[TravelToGrindZoneTask] GrindZoneId = 2_1_3.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_1.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_town.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_2.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_3.
[TakeWaypointTo] 1_4_town
[AddAtFront] Now adding [Act1MainTasks] This task will take care of Act 1 Main Quests..
[Act1MainTasks] We're Heading To Act 2
[Act1MainTasks] Looks Like We Came from a previous Difficulty, going to town.
Adding location ["Waypoint"][143] = {310, 632} for area [0xF6C5C671]
[ResetAnchorPoint] Setting AnchorPoint to {295, 604} for 4140156529.
[ResetAnchorPoint] Setting CurrentAnchorPoint to {295, 604} for 4140156529.
[HandleA2Q9] The current area does not contain the quest. Skipping execution until a restart or area change.
[HandleA2Q11] Now skipping the task since we're not in Act 2.
[HandleSewers] We don't have the necessary Sewer Keys to interact with the Sewer Grating.
[HandleUndyingBlockage] We don't have the necessary Infernal Talc to interact with the Undying Blockage.
[HandleLockedDoor] We don't have the necessary Tower Key to interact with the Locked Door.
[HandleDeshretSeal] We don't have the necessary Deshret's Seal to interact with the Deshret's Seal.
[HandleAllFlame] We don't have the necessary Allflame to give to Fairgraves.
[Act1MainTasks] Logic
[Act1MainTasks] We're Heading To Act 2
[Act1MainTasks] Looks Like We Came from a previous Difficulty, going to town.
[Remove] Now removing [Act1MainTasks].
[QuestPluginHelperFunctions] Remove Task Act1MainTasks success.
[Act1MainTasks] Logic End, removing myself
[Act1MainTasks] We're Heading To Act 2
[Act1MainTasks] Looks Like We Came from a previous Difficulty, going to town.
[WithdrawTask] We cannot withdraw items out of town/hideout. Skipping this task until an area change or restart.
[TagWaypointTask] Now skipping the task because we already have the waypoint for this area.
[HandleA2Q9b] The current area does not contain the quest. Skipping execution until a restart or area change.
[HandleA3Q1] The current area does not contain the quest. Skipping execution until a restart or area change.
[HandleGlyphWall] The current area does not contain the quest. Skipping execution until a restart or area change.
[HandleDeshretSpirit] The current area does not contain the quest. Skipping execution until a restart or area change.
[TravelToGrindZoneTask] GrindZoneId = 2_1_3.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_1.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_town.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_2.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_3.
[TakeWaypointTo] 1_4_town
[LatencyTracker] HighestLatency: 200
[MoveToLocation] Now moving towards {310, 632}. We have been performing this task for 00:00:00.2595753.
[MoveToLocation] Now moving towards {310, 632}. We have been performing this task for 00:00:00.3700128.
[MoveToLocation] Now moving towards {310, 632}. We have been performing this task for 00:00:00.4945272.
[MoveToLocation] Now moving towards {310, 632}. We have been performing this task for 00:00:00.6189756.
[InteractWith] Now attempting to highlight 143.
[InteractWith] Now attempting to interact with 143.
[WaitForWorldPanel]
[WaitForWorldPanel] We have been waiting 00:00:00.0001458 for the world panel to open.
[WaitForAreaChange]
[WaitForAreaChange] We have been waiting 00:00:00.0001632 for an area change.
[WaitForAreaChange] We have been waiting 00:00:00.1229878 for an area change.
[WaitForAreaChange] We have been waiting 00:00:00.2492230 for an area change.
[WaitForAreaChange] We have been waiting 00:00:00.3648660 for an area change.
[WaitForAreaChange] We have been waiting 00:00:00.4877677 for an area change.
[WaitForAreaChange] We have been waiting 00:00:00.6117317 for an area change.
[ExilePather] Now reloading the pathfinder.
[GetPathfindingData] Now creating the pathfinding data.
[GetPathfindingData] The pathfinding data has been created (00:00:00.0458246).
[ExilePather] Now creating the navmesh.
[ExilePather] The navmesh has been created.
[ExilePather] The pathfinder has been reloaded.
[GridExplorer] AutoResetOnAreaChange is being set to True.
[GridExplorer] TileKnownRadius is being set to 7.
[GridExplorer] TileSeenRadius is being set to 5.
[GridExplorer] AutoResetOnAreaChange is being set to False.
[GridExplorer] Now segmenting the current area.
[GridExplorer] Area segmentation complete 00:00:00.2525634.
[CommonEvents] core_area_changed_event
[ResurrectTask] Now resetting task state.
[HandleDoorsTask] Now resetting task state.
[ChanceItemsTask] Now resetting task state.
[SellTask] Now resetting task state.
[RecipeTask] Resetting task's state
[GCPRecipeTask] Now resetting task state.
[WithdrawTask] Now resetting task state.
[HandleAllCurrencyTask] Now resetting task state.
[ReturnToGrindZoneTask] Now resetting task state.
[TagWaypointTask] Now resetting task state.
[UseLooseCandleTask] Now resetting task state.
[UnblockCorruptedAreaTransitionTask] Now resetting task state.
[TakeCorruptedAreaTask] Now resetting task state.
[HandleA2Q9] Now resetting task state.
[HandleA2Q9b] Now resetting task state.
[HandleA2Q11] Now resetting task state.
[HandleA3Q1] Now resetting task state.
[HandleSewers] Now resetting task state.
[HandleUndyingBlockage] Now resetting task state.
[HandleLockedDoor] Now resetting task state.
[HandleDeshretSeal] Now resetting task state.
[HandleGlyphWall] Now resetting task state.
[HandleDeshretSpirit] Now resetting task state.
[HandleAllFlame] Now resetting task state.
[TravelToGrindZoneTask] Now resetting task state.
[TravelThroughBossAreasTask] Now resetting task state.
[EnterArenaTask] Now resetting task state.
[TravelThroughBossAreasTask] Now resetting task state.
[TrackMoreMobs] Now resetting task state.
[HandleMerveilArea] Now resetting task state.
[HandleVaalArea] Now resetting task state.
[HandlePietyArea] Now resetting task state.
[HandleDominusArea] Now resetting task state.
[HandleKaomArea] Now resetting task state.
[HandleDaressoArea] Now resetting task state.
[HandleWeaverArea] Now resetting task state.
[HandleVaalVesselTask] Now resetting task state.
[TemporaryPickedUpRecipePieces] Flushing data...
[GemLeveler] Now resetting task state.
[QuestPlugin] Updating Quest because of Area Changed Event.
[QuestPluginHelperFunctions] Tasks Removal Starting
[QuestPluginHelperFunctions] RemoveAllActTasks Finished
[QuestPlugin] Updating Quest Please Wait...
[QuestPlugin] +0 Quest Id: [a4q1] State: [0] Name: [The Eternal Nightmare] [Complete]
[QuestPlugin] + Quest Text: [Quest Complete - You have entered the Black Core and killed Malachai.]
[QuestPlugin] +1 Quest Id: [a4q2] State: [1] Name: [Breaking the Seal] []
[QuestPlugin] + Quest Text: [Quest Complete - You have slain Voll and used Deshret's Banner to break her Seal and reopen the Mines. Talk to Oyun in town for a reward.]
[QuestPlugin] +2 Quest Id: [a4q3] State: [1] Name: [The King of Fury] []
[QuestPlugin] + Quest Text: [Quest Complete - You have killed Kaom and delivered the Eye of Fury to Dialla. Talk to her in town for a reward.]
[QuestPlugin] +3 Quest Id: [a4q4] State: [1] Name: [The King of Desire] []
[QuestPlugin] + Quest Text: [Quest Complete - You have killed Daresso and delivered the Eye of Desire to Dialla. Talk to her in town for a reward.]
[QuestPlugin] +4 Quest Id: [a4q5] State: [0] Name: [Corpus Malachus] [Complete]
[QuestPlugin] + Quest Text: [Quest Complete - You have found Malachai's three organs and delivered them to Piety.]
[QuestPlugin] +5 Quest Id: [a4q6] State: [0] Name: [An Indomitable Spirit] [Complete]
[QuestPlugin] + Quest Text: [Quest Complete - You have freed the ancient spirit of Sekhema Deshret and received a Passive Skill Point and two Passive Respec Points from Tasuni.]
[QuestPlugin] Finished Dumping Quest =), it took 463 Milliseconds to complete.
[AddAtFront] Now adding [Act4MainTasks] This task will take care of Act 4 Main Quests..
Adding location ["Stash"][105] = {223, 502} for area [0xCEE78163]
Adding location ["Waypoint"][110] = {281, 492} for area [0xCEE78163]
Adding location ["The Aqueduct"][77] = {229, 389} for area [0xCEE78163]
Adding location ["The Mines Level 1"][79] = {300, 605} for area [0xCEE78163]
[ResetAnchorPoint] Setting AnchorPoint to {274, 485} for 3471278435.
[ResetAnchorPoint] Setting CurrentAnchorPoint to {274, 485} for 3471278435.
[HandleA2Q9] The current area does not contain the quest. Skipping execution until a restart or area change.
[HandleA2Q11] Now skipping the task since we're not in Act 2.
[HandleSewers] We don't have the necessary Sewer Keys to interact with the Sewer Grating.
[HandleUndyingBlockage] We don't have the necessary Infernal Talc to interact with the Undying Blockage.
[HandleLockedDoor] We don't have the necessary Tower Key to interact with the Locked Door.
[HandleDeshretSeal] We don't have the necessary Deshret's Seal to interact with the Deshret's Seal.
[HandleAllFlame] We don't have the necessary Allflame to give to Fairgraves.
[HandleOyunInHighGate] AddBefore TravelToGrindZoneTask Success.
[Act4MainTasks] We Need talk to Oyun in Highgate, going to her now.
[Remove] Now removing [Act4MainTasks].
[QuestPluginHelperFunctions] Remove Task Act4MainTasks success.
[Act4MainTasks] Logic End, removing myself, return false.
[Act4MainTasks] We Need talk to Oyun in Highgate, going to her now.

EDIT: Same thing is happening from act 3 to act 4
EDIT2: It's also happening if you are standing in the Twilight Strand but the Act is not yet finished. It says it's heading to marveil but again OldGrindBot is derping.
 
Last edited:
I'm having problems in specific problem.
I'm standing at Twilight Strand Cruel, but already have the Act done, so it should go to the town. But instead the bot is taking the waypoint and is porting to Normal Highgate. Then it's taking portal To cruel and we are again in Twilight Strand. Neverending story until I stop the bot.

Looks like OldGrindBot is derping with changing waypoints.

Code:
[TravelToGrindZoneTask] GrindZoneId = 2_1_3.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_1.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_town.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_2.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_3.
[TakeWaypointTo] 1_4_town
[AddAtFront] Now adding [Act1MainTasks] This task will take care of Act 1 Main Quests..
[Act1MainTasks] We're Heading To Act 2
[Act1MainTasks] Looks Like We Came from a previous Difficulty, going to town.
Adding location ["Waypoint"][143] = {310, 632} for area [0xF6C5C671]
[ResetAnchorPoint] Setting AnchorPoint to {295, 604} for 4140156529.
[ResetAnchorPoint] Setting CurrentAnchorPoint to {295, 604} for 4140156529.
[HandleA2Q9] The current area does not contain the quest. Skipping execution until a restart or area change.
[HandleA2Q11] Now skipping the task since we're not in Act 2.
[HandleSewers] We don't have the necessary Sewer Keys to interact with the Sewer Grating.
[HandleUndyingBlockage] We don't have the necessary Infernal Talc to interact with the Undying Blockage.
[HandleLockedDoor] We don't have the necessary Tower Key to interact with the Locked Door.
[HandleDeshretSeal] We don't have the necessary Deshret's Seal to interact with the Deshret's Seal.
[HandleAllFlame] We don't have the necessary Allflame to give to Fairgraves.
[Act1MainTasks] Logic
[Act1MainTasks] We're Heading To Act 2
[Act1MainTasks] Looks Like We Came from a previous Difficulty, going to town.
[Remove] Now removing [Act1MainTasks].
[QuestPluginHelperFunctions] Remove Task Act1MainTasks success.
[Act1MainTasks] Logic End, removing myself
[Act1MainTasks] We're Heading To Act 2
[Act1MainTasks] Looks Like We Came from a previous Difficulty, going to town.
[WithdrawTask] We cannot withdraw items out of town/hideout. Skipping this task until an area change or restart.
[TagWaypointTask] Now skipping the task because we already have the waypoint for this area.
[HandleA2Q9b] The current area does not contain the quest. Skipping execution until a restart or area change.
[HandleA3Q1] The current area does not contain the quest. Skipping execution until a restart or area change.
[HandleGlyphWall] The current area does not contain the quest. Skipping execution until a restart or area change.
[HandleDeshretSpirit] The current area does not contain the quest. Skipping execution until a restart or area change.
[TravelToGrindZoneTask] GrindZoneId = 2_1_3.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_1.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_town.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_2.
[TravelToGrindZoneTask] PathToGrindZone = 2_1_3.
[TakeWaypointTo] 1_4_town
[LatencyTracker] HighestLatency: 200
[MoveToLocation] Now moving towards {310, 632}. We have been performing this task for 00:00:00.2595753.
[MoveToLocation] Now moving towards {310, 632}. We have been performing this task for 00:00:00.3700128.
[MoveToLocation] Now moving towards {310, 632}. We have been performing this task for 00:00:00.4945272.
[MoveToLocation] Now moving towards {310, 632}. We have been performing this task for 00:00:00.6189756.
[InteractWith] Now attempting to highlight 143.
[InteractWith] Now attempting to interact with 143.
[WaitForWorldPanel]
[WaitForWorldPanel] We have been waiting 00:00:00.0001458 for the world panel to open.
[WaitForAreaChange]
[WaitForAreaChange] We have been waiting 00:00:00.0001632 for an area change.
[WaitForAreaChange] We have been waiting 00:00:00.1229878 for an area change.
[WaitForAreaChange] We have been waiting 00:00:00.2492230 for an area change.
[WaitForAreaChange] We have been waiting 00:00:00.3648660 for an area change.
[WaitForAreaChange] We have been waiting 00:00:00.4877677 for an area change.
[WaitForAreaChange] We have been waiting 00:00:00.6117317 for an area change.
[ExilePather] Now reloading the pathfinder.
[GetPathfindingData] Now creating the pathfinding data.
[GetPathfindingData] The pathfinding data has been created (00:00:00.0458246).
[ExilePather] Now creating the navmesh.
[ExilePather] The navmesh has been created.
[ExilePather] The pathfinder has been reloaded.
[GridExplorer] AutoResetOnAreaChange is being set to True.
[GridExplorer] TileKnownRadius is being set to 7.
[GridExplorer] TileSeenRadius is being set to 5.
[GridExplorer] AutoResetOnAreaChange is being set to False.
[GridExplorer] Now segmenting the current area.
[GridExplorer] Area segmentation complete 00:00:00.2525634.
[CommonEvents] core_area_changed_event
[ResurrectTask] Now resetting task state.
[HandleDoorsTask] Now resetting task state.
[ChanceItemsTask] Now resetting task state.
[SellTask] Now resetting task state.
[RecipeTask] Resetting task's state
[GCPRecipeTask] Now resetting task state.
[WithdrawTask] Now resetting task state.
[HandleAllCurrencyTask] Now resetting task state.
[ReturnToGrindZoneTask] Now resetting task state.
[TagWaypointTask] Now resetting task state.
[UseLooseCandleTask] Now resetting task state.
[UnblockCorruptedAreaTransitionTask] Now resetting task state.
[TakeCorruptedAreaTask] Now resetting task state.
[HandleA2Q9] Now resetting task state.
[HandleA2Q9b] Now resetting task state.
[HandleA2Q11] Now resetting task state.
[HandleA3Q1] Now resetting task state.
[HandleSewers] Now resetting task state.
[HandleUndyingBlockage] Now resetting task state.
[HandleLockedDoor] Now resetting task state.
[HandleDeshretSeal] Now resetting task state.
[HandleGlyphWall] Now resetting task state.
[HandleDeshretSpirit] Now resetting task state.
[HandleAllFlame] Now resetting task state.
[TravelToGrindZoneTask] Now resetting task state.
[TravelThroughBossAreasTask] Now resetting task state.
[EnterArenaTask] Now resetting task state.
[TravelThroughBossAreasTask] Now resetting task state.
[TrackMoreMobs] Now resetting task state.
[HandleMerveilArea] Now resetting task state.
[HandleVaalArea] Now resetting task state.
[HandlePietyArea] Now resetting task state.
[HandleDominusArea] Now resetting task state.
[HandleKaomArea] Now resetting task state.
[HandleDaressoArea] Now resetting task state.
[HandleWeaverArea] Now resetting task state.
[HandleVaalVesselTask] Now resetting task state.
[TemporaryPickedUpRecipePieces] Flushing data...
[GemLeveler] Now resetting task state.
[QuestPlugin] Updating Quest because of Area Changed Event.
[QuestPluginHelperFunctions] Tasks Removal Starting
[QuestPluginHelperFunctions] RemoveAllActTasks Finished
[QuestPlugin] Updating Quest Please Wait...
[QuestPlugin] +0 Quest Id: [a4q1] State: [0] Name: [The Eternal Nightmare] [Complete]
[QuestPlugin] + Quest Text: [Quest Complete - You have entered the Black Core and killed Malachai.]
[QuestPlugin] +1 Quest Id: [a4q2] State: [1] Name: [Breaking the Seal] []
[QuestPlugin] + Quest Text: [Quest Complete - You have slain Voll and used Deshret's Banner to break her Seal and reopen the Mines. Talk to Oyun in town for a reward.]
[QuestPlugin] +2 Quest Id: [a4q3] State: [1] Name: [The King of Fury] []
[QuestPlugin] + Quest Text: [Quest Complete - You have killed Kaom and delivered the Eye of Fury to Dialla. Talk to her in town for a reward.]
[QuestPlugin] +3 Quest Id: [a4q4] State: [1] Name: [The King of Desire] []
[QuestPlugin] + Quest Text: [Quest Complete - You have killed Daresso and delivered the Eye of Desire to Dialla. Talk to her in town for a reward.]
[QuestPlugin] +4 Quest Id: [a4q5] State: [0] Name: [Corpus Malachus] [Complete]
[QuestPlugin] + Quest Text: [Quest Complete - You have found Malachai's three organs and delivered them to Piety.]
[QuestPlugin] +5 Quest Id: [a4q6] State: [0] Name: [An Indomitable Spirit] [Complete]
[QuestPlugin] + Quest Text: [Quest Complete - You have freed the ancient spirit of Sekhema Deshret and received a Passive Skill Point and two Passive Respec Points from Tasuni.]
[QuestPlugin] Finished Dumping Quest =), it took 463 Milliseconds to complete.
[AddAtFront] Now adding [Act4MainTasks] This task will take care of Act 4 Main Quests..
Adding location ["Stash"][105] = {223, 502} for area [0xCEE78163]
Adding location ["Waypoint"][110] = {281, 492} for area [0xCEE78163]
Adding location ["The Aqueduct"][77] = {229, 389} for area [0xCEE78163]
Adding location ["The Mines Level 1"][79] = {300, 605} for area [0xCEE78163]
[ResetAnchorPoint] Setting AnchorPoint to {274, 485} for 3471278435.
[ResetAnchorPoint] Setting CurrentAnchorPoint to {274, 485} for 3471278435.
[HandleA2Q9] The current area does not contain the quest. Skipping execution until a restart or area change.
[HandleA2Q11] Now skipping the task since we're not in Act 2.
[HandleSewers] We don't have the necessary Sewer Keys to interact with the Sewer Grating.
[HandleUndyingBlockage] We don't have the necessary Infernal Talc to interact with the Undying Blockage.
[HandleLockedDoor] We don't have the necessary Tower Key to interact with the Locked Door.
[HandleDeshretSeal] We don't have the necessary Deshret's Seal to interact with the Deshret's Seal.
[HandleAllFlame] We don't have the necessary Allflame to give to Fairgraves.
[HandleOyunInHighGate] AddBefore TravelToGrindZoneTask Success.
[Act4MainTasks] We Need talk to Oyun in Highgate, going to her now.
[Remove] Now removing [Act4MainTasks].
[QuestPluginHelperFunctions] Remove Task Act4MainTasks success.
[Act4MainTasks] Logic End, removing myself, return false.
[Act4MainTasks] We Need talk to Oyun in Highgate, going to her now.

EDIT: Same thing is happening from act 3 to act 4
EDIT2: It's also happening if you are standing in the Twilight Strand but the Act is not yet finished. It says it's heading to marveil but again OldGrindBot is derping.
This is a partial log, I need a full log, this is the 4th time I've had to iterate this, future posts without full logs are ignored.

I assumed you took the Portal to Cruel yourself? If So check oldgrindbot and see what the grind zone is.

Since you did a manual portal, this was never set.
HandleOyunInHighGate.cs

Code:
var currentTransitionString = "The Twilight Strand (Cruel)";

            if (WorldDataHelper.GetCurrentDifficulty() == Difficulty.Normal)
            {
                //OldGrindBotSettings.Instance.GrindZoneName = "The Mud Flats";
                OldGrindBotSettings.Instance.GrindZoneDifficulty = "Cruel";
            }
            if (WorldDataHelper.GetCurrentDifficulty() == Difficulty.Cruel)
            {
                currentTransitionString = "The Twilight Strand (Merciless)";
                //areaTransition = LokiPoe.ObjectManager.GetObjectByName<AreaTransition>("The Twilight Strand (Merciless)");
                //OldGrindBotSettings.Instance.GrindZoneName = "The Mud Flats";
                OldGrindBotSettings.Instance.GrindZoneDifficulty = "Merciless";
            }
            if (WorldDataHelper.GetCurrentDifficulty() == Difficulty.Merciless)
            {
                QuestPlugin.Log.InfoFormat("[{0}] All Done", Name);
                BotManager.Stop();
            }

Restart the bot in act 4 and stop touching things.

The Oldgrindbot still thinks you are in Normal difficulty, and things derp. Stop blaming things that you keep breaking. I've had this task in there since forever, there hasn't been a reported issue like this, because I fixed it prior to committing.

775ed1da9e.png


2015-11-14 - 89 Days since I touched it. In 89 Days I would assume a fairly good sample size of people have used and progressed past Normal A4.
 
Above the logs i Typed was just Loading plugins and getting Quest states.

It was in Cruel. I did check it. You can even clearly see it in The code box it want's to go to cruel but then it's getting changed back to normal.

I didn't break it because I didn't touch that part of code so stop blaming me. And it's not about Act4 files but Act1MainTasks.cs. Guh....

I've started the bot in Act 4 and I did a full log for you, as you asked. Just deleted info about currency I have in stash.

http://pastebin.com/EC2wq8xU
 
OldGrindBot goes back to the "governing area" of the area you're in when you want to go to town (via TakeWaypointToTown, which is called in TravelToGrindZoneTask). When you are in the first area of any act, the governing area is the previous act's town, so by design, OldGrindBot going to Normal Highgate from Cruel Twilight Strand is not a bug. If you take a portal from Cruel Twilight Strand (which is what happens when CreateAndTakePortalToTown is called from TravelToGrindZoneTask), you end up in Normal Highgate, not Cruel Lioneye's Watch, regardless if you have it unlocked already or not, so the waypoint logic also models that game mechanic for consistency. Basically, the logic for taking the waypoint to the governing town was to save wasting a portal when you're really close to the waypoint; not to actually travel to the next area (which while possible, requires a different TravelToGrindZoneTask implementation).
 
Above the logs i Typed was just Loading plugins and getting Quest states.

It was in Cruel. I did check it. You can even clearly see it in The code box it want's to go to cruel but then it's getting changed back to normal.

I didn't break it because I didn't touch that part of code so stop blaming me. And it's not about Act4 files but Act1MainTasks.cs. Guh....

I've started the bot in Act 4 and I did a full log for you, as you asked. Just deleted info about currency I have in stash.

http://pastebin.com/EC2wq8xU
Thanks, I didn't add the state for this occurrence, Now I will thanks to your state. Honestly, I had totally forgotten about this issue.

What you need to do to fix this is;
1 - Finish Twilight strand and start bot, it will work fine form there.

2 - Wait for an update, should be today or tomorrow. Deadpool is out tonight, so maybe tomorrow.

Thank again for the bug report.
 
OldGrindBot goes back to the "governing area" of the area you're in when you want to go to town (via TakeWaypointToTown, which is called in TravelToGrindZoneTask). When you are in the first area of any act, the governing area is the previous act's town, so by design, OldGrindBot going to Normal Highgate from Cruel Twilight Strand is not a bug. If you take a portal from Cruel Twilight Strand (which is what happens when CreateAndTakePortalToTown is called from TravelToGrindZoneTask), you end up in Normal Highgate, not Cruel Lioneye's Watch, regardless if you have it unlocked already or not, so the waypoint logic also models that game mechanic for consistency. Basically, the logic for taking the waypoint to the governing town was to save wasting a portal when you're really close to the waypoint; not to actually travel to the next area (which while possible, requires a different TravelToGrindZoneTask implementation).

At least now we know it's not a bug but feature :) Can't we somehow get the info from LokiPoe.InGameState.WorldPanel if given waypoint from choosed difficulty is discovered? It is in the UI so must be somewhere in the memory aswell. That would make the logic of switching zones much easier.

Thanks, I didn't add the state for this occurrence, Now I will thanks to your state. Honestly, I had totally forgotten about this issue.

What you need to do to fix this is;
1 - Finish Twilight strand and start bot, it will work fine form there.

2 - Wait for an update, should be today or tomorrow. Deadpool is out tonight, so maybe tomorrow.

Thank again for the bug report.

No problem, just for the next time dont judge me that I'm breaking things ;p The cause of noone ever reported it is because people are lazy or don't babysit and look how the bot works. Everybody say's that my StashBuddy works perfect but with every update I'm fixing some bugs noone catched before.


I fixed it from my side by adding this below "Looks Like We Came from a previous Difficulty, going to town." in Act1MainTasks.cs
Code:
var town = "";
                    switch (WorldDataHelper.GetCurrentDifficulty())
                    {
                        case Difficulty.Cruel:
                            town = "2_1_town";
                            break;
                        case Difficulty.Merciless:
                            town = "3_1_town";
                            break;
                    }
                    if (town != "")
                    {
                        for (var i = 0; i < 5; i++)
                        {
                            var takeWp = await Coroutines.TakeWaypointTo(town, false, 1);
                            if (takeWp == Coroutines.TakeWaypointToError.None)
                                return true;
                            Log.ErrorFormat("[{0}], Error Taking WP to {1}, try #{2}", Name, town, i);
                            if (i != 5) continue;
                            Log.ErrorFormat("[{0}], Error Taking WP to {1}, Last Try Failed.", Name, town);
                        }
                    }

And this after "We Have Killed Dominus, setting GrindZone to Act 4 The Dried Lake, working on it." in Act3MainTasks.cs
Code:
if (WorldDataHelper.GetCurrentZoneName() != "The Sarn Encampment")
                {
                    //There is no waypoint on normal+string 
                    var town = "";
                    switch (WorldDataHelper.GetCurrentDifficulty())
                    {
                        case Difficulty.Normal:
                            town = "1_3_town";
                            break;
                        case Difficulty.Cruel:
                            town = "2_3_town";
                            break;
                        case Difficulty.Merciless:
                            town = "3_3_town";
                            break;
                    }
                    if (town != "")
                    {
                        for (var i = 0; i < 5; i++)
                        {
                            var takeWp = await Coroutines.TakeWaypointTo(town, false, 1);
                            if (takeWp == Coroutines.TakeWaypointToError.None)
                                return true;
                            Log.ErrorFormat("[{0}], Error Taking WP to {1}, try #{2}", Name, town, i);
                            if (i != 5) continue;
                            Log.ErrorFormat("[{0}], Error Taking WP to {1}, Last Try Failed.", Name, town);
                        }
                    }
                }
 
Last edited:
Um we're talking about it on skype.

What i'm going to use is

Code:
LokiPoe.InstanceInfo.AvailableWaypoints

But really, won't be needed as there are ways to re-code logic fairly easily.

Edit - Also, grab that community dev tag and post back here, I think the consensus of our EB dev group, and my view, is your code is great, so we'd like you into our little possy. But IDK if it's going to be before the Big patch or after, I still have to ask around.
 
I already signed for the Community Dev group but noone dealt with it. At least I didn't get any info.
 
I already signed for the Community Dev group but noone dealt with it. At least I didn't get any info.
K let me know when, not through PM though, I never read those.

And Version #396 has resolved this issue. Update Via SVN or going here,
and Click Download on the top right.

331ae7f6be.png
 
Back
Top