Retrieving the Local Player Corpse Location menu

User Tag List

Results 1 to 11 of 11
  1. #1
    tanis2000's Avatar Active Member
    Reputation
    39
    Join Date
    Feb 2009
    Posts
    123
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Retrieving the Local Player Corpse Location

    I've been trying to find out the Local Player Corpse location but I run into something that I can't figure out.

    From this post http://www.mmowned.com/forums/wow-me...er-corpse.html I understood that the player corpse is not stored with all the other objects in the heap but it's part of a class (probably CPlayer?) and that it's declared as a static variable.

    Now I supposed that at some point some of the functions would go and read/write there.

    I first thought about RepopMe() but after setting a breakpoint there I discovered that it actually gets called when you release and that apparently all the nice stuff has already been done as you can already see where the spirit healer is and thus I guess it has already checked for my corpse location, stored it and compared that position with all the graveyards in the zone to pick the closest.

    I then thought that I'd go with AcceptRessurect hoping that it was the same function called when you actually accept to resurrect at your corpse.. but it looks like it's only called when another player resurrects you.

    So I moved on to the RetrieveCorpse() function just to find out that I can't exactly understand what that function is doing.

    It actually looks like:
    Code:
    .text:006E6C10 ; =============== S U B R O U T I N E =======================================
    .text:006E6C10
    .text:006E6C10 ; Attributes: bp-based frame
    .text:006E6C10
    .text:006E6C10 sub_6E6C10      proc near               ; DATA XREF: .data:00A3DF1Co
    .text:006E6C10
    .text:006E6C10 var_18          = dword ptr -18h
    .text:006E6C10 var_14          = dword ptr -14h
    .text:006E6C10 var_10          = dword ptr -10h
    .text:006E6C10 var_C           = dword ptr -0Ch
    .text:006E6C10 var_8           = dword ptr -8
    .text:006E6C10 var_4           = dword ptr -4
    .text:006E6C10
    .text:006E6C10                 push    ebp
    .text:006E6C11                 mov     ebp, esp
    .text:006E6C13                 sub     esp, 18h
    .text:006E6C16                 push    esi
    .text:006E6C17                 call    sub_7BC8D0
    .text:006E6C1C                 push    0A1h
    .text:006E6C21                 push    offset aCBuildserve_14 ; "c:\\BuildServer\\bs1\\work\\WoW-code\\branch"...
    .text:006E6C26                 push    10h
    .text:006E6C28                 push    edx
    .text:006E6C29                 push    eax
    .text:006E6C2A                 call    sub_7BE110
    .text:006E6C2F                 xor     esi, esi
    .text:006E6C31                 add     esp, 14h
    .text:006E6C34                 cmp     eax, esi
    .text:006E6C36                 jz      short loc_6E6C40
    .text:006E6C38                 push    esi
    .text:006E6C39                 mov     ecx, eax
    .text:006E6C3B                 call    sub_559CB0
    .text:006E6C40
    .text:006E6C40 loc_6E6C40:                             ; CODE XREF: sub_6E6C10+26j
    .text:006E6C40                 push    1D2h
    .text:006E6C45                 lea     ecx, [ebp+var_18]
    .text:006E6C48                 mov     [ebp+var_18], offset off_980C28
    .text:006E6C4F                 mov     [ebp+var_14], esi
    .text:006E6C52
    .text:006E6C52 loc_6E6C52:                             ; DATA XREF: .rdata:off_990050o
    .text:006E6C52                 mov     [ebp+var_10], esi
    .text:006E6C55                 mov     [ebp+var_C], esi
    .text:006E6C58                 mov     [ebp+var_8], esi
    .text:006E6C5B                 mov     [ebp+var_4], 0FFFFFFFFh
    .text:006E6C62                 call    sub_8361B0
    .text:006E6C67                 mov     eax, dword_11D3FDC
    .text:006E6C6C                 mov     ecx, dword_11D3FD8
    .text:006E6C72                 push    eax
    .text:006E6C73                 push    ecx
    .text:006E6C74                 lea     ecx, [ebp+var_18]
    .text:006E6C77                 call    sub_836210
    .text:006E6C7C                 lea     edx, [ebp+var_18]
    .text:006E6C7F                 push    edx
    .text:006E6C80                 mov     [ebp+var_4], esi
    .text:006E6C83                 call    sub_5F92F0
    .text:006E6C88                 add     esp, 4
    .text:006E6C8B                 cmp     [ebp+var_C], 0FFFFFFFFh
    .text:006E6C8F                 mov     [ebp+var_18], offset off_980C28
    .text:006E6C96                 pop     esi
    .text:006E6C97                 jz      short loc_6E6CAE
    .text:006E6C99                 lea     eax, [ebp+var_C]
    .text:006E6C9C                 push    eax
    .text:006E6C9D                 lea     ecx, [ebp+var_10]
    .text:006E6CA0                 push    ecx
    .text:006E6CA1                 lea     edx, [ebp+var_14]
    .text:006E6CA4                 push    edx
    .text:006E6CA5                 lea     ecx, [ebp+var_18]
    .text:006E6CA8                 call    ds:off_980C2C
    .text:006E6CAE
    .text:006E6CAE loc_6E6CAE:                             ; CODE XREF: sub_6E6C10+87j
    .text:006E6CAE                 xor     eax, eax
    .text:006E6CB0                 mov     esp, ebp
    .text:006E6CB2                 pop     ebp
    .text:006E6CB3                 retn
    .text:006E6CB3 sub_6E6C10      endp
    I see that it's calling some other functions inside this one and I hoped to find some values looking at the memory it reads that might look like floating point values but I haven't been able to find any.

    Of course I must be missing something there.. any words of wisdom?

    Retrieving the Local Player Corpse Location
  2. #2
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Why not die and move very close to your corpse and use CE or w/e to scan for values +/- 3 of your X, Y, and Z? Could maybe get some statics.

  3. #3
    tanis2000's Avatar Active Member
    Reputation
    39
    Join Date
    Feb 2009
    Posts
    123
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Not a bad idea at all!

    I completely forgot about the existence of CE. And after a few searches it looks like that the offset for 3.1.3 might as well be 0x011D41D8. Next thing should be to check the code that access that location and see if I can come up with a pattern to find it out later on.
    Thx for the tip lanman92! +rep!

  4. #4
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    It might just be me, but it seems like there's a big block of GUIDs and statics at 0x11D4****. Might check it out later, make a struct if I see a pattern across old patches.

  5. #5
    guizmows's Avatar Banned
    Reputation
    57
    Join Date
    Feb 2008
    Posts
    414
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    did someone find a good patern for finding this static address?

    I maid some tests but I can't find it for WoW 3.2, can you help me plz.

  6. #6
    jockel's Avatar Member
    Reputation
    4
    Join Date
    Mar 2009
    Posts
    54
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Here you go

    PLAYER_CORPSE_X 0x11279F8 // 3.2.0
    You should know how to get the Y / Z values from that.
    Last edited by jockel; 08-09-2009 at 01:03 PM.

  7. #7
    luthien23's Avatar Member
    Reputation
    29
    Join Date
    Apr 2009
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    CORPSE_X = [0x011279F8]
    CORPSE_Y = [0x011279FC]
    CORPSE_Z = [0x01127A00]

  8. #8
    guizmows's Avatar Banned
    Reputation
    57
    Join Date
    Feb 2008
    Posts
    414
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thx you two you help me a lot.

  9. #9
    furang's Avatar Member
    Reputation
    19
    Join Date
    Jul 2009
    Posts
    84
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    realy 10x both)
    I've just was looking for it.
    And does anyone know how to respawn when i aproach my corpse

  10. #10
    guizmows's Avatar Banned
    Reputation
    57
    Join Date
    Feb 2008
    Posts
    414
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    here is how I do :

    Code:
    WalkToCorpse();
                do
                {
                    Control.SendTextToChat("/script RetrieveCorpse()");
                    Thread.Sleep(1000);
                }
                while( Me.IsGhost );

  11. #11
    furang's Avatar Member
    Reputation
    19
    Join Date
    Jul 2009
    Posts
    84
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok. 10x you now)
    works perfectly fine

Similar Threads

  1. Question about the Local Player GUID offset [5.4.2]
    By Torpedoes in forum WoW Memory Editing
    Replies: 4
    Last Post: 12-14-2013, 10:39 AM
  2. Static Address of Local Player Object
    By Neverhaven in forum WoW Memory Editing
    Replies: 7
    Last Post: 10-31-2009, 03:26 PM
  3. Model edits and player corpses?
    By LeafyBlade in forum WoW ME Questions and Requests
    Replies: 2
    Last Post: 06-04-2009, 01:21 PM
  4. Local Player Corpse
    By sebdoingbot in forum WoW Memory Editing
    Replies: 29
    Last Post: 02-25-2009, 09:40 AM
All times are GMT -5. The time now is 01:06 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search