How to tell which Actor is your own player menu

User Tag List

Results 1 to 4 of 4
  1. #1
    spdkllz's Avatar Member
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    13
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    How to tell which Actor is your own player

    I've dumped Actors in a given scene with multiple players and parsed through attributes for each player (where type == 7). I'm sure there is a way to differentiate between your own character and other group players, anyone know?

    Also, I've realized after some distance you do not get other player information in the client, do you have to be in the same scene? I'm wondering what is required to get information such as buffs on the other players. Also, does the client get all buff information about group players but only show two, or does the client only stores two?

    How to tell which Actor is your own player
  2. #2
    iamclint's Avatar Master Sergeant
    Reputation
    14
    Join Date
    Aug 2012
    Posts
    84
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    This is some code I made to get the local player.
    Code:
    Public Shared Function GetPlayerGuidShort() As UShort
            Return BitConverter.ToUInt16(cMem.MemoryHelpers.readByteArray(GetLocalPlayer() + 8, 4), 0)
    End Function
    
    Public Shared Function GetMyPlayerStruct() As Player
             Dim address As Long = GetActorFromGuid(GetPlayerGuidShort)
             Dim acd As Long = getACDID(address)
             Dim p As New Player(address, acd)
             Return p
    End Function
    
    Public Shared Function GetActorFromGuid(ByVal guid As Integer) As Integer
                Dim Container As Long = cMem.MemoryHelpers.readPtr(Enums.ObjectManager.ObjectManager, Enums.ObjectManager.ObjectManagerContainer)
                If (guid = -1) Then
                    Return 0
                Else
                    If (guid < cMem.MemoryHelpers.readInt(Container + &H100)) Then
                        Dim v1 As Long = cMem.MemoryHelpers.readInt(cMem.MemoryHelpers.readInt(Container + &H148) + 4 * (guid >> cMem.MemoryHelpers.readByte(Container + &H18C))) + &H42C * (guid And ((1 << cMem.MemoryHelpers.readInt(Container + &H18C)) - 1))
                        Return ((cMem.MemoryHelpers.readInt(v1) <> guid) - 1) And v1
                    Else
                        Return 0
                    End If
                End If
    End Function
    
    Public Shared Function getACDID(ByVal address As Long) As Long
                Try
                    Dim acdid As Integer = cMem.MemoryHelpers.readInt(address + &H4)
                    Dim c As Integer = cMem.MemoryHelpers.readPtr(Enums.ObjectManager.ObjectManager, Enums.ObjectManager.ACDContainer, 0)
                    Dim id As Short = 0
                    If (&HFFFF And acdid) < Short.MaxValue Then
                        id = CShort(&HFFFF And acdid)
                    End If
                    Dim bitShift As Integer = cMem.MemoryHelpers.readInt(c + &H18C)
                    Dim acd As Integer = cMem.MemoryHelpers.readInt(cMem.MemoryHelpers.readInt(c + &H148)) + 4 * (id >> bitShift) + &H2D0 * (id And ((1 << bitShift) - 1))
                    Return acd
                Catch ex As Exception
                    Console.WriteLine(ex.StackTrace)
                    Console.WriteLine(ex.Message)
                End Try
    End Function
    Last edited by iamclint; 04-10-2013 at 07:33 PM.

  3. #3
    xzidez's Avatar Member
    Reputation
    12
    Join Date
    Dec 2007
    Posts
    135
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    There is a function at 0xA40B10 which returns your players guid.

  4. #4
    iamclint's Avatar Master Sergeant
    Reputation
    14
    Join Date
    Aug 2012
    Posts
    84
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thats exactly what my above functions do they are directly converted over from what that function does

Similar Threads

  1. [Misc] Suriously, how difficult is it to create your own WOW server?
    By acctingman in forum WoW EMU Questions & Requests
    Replies: 4
    Last Post: 11-03-2020, 05:35 PM
  2. [Model Swap] Changing your own player to an NPC
    By skoopa in forum WoW ME Questions and Requests
    Replies: 0
    Last Post: 04-20-2014, 02:02 AM
  3. [Truth] How to make rap! xD (Make your own!)
    By Xel in forum Community Chat
    Replies: 3
    Last Post: 09-04-2009, 07:59 AM
  4. [Kara] How to tell which boss will be in Opera
    By Phaase in forum WoW Instances & Raiding
    Replies: 30
    Last Post: 12-13-2008, 02:47 PM
All times are GMT -5. The time now is 04:13 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