-
Active Member
Bonus act, blood shards, bounty objective location
Hi. I got 3 questions/issues, any help appreciated
1. Perhaps anyone found location of bonus act ID?
2. PlayerData structure (Enigma.D3) must have been changed a bit as I cannot find bloodshards count anywhere near its previous location.
3. Can anyone provide hint how to obtain world position of objective/rift guardian "ping location" from minimap?
-
Contributor
Originally Posted by
CrEEzz
Hi. I got 3 questions/issues, any help appreciated
1. Perhaps anyone found location of bonus act ID?
2. PlayerData structure (Enigma.D3) must have been changed a bit as I cannot find bloodshards count anywhere near its previous location.
3. Can anyone provide hint how to obtain world position of objective/rift guardian "ping location" from minimap?
1) No idea havent checked, maybe you can read the UI control has some info.
2) Yeah the offset has changed to
Code:
public long GetCurrency(CurrencyType type)
{
return Read<long>((24 * (int)type) + 0x8B20); // 2.3.0
}
3) Its obtained through LevelArea.PTR_QuestMarkers and Dereference it and you'll have the available quest marker(s) (with X / Y cords)
-
Post Thanks / Like - 1 Thanks
Ket (1 members gave Thanks to Dolphe for this useful post)
-
Member
ObjectManager.Storage:
Code:
public WorldType x04C_StartingAct { get { return Read<WorldType>(0x04C); } }
public WorldType x050_BonusAct { get { return Read<WorldType>(0x050); } }
Last edited by azgul; 09-25-2015 at 01:19 PM.
-
Post Thanks / Like - 1 Thanks
Ket (1 members gave Thanks to azgul for this useful post)
-
Active Member
Thanks a lot guys, this works flawlessly. However I got one other issue. I try to get current act and what happens after game is started is as follows (started in Act 4):
Engine.Current.MapActId => 0 (act 1) - WTF?
Engine.Current.LocalData.x14_ActId => 3000 (open world)
Engine.Current.ObjectManager.x798_Storage.x04C_StartingAct => A4
when i switch to another act (3 in this case):
Engine.Current.MapActId => 200 (act 3)
Engine.Current.LocalData.x14_ActId => 3000 (open world)
Engine.Current.ObjectManager.x798_Storage.x04C_StartingAct => A4
when i switch back to act 4:
Engine.Current.MapActId => 300 (act 4)
Engine.Current.LocalData.x14_ActId => 3000 (open world)
Engine.Current.ObjectManager.x798_Storage.x04C_StartingAct => A4
so simply reading Engine.Current.MapActId (without any additional context is misleading).
-
Legendary
MapActId is what the UI shows if you bring up the world map.
-
Active Member
Hi,
I think you can't read marker on world map without open it, because it call server function.
-
★ Elder ★
Originally Posted by
CrEEzz
Thanks a lot guys, this works flawlessly. However I got one other issue. I try to get current act and what happens after game is started is as follows (started in Act 4):
Engine.Current.MapActId => 0 (act 1) - WTF?
Engine.Current.LocalData.x14_ActId => 3000 (open world)
Engine.Current.ObjectManager.x798_Storage.x04C_StartingAct => A4
when i switch to another act (3 in this case):
Engine.Current.MapActId => 200 (act 3)
Engine.Current.LocalData.x14_ActId => 3000 (open world)
Engine.Current.ObjectManager.x798_Storage.x04C_StartingAct => A4
when i switch back to act 4:
Engine.Current.MapActId => 300 (act 4)
Engine.Current.LocalData.x14_ActId => 3000 (open world)
Engine.Current.ObjectManager.x798_Storage.x04C_StartingAct => A4
so simply reading Engine.Current.MapActId (without any additional context is misleading).
PHP Code:
public enum WorldType.
{
Invalid = -1,
A1 = 0,
A2 = 100,
A3 = 200,
A4 = 300,
A5 = 400,
Test = 1000,
OpenWorld = 3000,
}
-
Post Thanks / Like - 1 Thanks
Ket (1 members gave Thanks to Nesox for this useful post)