Reading Structs, Hit Brick Wall menu

User Tag List

Results 1 to 2 of 2
  1. #1
    Lionhart280's Avatar Private
    Reputation
    1
    Join Date
    Nov 2012
    Posts
    10
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Reading Structs, Hit Brick Wall

    After some serious duct taping of several different sources of code together, I've come to an almost working VB struct set up for reading all of everything, but Im running into an issue with the bitshifting and limit values inside of the actor containers.

    I'm going from the source here: [Coding] [D3] base structs

    And the psuedo code here: http://www.ownedcore.com/forums/diab...character.html (Detect the character)

    And some other stuff. I run into the issue at this point, as C is not my strongest language and they're templating classes, something I haven't done much of.:

    Code:
    template <class T>
        class tContainer
        {
        public:
            CHAR Name[256];
            ULONG Limit;
            ULONG SizeOf;
            ULONG Count;
            UCHAR unknown_10C[60];
            T** List;
            UCHAR unknown_14C[64];
            ULONG Bits;
            UCHAR unknown_190[64];
        };
    And later on they're code is using the container as a holder for actors, then use the value of "Limit" and "Bits" for bitshifting and stuff to get the value of the ID of the current actor.

    Now either they've purposefully left out the value of "Limits" and "bits" or they're setting it somewhere in the code that I am totally not seeing. On the other page they list the offset for bits as as 0x18c, but I dunno if that's still the right number as the rest of their offsets are outdated.

    Anyways, here's my code so far if you wanna take a look see:

    Structs:

    PHP Code:

    Public Class Structs
        Shared Handle 
    As Integer
        
    Public Baseadd As Integer = &H1873414

        
    Public ObjectManager As New cObjectManager(BaseAdd)

        Public 
    Sub New(ByVal Process_Handle As Integer)
            
    Handle Process_Handle
        End Sub

        
    Public Class cObjectManager
            
    Public Baseadd As Integer

            
    Private Off_Data As Integer 0
            
    Private Off_ObManStorage As Integer = &H794

            
    Public Data As New tPad(ReadInt(HandleBaseAddOff_Data))
            Public 
    Storage As New ObjectManagerStorage(GetAddress(HandleBaseAddOff_ObManStorage))

            Public 
    Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub

            
    Public Class tPad
                
    Public Baseadd As Integer
                
    'Private Off_Unknown1 As Integer = 0'
                
    Private Off_CurrentFrame As Integer = &H38
                
    'Private Off_Unknown2 As Integer = &H3C'

                
    ReadOnly Property CurrentFrame As ULong
                    Get
                        
    Return ReadInt(HandleBaseAddOff_CurrentFrame)
                    
    End Get
                End Property

                
    Public Sub New(ByVal Address As Integer)
                    
    BaseAdd Address
                End Sub
            End 
    Class
        
    End Class

        Public Class 
    ObjectManagerStorage
            
    Public Baseadd As Integer
            
    Private Off_Unknown1 As Integer 0
            
    Private Off_ObjectDataContainer As Integer = &HA8
            
    'Private Off_Unknown2 As Integer = &HAC'
            
    Private Off_ACD As Integer = &HD4
            
    'Private Off_Unknown3 As Integer = &HD8'
            
    Private Off_Actors As Integer = &H134
            
    'Private Off_Unknown4 As Integer = &H138'
            
    Private Off_ObLocal As Integer = &H1B8
            
    'Private Off_Unknown5 As Integer = &H1BC'

            
    Public DataContainer As New ObjectDataContainer(GetAddress(HandleBaseAddOff_ObjectDataContainer))
            Public 
    ACDs As New ACDContainer(GetAddress(HandleBaseAddOff_ACD))
            Public 
    RActors As New ActorContainer(GetAddress(HandleBaseAddOff_Actors))
            Public 
    Local As New CObjectLocal(GetAddress(HandleBaseAddOff_ObLocal))

            Public 
    Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub
        End 
    Class

        Public Class 
    ObjectDataContainer
            
    Public Baseadd As Integer
            
    'Private Off_Unknown1 As Integer = 0'
            
    Private Off_Data As Integer = &H58
            
    'Private Off_Unknown2 As Integer = &H198'

            
    Public Data As New tData(GetAddress(HandleBaseaddOff_Data))

            Public 
    Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub
        End 
    Class

        Public Class 
    tData
            
    Public Baseadd As Integer
            
    'Private Off_Unknown1 As Integer = 0'
            
    Private Off_AnimationID As Integer 4
            
    Private Off_ActorID As Integer 8
            
    'Private Off_Unknown2 As Integer = 12'

            
    ReadOnly Property Animation As ULong
                Get
                    
    Return ReadInt(HandleBaseaddOff_AnimationID)
                
    End Get
            End Property

            ReadOnly Property ID 
    As ULong
                Get
                    
    Return ReadInt(HandleBaseaddOff_ActorID)
                
    End Get
            End Property

            
    Public Sub New(ByVal Address As Integer)
                
    Baseadd Address
            End Sub
        End 
    Class

        Public Class 
    ActorContainer
            
    Public Baseadd As Integer
            
    Private Name(256) As Char
            
    Private Limit As ULong
            
    Private Sizeof As ULong
            
    Public count As ULong
            
    Public list As List(Of Actor)
            Private 
    bits As ULong

            
    Public Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub
        End 
    Class

        Public Class 
    ACDContainer
            
    Public Baseadd As Integer
            
    Private Name(256) As Char
            
    Private Limit As ULong
            
    Private Sizeof As ULong
            
    Public count As ULong
            
    Public list As List(Of ActorCommonData)
            Private 
    bits As ULong

            
    Public Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub
        End 
    Class

        Class 
    Actor
            
    Public Baseadd As Integer
            
    Private Off_id As Integer = &H0
            
    Private Off_id_animation As Integer = &H4
            
    Private Off_Name As Integer = &H8
            
    'Private Off_unknown1 As Integer = &H40'
            
    Private Off_Rot As Integer = &H90
            
    Private Off_fRot As Integer = &H9C
            
    Private Off_Pos As Integer = &HA0
            
    Private Off_f142 As Integer = &HAC
            
    Private Off_Pos1 As Integer = &HB0
            
    Private Off_f734 As Integer = &HBC
            
    Private Off_Pos2 As Integer = &HC0
            
    'Private Off_unknown2 As Integer = &HCC'
            
    Private Off_guid_Mov As Integer = &HD8
            
    Private Off_guid_Unk As Integer = &HDC
            
    'Private Off_unknown3 As Integer = &HE0'
            
    Private Off_Pos3 As Integer = &H100
            
    Private Off_unknown4 As Integer = &H10C
            
    Private Off_Pos4 As Integer = &H140
            
    'Private Off_unknown5 As Integer = &H14C'
            
    Private Off_PosObj As Integer = &H210
            
    'Private Off_unknown6 As Integer = &H21C'
            
    Private Off_ActorMovement As Integer = &H380
            
    Private Off_Direction As Integer = &H384
            
    'Private Off_unknown7 As Integer = &H388'
            
    Private Off_Vel As Integer = &H3A0
            
    Private Off_Pos6 As Integer = &H3AC
            
    'Private Off_unknown8 As Integer = &H3B8'
            
    Private Off_Counter As Integer = &H418
            
    'Private Off_unknown9 As Integer = &H41C'

            
    ReadOnly Property ID As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_id)
                
    End Get
            End Property

            ReadOnly Property ID_Animation 
    As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_id_animation)
                
    End Get
            End Property

            ReadOnly Property Name 
    As String
                Get
                    
    Return ReadString(Handle56BaseAddOff_Name).Trim
                End Get
            End Property

            ReadOnly Property RawName 
    As String
                Get
                    
    Return ReadString(Handle56BaseAddOff_Name)
                
    End Get
            End Property

            
    Public Rot As New Vec3(GetAddress(HandleBaseaddOff_Rot))
            Public 
    Pos As New Vec3(GetAddress(HandleBaseaddOff_Pos))
            Public 
    Pos1 As New Vec3(GetAddress(HandleBaseaddOff_Pos1))
            Public 
    Pos2 As New Vec3(GetAddress(HandleBaseaddOff_Pos2))
            Public 
    Pos3 As New Vec3(GetAddress(HandleBaseaddOff_Pos3))
            Public 
    Pos4 As New Vec3(GetAddress(HandleBaseaddOff_Pos4))
            Public 
    Pos6 As New Vec3(GetAddress(HandleBaseaddOff_Pos6))
            Public 
    PosObj As New Vec3(GetAddress(HandleBaseaddOff_PosObj))

            
    ReadOnly Property GUID_Mov As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_guid_Mov)
                
    End Get
            End Property

            ReadOnly Property GUID_Unk 
    As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_guid_Unk)
                
    End Get
            End Property

            
    Public Movement As New ActorMovement(ReadInt(HandleBaseaddOff_ActorMovement))

            
    ReadOnly Property direction As Single
                Get
                    
    Return ReadInt(HandleBaseAddOff_Direction)
                
    End Get
            End Property

            
    Public Velocity As New Vec3(GetAddress(HandleBaseaddOff_Vel))

            
    ReadOnly Property counter As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_Counter)
                
    End Get
            End Property

            
    Public Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub
        End 
    Class

        Public Class 
    Vec2
            
    Public Baseadd As Integer
            
    Private Off_x 0
            
    Private Off_y 4

            ReadOnly Property x 
    As Single
                Get
                    
    Return ReadInt(HandleBaseAddOff_x)
                
    End Get
            End Property

            ReadOnly Property y 
    As Single
                Get
                    
    Return ReadInt(HandleBaseAddOff_y)
                
    End Get
            End Property

            
    Public Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub
        End 
    Class

        Public Class 
    Vec3
            
    Public Baseadd As Integer
            
    Private Off_x 0
            
    Private Off_y 4
            
    Private Off_z 8

            ReadOnly Property x 
    As Single
                Get
                    
    Return ReadInt(HandleBaseAddOff_x)
                
    End Get
            End Property

            ReadOnly Property y 
    As Single
                Get
                    
    Return ReadInt(HandleBaseAddOff_y)
                
    End Get
            End Property

            ReadOnly Property z 
    As Single
                Get
                    
    Return ReadInt(HandleBaseAddOff_z)
                
    End Get
            End Property

            
    Public Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub
        End 
    Class

        Public Class 
    ActorMovement
            
    Public Baseadd As Integer
            
    Private Off_vt = &H0
            
    Private Off_Active = &H4
            
    Private Off_Speed = &H8
            
    Private Off_CurrentSpeed = &HC
            
    'Private Off_unknown1 = &H10'
            
    Private Off_Pos1 = &H3C
            
    'Private Off_unknown2 = &H48'
            
    Private Off_Pos2 = &H4C
            
    'Private Off_unknown3 = &H58'
            
    Private Off_Tp = &H74
            
    'Private Off_unknown4 = &H80'
            
    Private Off_unk = &H88
            
    'Private Off_unknown5 = &H8C'
            
    Private Off_Pos3 = &HA4
            
    'Private Off_unknown6 = &HB0'
            
    Private Off_Speed2 = &HB8
            
    'Private Off_unknown7 = &HBC'
            
    Private Off_ID = &H15C
            
    Private Off_FrameMov = &H160
            
    Private Off_Frame = &H164
            
    Private Off_FramePrev = &H168
            
    'Private Off_unknown8 = &H16C'
            
    Private Off_Direction = &H170
            
    'Private Off_unknown9 = &H174'

            
    ReadOnly Property VT As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_vt)
                
    End Get
            End Property

            ReadOnly Property active 
    As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_Active)
                
    End Get
            End Property

            ReadOnly Property speed 
    As Single
                Get
                    
    Return ReadInt(HandleBaseAddOff_Speed)
                
    End Get
            End Property

            ReadOnly Property speed2 
    As Single
                Get
                    
    Return ReadInt(HandleBaseAddOff_Speed2)
                
    End Get
            End Property

            ReadOnly Property CurrentSpeed 
    As Single
                Get
                    
    Return ReadInt(HandleBaseAddOff_CurrentSpeed)
                
    End Get
            End Property

            
    Public pos1 As New Vec3(GetAddress(HandleBaseaddOff_Pos1))
            Public 
    Pos2 As New Vec3(GetAddress(HandleBaseaddOff_Pos2))
            Public 
    Pos3 As New Vec3(GetAddress(HandleBaseaddOff_Pos3))
            Public 
    TP As New Vec3(GetAddress(HandleBaseaddOff_Tp))

            
    ReadOnly Property unk As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_unk)
                
    End Get
            End Property

            ReadOnly Property ID 
    As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_ID)
                
    End Get
            End Property

            ReadOnly Property FrameMov 
    As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_FrameMov)
                
    End Get
            End Property
            ReadOnly Property Frame 
    As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_Frame)
                
    End Get
            End Property

            ReadOnly Property FramePrev 
    As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_FramePrev)
                
    End Get
            End Property

            ReadOnly Property Direction 
    As Single
                Get
                    
    Return ReadInt(HandleBaseAddOff_Direction)
                
    End Get
            End Property

            
    Public Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub
        End 
    Class

        Class 
    ActorCommonData
            
    Public Baseadd As Integer
            
    Private Off_ID As Integer 0
            
    Private Off_Name As Integer = &H4
            
    'Private Off_N11A3D0361 As Integer = &H84'
            ' Private Off_N11A3D036 As Integer = &H88'
            'Private Off_N11A3DFFE As Integer = &H8C'
            'Private Off_unknown1 As Integer = &H90'

            
    ReadOnly Property ID As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_ID)
                
    End Get
            End Property

            ReadOnly Property RawName 
    As String
                Get
                    
    Return ReadString(Handle128BaseAddOff_Name)
                
    End Get
            End Property

            ReadOnly Property Name 
    As String
                Get
                    
    Return ReadString(Handle128BaseAddOff_Name).Trim
                End Get
            End Property

            
    Public Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub
        End 
    Class

        Public Class 
    CObjectLocal
            
    Public Baseadd As Integer
            
    Private Off_Index As Integer 0
            
    'Private Unkown1 As Integer = 4'

            
    ReadOnly Property Index As ULong
                Get
                    
    Return ReadInt(HandleBaseAddOff_Index)
                
    End Get
            End Property

            
    Public Sub New(ByVal Address As Integer)
                
    BaseAdd Address
            End Sub
        End 
    Class
    End Class 

    And I should have working code so far using:

    PHP Code:
            Dim Processes As Process() = Process.GetProcessesByName("Diablo III")
            
    Dim STRUCTS As New Structs(Process(0).Handle)
            
    Dim Index As Integer STRUCTS.ObjectManager.Storage.Local.Index
            Dim ActorAdd 
    As Integer STRUCTS.ObjectManager.Data.Baseadd + (Index * &H7FF8)
            
    Dim Actor As New Structs.ObjectDataContainer(ActorAdd)
            
    Dim ActorID As ULong Actor.Data.ID And &HFFFF 
    But after that I need the values of Limits and Bits from my actorcontainer... :|

    Anyone able to point me in the direction of where to go with this?
    Last edited by Lionhart280; 12-04-2012 at 11:25 PM.

    Reading Structs, Hit Brick Wall
  2. #2
    boredevil's Avatar Active Member Authenticator enabled
    Reputation
    46
    Join Date
    Feb 2008
    Posts
    166
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    the cotainer struct you quoted is still valid nothing changed in there. offset for bits is still 0x18c

Similar Threads

  1. My WoW-Life story [Wall of text, only read if you like stories]
    By d1shes in forum World of Warcraft General
    Replies: 17
    Last Post: 03-10-2009, 05:13 AM
  2. Hide in the wall of AV
    By Matt in forum World of Warcraft Exploits
    Replies: 2
    Last Post: 10-10-2006, 07:01 PM
  3. Hit points and talent points? Please help
    By hankusdankus in forum World of Warcraft General
    Replies: 6
    Last Post: 05-04-2006, 02:00 PM
  4. Getting behind the Greymane Wall
    By Matt in forum World of Warcraft Guides
    Replies: 0
    Last Post: 04-26-2006, 09:11 PM
  5. See Through Walls and Textures easily
    By Matt in forum World of Warcraft Exploits
    Replies: 0
    Last Post: 04-24-2006, 08:45 PM
All times are GMT -5. The time now is 07:29 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search