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

Exiledbuddy 3.2.0 Downtime Status Thread (Part 1)

Status
Not open for further replies.

pushedx

Well-Known Member
Joined
Sep 24, 2013
Messages
4,252
Reaction score
290
In two days, Exilebuddy will be undergoing extended downtime maintenance for the 3.2.0 expansion. There is no known ETA for this downtime, but we will provide status updates in this this thread as needed as the update progresses. We expect it to be lengthy, so please be aware of that possibility.

Please Watch (click the text) this thread to receive notifications when a new post is made.

Priorities for the update (as with all updates) are to get as much of the core and commonly used APIs working again, and getting the bot functional to at least be able to run through Standard leagues (quest/map). As always, if there are major breaking client changes to certain APIs, we might remove them temporarily to not hold back the first beta deployment.

The new challenge league is much more complex and involved this time around, so support for its mechanics will be looked into during the downtime, but there most likely will be very little API support for it starting out. In other words, do not expect the initial deployment to fully, or even largely support the new league mechanics for a while, as it will most likely not happen unless we get really lucky with client changes this time around.

Once the downtime begins, our first status update is planned for Monday, March 5th, where we intend to give an overview of the state of things after working on it through the weekend. The next estimated status update date will be given then as well.

Please wait patiently for our updates to be done. We know people get anxious waiting for updates or news, and it's really boring, but these updates take a lot of time and work to handle, as they always have since we started in 2013. Downtime compensation will be given out for the days lost as usual.

Thank you for reading!
 
Exilebuddy is currently down for expected maintenance.

~1 hour until the servers come back up. (Support time marker post)
 
Status Thread #1

Less than 3 full days of downtime, and we're almost ready for our first Beta test for this new expansion!

This will be the first league in a while where we will not have much API support for the new league. That should not be surprising though, since this league is the first of its kind ever, and is much more complex than all previous leagues.

Rather than spend weeks trying to support the new league, we'll be deploying our first versions with little support for the new league mechanics, as users will still be able to quest and run maps normally in either old or new leagues.

Here is a Q/A of the most common Bestiary questions we can think of. More will be added as we come across them.

Bestiary League Specifics

Q. Can you know which beasts you've captured at least once before?
A. No. The data is stored in a complex manner and will take time to reverse.

Q. Can you know how many beasts you have captured?
A. No. The data is stored in a complex manner and will take time to reverse.

Q. Can you know your captured beasts stats/levels?
A. No. The data is stored in a complex manner and will take time to reverse.

Q. Can you know which net tier is currently equipped?
A. Yes - LokiPoe.Me.BestiaryNetVariation. This will return 0 for the lowest tier net (so add +1), then go up in value by tier.
You can then search the main inventory to find compatible nets by tier.

Q. Can you know which tier a net is?
A. Partially - Metadata check against BestiaryNet1 for Tier 1 nets, BestiaryNet2 for Tier 2, etc... More data has to be reversed from the GGPK to expose it in a nice way.

Q. Can you know the level range a net is effective for?
A. Partially - hard code the values based on what is known. More data has to be reversed from the GGPK to expose it in a nice way.

Q. Is there any API support for the Bestiary tab itself in the Challenges UI?
A. No, other than knowing the tab is selected and being able to switch to other tabs.

Q. Is "Einhar Frey" supported?
A. API wise, Yes, he is a normal NPC so you can use the NpcDialogUi API to interact with him.
Logic wise, No, QB/MB do not have tasks for interacting with him.

Q. Is purchasing nets supported?
A. API wise, Yes, use the PurchaseUi as you would any other vendor.
Logic wise, No, QB/MB do not have tasks to handle net buying.

Q. Are nets "usable" from the InventoryUi?
A. Yes - nets have a UsableComponent, so the InventoryControlWrapper.UseItem API works with them.
Code:
    var icw = LokiPoe.InGameState.InventoryUi.InventoryControl_Main;
    var inv = icw.Inventory;
    var item = inv.FindItemByFullName("Simple Rope Net");
    var res = icw.UseItem(item.LocalId);
    Log.InfoFormat("UseItem: {0}", res);

Q. Can you know how many nets you have in your inventory without opening the InventoryUi?
A. Yes -
Code:
    var inv = LokiPoe.InstanceInfo.GetPlayerInventoryBySlot(InventorySlot.Main);
    var item = inv.FindItemByFullName("Simple Rope Net");
    var count = item.StackCount;

Q. Is traveling to the Menagerie supported from the WorldUi API?
A. Yes - WorldUi.GoToMenagerie

Q. Is it possible to know if the Menagerie has been unlocked yet, like hideouts?
A. No, this is not supported yet.

Q. Is the Blood Altar UI supported?
A. No. This UI might not ever be supported from the API side, but we'll see as time goes on.

Q. Is it possible to know which recipes have been unlocked?
A. No. The data is stored in a complex manner and will take time to reverse.

Q. Is the "Throw Net" skill information accessible?
A. Yes, however, the normal Skill API cannot be used with it, since it's a special skill -
Code:
var captureMonster = LokiPoe.Me.GetSkill(ActiveSkillsEnum.capture_monster);
if(captureMonster != null)
{
    Log.Info(captureMonster.IsOnCooldown);
}

Q. How to use the "Throw Net" skill?
A. There is not a dedicated API to wrap the logic yet, however, users can implement it:
Code:
// 1 - Highlight the monster you want to capture: LokiPoe.Input.HighlightObject(...)
// 2 - Check to make sure the monster you want is actually highlighted since input is imprecise: LokiPoe.InGameState.CurrentTarget
// 3 - Use the skill by pressing the bound key for the throw net skill: LokiPoe.Input.SimulateKeyEvent(LokiPoe.Input.Binding.throw_net, true, false, false)

Q. Is it possible to process the minimap icons?
A. Yes, check for "BestiaryRareMonster" or "BestiaryLegendaryBeast", these can be found by dumping MinimapIcons from the DumpTab -
Code:
foreach(var icon in LokiPoe.InstanceInfo.MinimapIcons)
{
    var no = icon.NetworkObject;
    Log.InfoFormat("[{0}] {1} - {2}", icon.MinimapIcon.Name, icon.ObjectId, no != null ? no.Metadata : "<Outside Spawn Range>");
}

An example output:
[Entrance] 858 - <Outside Spawn Range>
[BestiaryRareMonster] 891 - Metadata/Monsters/Rhoas/RhoaSkeleton

Q. Is it possible to process Bestiary mods on monsters?
A. Yes, the normal Affix system can be used (Monster.ExplicitAffixes / Monster.ImplicitAffixes).
TierString: , Level: 1, Category: BestiaryMod13, InternalName: BestiaryModVultureBomb1, DisplayName: Putrid Flight, IsHidden: False, IsPrefix: False, IsSuffix: False, Stats: MaximumLifePosPct [100 - 100], , MonsterDroppedItemRarityPosPct [1000 - 1000], , MonsterDroppedItemQuantityPosPct [700 - 700], , 0 [0 - 0], , Values: 100, 1000, 700

Q. Is it possible to see all Bestiary mods?
A. Yes - dump Mods from the DumpTab, then process ModType.Bestiary or string search for anything with "Bestiary" in the InternalName.
[11620] [] Level: 1, Category: BestiaryMod1, InternalName: BestiaryModFire1, DisplayName: Aspect of the Hellion, ModType: Bestiary, TypeName: BestiaryMod1, Stats: MaximumLifePosPct [100 - 100], , MonsterDroppedItemRarityPosPct [1000 - 1000], , MonsterDroppedItemQuantityPosPct [700 - 700], , 0 [0 - 0], , Tags: bestiary_wilds, default

Current Patch Notes (includes updates from 3.1 that weren't deployed)

* Updates for 3.2.0.1 - 3.2.0.6

[QuestBot]
- Added support for "Vilenta's Vengeance" quest in Act 10.

[MapBot]
- Now bot will correctly take sacrifice fragments from Fragment stash tab.

[EXtensions]
- Renamed Inventories.FastMoveFromCurrencyTab to FastMoveFromPremiumStashTab. All users must update their code where its used.

* InstanceInfo.MinimapIcons added to expose icons on the minimap.

* ActionKeys updated with missing keys: open_atlas_screen, open_cosmetics_inventory, open_guidebook_panel, open_mtx_stash, open_pantheon_panel, throw_net.

* The character list in AutoLogin will now display names in alphabetical order.

* ChallengesUi updates for some Bestiary tab (not data) processing.

* DatWorldAreaWrapper.IsMenagerieArea added. This is considered a "combat area".
* WorldUi.GoToMenagerie added.

* ContextMenu.LeaveCurrentParty added.
* ContextMenu.VisitMenagerie added.

* Skill.CurrentlyRequiresPercentPower added, as an aurafied curse would return false with RequiresPercentPower.
* Various DatWorldAreaWrapper id checking updates to account for inconsistent naming in the game.
* Skill.CastTime updated to handle a stat warcries use.

* NotificationHud revamps:
** NotificationType updated to now include: Guild, Info, SoloPvP, PartyPvP
** NotificationData added to store data for the different notification events (AccountName, CharacterName, CharacterLevel, CharacterArea, Information, GuildName)
** ProcessNotificationEx delegate added to represent the new user handler. It takes a NotificationData and a NotificationType, and should return a bool if the notification should be accepted or dismissed (like before).
** HandleNotificationResult.NoHandler added for a null check on the user handler when calling HandleNotificationHelper/HandleNotificationHelperEx.
** HandleNotificationEx added to handle more notifications and expose more data than before.
** HandleNotification is now marked as obsolete, but will not be removed until 3.2+.
** Various caching improvements made to strings that come from LookupClientString.

* LoginState.UnlockAccountUi added.
** Cancel function added to click the button.
** ResendEmail function added to click the button.
** Unlock function added to click the button.

* LoginState.UnlockAccountUiResult enum added

* LoginState.IsEnterUnlockCodeDialogVisible is now marked as Obsolete, use LoginState.UnlockAccountUi.IsOpened instead

We expect to deploy a user testable Beta within the next day or so, but since the game is still patching a lot, we need things to settle down a bit as each client patch will break the bot, and users will have to wait for an updated version.

Please remember the first few weeks of any expansion come with a lot of random downtime from game patches or server instability, so some users might want to wait for things to settle down before they try to jump in.

This expansion had a lot of random internal client changes, so we expect there to be hidden bugs or various broken APIs that we've missed. We rely on users to report these issues so we can look into them, but for the most part, the first version should be in an acceptable working condition.

We thank users for their patience, and we hope to be back up and running within a day or two, barring any large client patches that get deployed as this league has gotten off to a really shaky start, and there seems to be some design changes being looked at.
 
Betra #1677 has just been deployed (Release will follow shortly)! Please report any new issues in the Support forum along with complete logs.

Downtime compensation will be given out by Support soon. We once again thank users for their patience.
 
Known Issues

-
In Beta, a call to QuestManager.CompletedQuests.Instance.Verify was missed in QuestBot and will be re-added in the next update. Release already contains the update.

- InstanceInfo.WeaponSet no longer works, because the game no longer updates it 3.2+. I assume this is a bug as if you notice in the client, the UI never changes between your weapon sets, and instead just swaps weapons. I assume GGG will fix this once it's brought to their attention.

- Dat.BestiaryCapturableMonsters can be used to know the base metadata for monsters that can be captured (Metadata/Name is exposed), but specific information about your Bestiary is not currently possible.
 
Last edited:
All eligible keys got extended due to recent downtime
 
Beta #1680 has been deployed and a new Release will follow shortly for tonight's patch!
 
Beta #1686 (Release #344 will start building soon) has just been deployed for the 3.2.1.1 update!

While it's not expected anything to have broken, please be sure to report any issues with full logs in the Support forum as usual.
 
Patch 3.2.1.2 was just deployed, so new versions will be re-deployed in an hour or two.
 
Beta #1687 (Release #346 will start building soon) have been deployed for the 3.2.1.2 update!
 
Release #347 is now being redeployed for last night's updates. It was built, but not actually deployed.

We're sorry for the inconvenience!
 
Just as a reminder, there will be minor maintenance this week for the 3.2.1b patch announced: http://www.pathofexile.com/forum/view-thread/2116063

In the next update, the first phase of the Bestiary API will be included for users to start testing with it. The current patch notes are as follows:
  • ProphecyPopupUi added to know when that UI is showing. The Dismiss function can be used to dismiss it.
  • BeastCapturedUi added to know when that UI is showing.
  • NewBeastRecipeUi added to know when that UI is showing. The Dismiss function can be used to dismiss all pending UIs.
  • Monster class updates for Bestiary:
    • Properties added: Bestiary_IsEnraged, Bestiary_IsTrapped, Bestiary_IsCaptured, Bestiary_IsDisappearing. Exposes the various auras on monsters during the capture process.
    • Bestiary_CapturableMonstersWrapper returns the DatBestiaryCapturableMonstersWrapper (or null) associated with a capturable monster.
    • Bestiary_IsCapturable returns if the monster is capturable or not.
    • Bestiary_HasBeenNettedAlready returns if the monster species has been netted already or not (returns true for non-capturable monsters).
  • Dat.BestiaryCapturableMonsters updated with the new data format.
  • DumpTab can now dump BestiaryCapturableMonsters.
  • DumpTab can now debug ProphecyPopupUi, BeastCapturedUi, NewBeastRecipeUi.
  • InstanceInfo.IsBestiaryActive added to know if Bestiary is active in the current league.
  • InstanceInfo.Bestiary static class added:
    • IsActive is an alias for IsBestiaryActive
    • Function 'HasNetted' can be given a metadata of a monster to know if it's species has been netted already or not.
    • Function 'IsCapturable' can be given a metadata, and will find a DatBestiaryCapturableMonstersWrapper associated with that monster if it's capturable.

Since the data is still being worked on, and Bestiary mechanics being reversed, we will still not have any official plugins related to it, but community developers who want a head start on making their own Bestiary compatible content will be able to get started soon!
 
Beta #1694 has just been deployed for the 3.2.1.4/5 patches released tonight! Release will be deployed soon as well.

Included is the next set of Bestiary data updates as mentioned in the previous post, but please read the patch notes for all the extra additions worked in. Further Bestiary data updates are expected soon as well once some of the more complex data is worked out.
 
Just as an pre-announcement since there might be a patch Monday evening, the next Beta/Release will contain numbers updates. The current changelog is as follows.

* PlayerComponent.HasMenagerie added. Player now exposes HasMenagerie and HasHideout.
* Bestiary.BuildCache added to build the Bestiary data cache. This needs to be called once before accessing any Bestiary data (such as captured monsters, known recipes, if a monster is capturable, etc... ideally in Start).
* The type BestiaryCapturedMonsterMod was added to wrap a captured monsters mods.
* BestiaryCapturedMonster.Mods added to hold the monster's mods.
* Bestiary.UnlockedRecipes added to expose unlocked recipes.
* DatModsWrapper.ModId added for the lookup required for Bestiary data.
* BestiaryCapturedMonster.FullName added to expose the full name of the monster (for magic/rares)
* BestiaryCapturedMonster.Word1, Word2, Word3 added to expose the full name parts for the monster.
* Legacy.PythonExample now registers a default hotkey to run code: ALT + SHIFT + F
* CloseBlockingWindows now checks for ProphecyPopupUi and NewBeastRecipeUi.
* BotManager.CurrentBot is now obsolete. Use BotManager.Current instead.
* RoutineManager.CurrentRoutine is now obsolete. Use RoutineManager.Current instead.
* Utility.BroadcastMessage/BroadcastLogicRequest now process MoverManager.
* New player mover system integrated, but not enabled yet:
** Settings -> Movers -> * Manager* can be used to enable/disable the new system, and switch between player movers.
** The DefaultPlayerMover class is now marked as obsolete as it will be removed in the future.
** PlayerMover is now marked as obsolete as it will be removed in the future.
** IMover interface added. It's like IRoutine with the addition of the MoveTowards coroutine like the old IPlayerMover.
** MoverManager added - it mirrors RoutineManager, except it's for the new IMover interface.
** Gui/Settings updated to manage the current IMover like how the current IRoutine is handled.
** Added Legacy.OldPlayerMover, which is simply the DefaultPlayerMover converted to IMover
** Additional skill based IMover implementations will be added later after the new system is switched to.
** PlayerMover.UseMoverManager bool property added to allow users to use the new MoverManager class without breaking all their existing code. When set to 'true', using Message/MoveTowards will forward the calls to MoveManager.

Most users will not have to worry about these changes unless they are early adopters of community Bestiary code, or want to make new PlayerMover code.

First, for Bestiary, there's a lot of data, and a lot of lookups that have to be done for the system to work. As a result, the Bestiary.BuildCache function was added so users can control when the lookups are built. There's still some unknowns with how the client processes Bestiary data, so for now users must manually call that function in their code since the API cannot make assumptions of when it can be called yet. Further Bestiary data updates and changes are planned as more progress is made with it.

Second: The upcoming player mover changes are talked about here https://www.thebuddyforum.com/threads/notice-upcoming-playermover-breaking-changes.418088/

It might look like a long scary set of changes, but it's basically just updating the old legacy PlayerMover system to use the same system as all other user driven code, without having to jump through any more hoops from the dev standpoint. From the end user standpoints, the concept of the player mover will be more transparent whereas right now it's something that's an important part of the bot, but hidden away inside due to it being a legacy system.
 
Beta #1697 has just been deployed (Release #350 will build soon) with the previously mentioned changes for tonight's update.

Please be sure to read the patch notes for the final version, and post any issues in the Support forum with full logs.
 
Beta #1706 has just been deployed (Release #353 will build soon) for tonight's update.

Included in the update are some early 3.3 legacy system updates - internal changes regarding the mouse input system. No unintended side effects are expected and nothing should break, as the changes have been tested pretty thoroughly beforehand. Most people won't need to care about these changes though, as it's mostly dev related, and a very niche set of changes at that.

Just to be clear, nothing has changed behavior wise. A redundant mouse move event was also removed, but it won't really change anything and only improves performance in mostly immeasurable ways. It was however unintentional, and just went unnoticed for a long time.
 
A fix for DND state being broken in last night's patch will be coming soon.
 
Status
Not open for further replies.
Back
Top