# Forum > World of Warcraft > World of Warcraft Bots and Programs > WoW Memory Editing >  2.4.3 Offsets & Pointers

## Cursed

I know there is a thread about this, but this one contains a bunch more  :Wink:  (Ofc already known by Chaz, kynox etc.  :Big Grin: )
Credits to Arigity on Deathsoft.com

camera pointer is a double pointer! first offset is 732c second offset points to what you want with the camera (because i'm lazy i am not going to expand on this, i will leave finding specific offsets to you) one offset i do know (thanks to kynox) is 100 which is camera Z, if your interested in expanding on it, you might find this to be helpful.


0x00C6ECCC camera pointer (2.4.3)
0x00DDEFF4 camera pointer (2.4.2)


0x00E29D28 2.4.3 player base
0x00E8AA38 2.4.2 player base
0x00E849E0 2.4.1 player base
0x00E7D9E0 2.4.0 player base


2.4.3 static addresses
0x008C8398 Mountain Climb angle default value 0.6427 (float)
0x00BC4AF8 fall speed, 60.1480026245117 default value (float) set to to -1 and you fall up biggrin.gif
0x008C8458 gravity, 19.2911033630371 default value (double)
0x00890608 game speed, 0.00100000004749745 default value (double)
0x0089060B game speed 2, 1.02048421388683E253 default value (double) messing with this will freeze time
0x00890750 speed of time, 1000 default value (double) time moves faster, you appear slower
0x0088D5E8 rendering, 0.5 default value (double) ****s shit up. but fun to screw with, ( 0.2 and 2 D: )


2.4.3 patches
0x006A4B6E walk through GO's (highlight able). (0x968B1D74) default value 4 byte {HEX}. (0x968B1DEB) to walk through!
0x006A49FE walk through GO's (non-highlight). (0x00B3840F) default value 4 byte {HEX}. (0x0000B4E9) to walk through!
0x006AC9EA walk through buildings (0xC0320675) default value 4 byte {HEX}. (0xC0329090) to walk through!
0x007B98DE jump patch (0x46F64175) default value 4 byte {HEX} change to (0x46F60075) for infinite jumps!


2.4.2 static addresses
0x008A00C8 MC angle default value 0.6427 (float)
0x00949694 fall speed 60.148 default value (float)
0x008ADAE0 gravity 19.2911 default value (double)
0x0088D5B8 Rendering 0,5 default value (double)
0x008D86F0 Velocity (Jump Height) -7,9555473327637 default value (float)


2.4.2 patches
0x0052312E walk through GO's(highlightable) (0x968B1D74) default value 4 byte {HEX}. (0x968B1DEB) to walk through!
0x00522FBE walk through GO's (non-highlight) (0x00B3840F) default value 4 byte {HEX}. (0x0000B4E9) to walk through!
0x0052A9DA walk through buildings (0xC0320675) default value 4 byte {HEX}. (0xC0329090) to walk through!
0x0076024E jump patch (0x46F64175) default value 4 byte {HEX} change to (0x46F60075) for infinite jumps!


2.4.1 static addresses *ill get to it later*


2.4.1 patches
0x00522CEE walk through GO's(highlightable) (0x968B1D74) default value 4 byte {HEX}. (0x968B1DEB) to walk through!
0x00522B7E walk through GO's (non-highlight) (0x00B3840F) default value 4 byte {HEX}. (0x0000B4E9) to walk through!
0x0052A56A walk through buildings (0xC0320675) default value 4 byte {HEX}. (0xC0329090) to walk through!
0x0075EDDE jump patch (0x46F64175) default value 4 byte {HEX} change to (0x46F60075) for infinite jumps!


2.4.0 static addresses *later*


2.4.0 patches
0x00522D3E walk through GO's(highlightable) (0x968B1D74) default value 4 byte {HEX}. (0x968B1DEB) to walk through!
0x00522BCE walk through GO's (non-highlight) (0x00B3840F) default value 4 byte {HEX}. (0x0000B4E9) to walk through!
0x0052A5BA collision WMO (0xC0320675) default value 4 byte {HEX}. (0xC0329090) to walk through!
0x0075F29E jump patch (0x46F64175) default value 4 byte {HEX} change to (0x46F60075) for infinite jumps!


Most movement related offsets *grey ones have a decent use*

C00 points to vertical orientation, no default value (float)
C20 points to movement state 0 default value (4 byte) {HEX}
C23 points to player state 128 default value (4 bytes)
C28 points to starting X point, X coord default value (float)
C2C points to starting Y point, Y coord default value (float)
C30 points to height in water, no default value (float)
C34 points to starting orientation , no default value (float) *point at which you start*
C38 points to starting V orientation, no default value (float) *point at which you start*
C3C points to odd movement thing, no default value (double)
C40 points to forward movement angle, no default value (float)
C44 points to forward movement angle, no default value (float)
C48 points to turning movement angle, no default value (float)
C4C points to turning movement angle, no default value (float)
C50 points to turning movement angle, no default value (float)
C54 points to allowed to turn while moving, no default value (float) *test*
C5C points to fall time, 824 default value (4 byte) *effects how much fall damage you take*
C60 points to starting Z point, Z coord, default (float) *jump starting position*
C68 points to current speed, no default value (float) *effects all other speeds also while moving!*
C6C points to walk speed 2.5 default value (float)
C70 points to run(forward) 7 default value (float)
C74 points to run(backward) 4.5 default value (float)
C78 points to swim(forward) 4.72222185134888 default value (Float)
C7C points to swim(backward) 2.5 default value (float)
C80 points to flying speed 7 default value (float) *changes forward and backward*
C84 points to flying speed(backward) 4.5 default value (float)
C88 points to turning speed, 3.14 default value (float)
C8C points to jump height, -7.955547 default value *after jump* (float)

CB0 points to player... thing, 1 default value (float) *set to 200 to climb most things similar to wall climb* (still tryin ta figure this 1 out)

player size
CA8 points to width (as in how fat), 0.2777 default value (float) *set it to 0 to noclip through ANYTHING (includes floor XD)*
CAC points to height (as in how tall), 2.25 default value (float)
9C points to player scale, 1 default value (float)


location
BEC points to map ID, no default value (4 byte) *not entirely sure*
BF0 points to X coord, no default value (float)
BF4 points to Y coord, no default value (float)
BF8 points to Z coord, no default value (float)
BFC points to orientation, no default value (float)


MISC
3AC8 points to hunter tracking, 0 default value (byte)
28E4 points to emote state, 0 default value (4 byte)
26CC points to player faction, no default value (4 byte)
F40 points to casting spell, 0 default value (4 byte)


0x00DA563C address
80 points to can mount, no default value (byte)




here are also some notes i took on it.

movement state

movement state can be used to unroot you, if you ever find yourself rooted. just set it to 00000000 (8 0's) and you will be unrooted, this counts for logging out root/gm root/griffen riding root (unrooting yourself while on a griffen has some weird effects,)

0x1 = Moving Forward
0x2 = Moving Backward
0x4 = Strafing Left
0x8 = Strafing Right
0x10 = Turning Left
0x20 = Turning Right
0x100 = Walking
0x400 = floaty thing
0x1000 = falling
0x4000 = Fall Forwards
0x8000 = Fall Backwards
0x2000 = Freefall/Jumping
0x10000 = Strafing while jumping
0x200000 = Swimming
0x10000000 = Spirit Form
0x80000000 = Unknown

*note: 0x400 in particular interests me, it lets you levitate at the same height, you can go up but never down, it basically lets you walk on air at the same height you are at, (example, im on a cliff. i walk off cliff, instead of falling, i still walk at the same height as before)*

player state


1 = flyhack (can land)
2 = flyhack (can't land *swim-like*)
16 = whisp * walk on water*
64 = floating (levitate)
80 = (floaty dead?)
128 = normal
129 = (flyhack actual gm-like value)
130 = (flyhack *theres alot of different ones heres another, swim-like*)
144 = (dead) *walk on water*
160 = slow fall



hunter tracking

0 = Nothing
1 = Beasts
2 = Dragonkin
4 = Demons
8 = Elementals
16 = Giants
32 = Undead
64 = Humanoids
132 = Misc
255 = Everything




emote state

0 = None
1 = Talk
2 = Bow
3 = Wave
4 = Cheer
5 = Exclamation
6 = Question
7 = Eat
10 = Emote State Dance
11 = Laugh
12 = Emote State Sleep
13 = Emote State Sit
14 = Rude
15 = Roar

16 = Kneel
17 = Kiss
18 = Cry
19 = Chicken
20 = Beg
21 = Applouad
22 = Shout
23 = Flex
24 = Shy
25 = Point
26 = stand
27 = ready unarmed
28 = work
29 = point
30 = none
33 = Wound
34 = wound critical
35 = attack unarmed
36 = attack 1h
37 = attack 2h tight
38 = attack 2h loose
39 = parry unarmed
43 = parry shield
44 = ready unarmed
45 = ready 1h
48 = ready bow
50 = spell precast
51 = spell cast
53 = battle roar
54 = special attack 1h
60 = Kick
61 = attack thrown
64 = Stun
65 = Dead
66 = Salute
68 = Kneel
69 = use standing
70 = wave no sheath
71 = cheer no sheath
92 = eat no sheath
93 = stun no sheath
94 = Dance
113 = salute no sheath
133 = use standing no sheath
153 = laugh no sheath
173 = work no sheath
193 = spell precast
213 = ready rifle
214 = ready rifle
233 = work no sheath mining
234 = work no sheath choping
253 = lightOff (old)
254 =LiftOff
273 = Yes
274 = No
275 = Train
293 = Land
313 = at ease
333 = ready 1h
353 = spell kneel start
373 = submerged
374 = sumberge
375 = ready 2h
376 = ready bow
377 = MountSpecial
378 = Talk
379 = Fishing
380 = Fishing
381 = Loot
382 = whirlwind
383 = drowned
384 = hold bow
385 = hold rifle
386 = hold thrown
387 = drown
388 = stomp
389 = attack off
390 = attack off pierce
391 = roar
392 = laugh
393 = creature special
394 = JumpLandRun
395 = JumpLand
396 = talk no sheath
397 = point no sheath
398 = cannibalize
399 = Jumpstart
400 = DanceSpecial (Human Only)
401 = DanceSpecial (Human Only)
402 = custom spell 1
403 = custom spell 2
404 = custom spell 3
405 = custom spell 4
406 = custom spell 5
407 = custom spell 6
408 = custom spell 7
409 = custom spell 8
410 = custom spell 9
411 = custom spell 10
412 = Execlaim
415 = Sit Chair



also, the lower the value of the mountain climb angle the steeper the angle you can climb.

----------


## object

Maybe I missed it, but you don't seem to give the base address to the :

Most movement related offsets

----------


## arigity

at the top in red.

0x00E29D28 2.4.3 player base

----------


## kynox

Some stuff from me:



```
class CMovementInfo;
class CObject;
class CModelInfo;

class CMovementInfo
{
public:
        char unknown0[16]; //0x0000
    idVec3 vecPos; //0x0010  
    float fHeading; //0x001C  
        char unknown32[24]; //0x0020
    WOWGUID wTransportGuid; //0x0038  
    DWORD dwMoveFlags; //0x0040  
    DWORD dwMoveFlags2; //0x0044  This is a weird one, only one byte seems to be used. 
        char unknown72[20]; //0x0048
    DWORD dwTimeMoved; //0x005C  
        char unknown96[12]; //0x0060
    float fSinAngle; //0x006C  
    float fCosAngle; //0x0070  
        char unknown116[8]; //0x0074
    DWORD dwFallTime; //0x007C  
    float fFallStartHeight; //0x0080  
        char unknown132[8]; //0x0084
    float fWalkSpeed; //0x008C  
    float fRunSpeed; //0x0090  
    float fSwimBackSpeed; //0x0094  
    float fSwimSpeed; //0x0098  
    float fWalkBackSpeed; //0x009C  
    float fFlySpeed; //0x00A0  
    float fFlyBackSpeed; //0x00A4  
    float fTurnSpeed; //0x00A8  
    float fJumpVelocity; //0x00AC  
};//Size=0x00B0(176)

class CObject
{
public:
    virtual void function0(); //
    virtual void function1(); //
    virtual void function2(); //
    virtual void function3(); //
    virtual void function4(); //
    virtual void function5(); //
    virtual void function6(); //
    virtual void function7(); //
    virtual void GetObjectPos( idVec3* Pos ); //
    virtual float GetFacing(); //
    virtual float GetScale(); //
    virtual void function11(); //
    virtual void function12(); //
    virtual void function13(); //
    virtual void function14(); //
    virtual void function15(); //
    virtual const char* GetModel(); //
    virtual void function17(); //
    virtual void function18(); //
    virtual void function19(); //
    virtual void function20(); //
    virtual void function21(); //
    virtual void function22(); //
    virtual void function23(); //
    virtual float GetFacingAngle(); //
    virtual void function25(); //
    virtual void function26(); //
    virtual void function27(); //
    virtual void function28(); //
    virtual void function29(); //
    virtual void function30(); //
    virtual void function31(); //
    virtual void function32(); //
    virtual void function33(); //
    virtual void Interact(); //
    virtual void function35(); //
    virtual void function36(); //
    virtual void function37(); //
    virtual void function38(); //
    virtual void function39(); //
    virtual void function40(); //
    virtual void function41(); //
    virtual const char* GetObjectName(); //
    virtual void function43(); //
    virtual void function44(); //
    virtual void function45(); //
    virtual void function46(); //
    virtual void function47(); //
    virtual void function48(); //
    virtual void function49(); //
    virtual void function50(); //
    virtual void function51(); //
    virtual void function52(); //
    virtual void function53(); //
    virtual void function54(); //
    virtual void function55(); //
    virtual void function56(); //
    virtual void function57(); //
    virtual void function58(); //
    virtual void function59(); //
    virtual void function60(); //
    virtual void function61(); //
        char unknown4[4]; //0x0004
    DWORD m_dwStorage01; //0x0008  
    DWORD m_dwStorage02; //0x000C  
        char unknown16[4]; //0x0010
    int m_dwType; //0x0014  
        char unknown24[24]; //0x0018
    WOWGUID wLocalGUID; //0x0030  
        char unknown56[232]; //0x0038
    DWORD m_dwStorage3; //0x0120  
        char unknown292[4]; //0x0124
    CMovementInfo* m_pMoveInfo; //0x0128  
        char unknown300[3224]; //0x012C
    CModelInfo* m_pModelInfo; //0x0DC4  
};//Size=0x0DC8(3528)

class CModelInfo
{
public:
    int m_dwModelID; //0x0000  
    int m_dwFlags; //0x0004  
    char* m_pszModelName; //0x0008  
        char unknown12[76]; //0x000C
    float m_fModelHeight; //0x0058  
        char unknown92[4]; //0x005C
};//Size=0x0060(96)
```

----------


## Cypher

Just a piece of info.

The mountain climb offset is stored as the consine of an angle (ie cos(50)), just thought I'd point that out to anyone wondering how exactly changing the value works. The larger you make that angle the steeper you can climb, although anything past 90deg obviously doesn't make a difference. And cos(90) == 0

----------


## Cursed

> Just a piece of info.
> 
> The mountain climb offset is stored as the consine of an angle (ie cos(50)), just thought I'd point that out to anyone wondering how exactly changing the value works. The larger you make that angle the steeper you can climb, although anything past 90deg obviously doesn't make a difference. And cos(90) == 0


Didnt you make an info thread about that long time ago? I read the entire Bots & Programs section last week and I think I found your old thread about how Wallclimbing is working  :Big Grin: 

Fixed the WalkThroughBuildings for 2.4.2

----------


## Cypher

> Didnt you make an info thread about that long time ago? I read the entire Bots & Programs section last week and I think I found your old thread about how Wallclimbing is working 
> 
> Fixed the WalkThroughBuildings for 2.4.2



You read the entire section? Jesus christ. o.O

(And yea I did)

----------


## Cursed

Updated with Unlimited Jumping offset, some 2.4.0-2.4.3 stuff etc.
Hmm and Chaz, it doesnt take too long to read the section (not including the Glider subforum  :Big Grin: )

----------


## Cursed

Some tiny little updates...

----------


## unknown405

**EDIT**
Removing offset

----------


## eggsampler

Thanks for the offsets.

----------


## R3plic4tor

Thx alot! :>

----------


## kynox

> one offset i do know (thanks to kyonx) is 100 which is camera Z, if your interested in expanding on it, you might find this to be helpful.





```
class CCamera
{
public:
    virtual void function0(); //
    virtual void function1(); //
    virtual void function2(); //
    virtual void function3(); //
    char unknown4[4]; //0x0004
    idVec3 vecPos; //0x0008          This is just a normal 3D Vector, X,Y,Z
    idMat3 vecViewMatrix; //0x0014   This is a 3x3 Matrix. 9 floats
    float ID02621370; //0x0038  
    float ID025E7F40; //0x003C  
    float fFov; //0x0040
};
```

And its kynox, not kyonx  :Stick Out Tongue:

----------


## Cursed

Although I know your name ofc, the author of this text didnt  :Wink:  Fixed and thx for the info

----------


## arigity

bah, i misplaced an O >_> at any rate i think kyonx sounds cooler D:

----------


## Cursed

Hmm arigity +Rep 3x for helping me alot with MemoryEditing :P

----------


## Greyman

http://www.wtfbbqpwned.org/WoW.2.4.1.exe

----------


## Cursed

Thank you (although I didnt need it anymore  :Big Grin: ) Take one rep!

I gave out too much rep in the past 24 hours, sorry  :Frown:

----------


## Achilees

Reversing Gods;
First of all time for me to contribute some offsets


```
            ContinentId = 0x79B95C,
            RealZoneText = 0xC6E814,
            MinimapZoneText = 0xC6E810,
            SubZoneText = 0xC6E818,
            ZoneText = 0xC6E81C,
```

 I have verified and these offsets are working correctly now on to more my learning part in order to reverse this i looked at following subroutine


```
.text:00499CD0 ; =============== S U B R O U T I N E =======================================
.text:00499CD0
.text:00499CD0 ; Attributes: bp-based frame
.text:00499CD0
.text:00499CD0 sub_499CD0      proc near               ; DATA XREF: .data:00B98094o
.text:00499CD0
.text:00499CD0 arg_0           = dword ptr  8
.text:00499CD0
.text:00499CD0                 push    ebp
.text:00499CD1                 mov     ebp, esp
.text:00499CD3                 mov     eax, dword_C6E810
.text:00499CD8                 test    eax, eax
.text:00499CDA                 jnz     short loc_499CE1
.text:00499CDC                 mov     eax, offset byte_88C301
.text:00499CE1
.text:00499CE1 loc_499CE1:                             ; CODE XREF: sub_499CD0+Aj
.text:00499CE1                 push    eax
.text:00499CE2                 mov     eax, [ebp+arg_0]
.text:00499CE5                 push    eax
.text:00499CE6                 call    sub_72E250
.text:00499CEB                 add     esp, 8
.text:00499CEE                 mov     eax, 1
.text:00499CF3                 pop     ebp
.text:00499CF4                 retn
.text:00499CF4 sub_499CD0      endp
```

 I assumed that offset I was looking for was C6E810 although it turned out to be 86E810. Clearly this must be some fundamental thing i am supposed to know. Can anyone explain why it was not C6E810.

----------


## namreeb

Well ASLR would explain it, although that was not enabled in 2.4.3. Could you perhaps have a modified binary?

----------


## Achilees

Interesting you would say if binary was modified, TBC was the only client i did not have or could not find a clean retail version.

----------


## shauren

> Well ASLR would explain it, although that was not enabled in 2.4.3. Could you perhaps have a modified binary?


ASLR "randomizes" the base address during execution, if its not enabled then base is whatever the executable was linked with, which by default is 0x400000, not zero

----------


## namreeb

> ASLR "randomizes" the base address during execution, if its not enabled then base is whatever the executable was linked with, which by default is 0x400000, not zero


That is a good point. I didn't notice that his expected offset minus his actual was 0x400000. Maybe the most likely explanation is that he is using some library which takes an offset and adds the image base for him.

----------


## Achilees

--removing the post

----------


## Achilees

Any one had luck with DX_DEVICE or DX_DEVICE_IDX struggling a bit. Will appreciate any reversing tips

Ok, figured it out: 
Something more to contribute: 
End Scene is : 70E7279F

----------


## Achilees

For 2.4.3 will appreciate any tips / guidance to be able to reverse lua_getstate

----------


## namreeb

lua_getstate? What is that? Do you have an address? Also, your question is rather blanket-esque; akin to asking "how do I speak Spanish?"

Do you have a specific question, or questions?

----------


## Achilees

I am trying to get return values of a variable after a DOSTRING in 2.4.3. 2.4.3 does not have GetLocalizedText. I have hooked EndScene successfully and was able to do DOSTRING. Doing my work further I reviewed the approach of BABOT and am trying to make it work, code for BABOT has following 

Following is just some quick test code so excuse the in-line offsets 


```
            luaDelegates.Add("lua_dostring", 0x00706C80);
            luaDelegates.Add("lua_gettop", 0x0072DAE0);
            luaDelegates.Add("lua_register", 0x007059B0);
            luaDelegates.Add("lua_tostring", 0x0072DFF0);


            luaDelegates.Add("lua_getstate", 0x00817DB0);
```

All of the above offsets are correct and validated for 2.4.3 except lua_getstate and like your response my first question was what is "lua_getstate" tried IDA cant find any string/routines that match.

----------


## xalcon

lua_getstate is not a valid lua function. Actually, there is a function which returns the state pointer in 5.4 but in a lot of cases (if not the most) the direct offset is used. You might want to take a look at FrameScript_Execute or FrameScript_Register. Both grab the lua state inside from the offset instead of invoking a function (at least in 5.4)

----------


## namreeb

Opcode handlers:



```
Handler_SMSG_AUTH_CHALLENGE ===> 0x41C470
Handler_SMSG_AUTH_RESPONSE ===> 0x41C260
Handler_SMSG_ADDON_INFO ===> 0x41C320
Handler_SMSG_CHAR_ENUM ===> 0x41C920
Handler_SMSG_CHAR_CREATE ===> 0x41C370
Handler_SMSG_CHARACTER_LOGIN_FAILED ===> 0x41C3D0
Handler_SMSG_LOGOUT_COMPLETE ===> 0x41C400
Handler_SMSG_LOGOUT_CANCEL_ACK ===> 0x41C460
Handler_SMSG_LOGOUT_RESPONSE ===> 0x41C410
Handler_SMSG_CHAR_DELETE ===> 0x41C3A0
Handler_SMSG_CREATURE_QUERY_RESPONSE ===> 0x575080
Handler_SMSG_GAMEOBJECT_QUERY_RESPONSE ===> 0x5750A0
Handler_SMSG_ITEM_NAME_QUERY_RESPONSE ===> 0x5750C0
Handler_SMSG_ITEM_QUERY_SINGLE_RESPONSE ===> 0x5752E0
Handler_SMSG_ITEM_QUERY_MULTIPLE_RESPONSE ===> 0x5750E0
Handler_SMSG_NPC_TEXT_UPDATE ===> 0x575100
Handler_SMSG_NAME_QUERY_RESPONSE ===> 0x575440
Handler_SMSG_GUILD_QUERY_RESPONSE ===> 0x5755B0
Handler_SMSG_QUEST_QUERY_RESPONSE ===> 0x575120
Handler_SMSG_PAGE_TEXT_QUERY_RESPONSE ===> 0x5751B0
Handler_SMSG_PET_NAME_QUERY_RESPONSE ===> 0x575630
Handler_SMSG_PETITION_QUERY_RESPONSE ===> 0x5751D0
Handler_SMSG_ITEM_TEXT_QUERY_RESPONSE ===> 0x575250
Handler_SMSG_INVALIDATE_PLAYER ===> 0x575710
Handler_SMSG_ARENA_TEAM_QUERY_RESPONSE ===> 0x575270
Handler_SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE ===> 0x5752E0
Handler_SMSG_CHAR_RENAME ===> 0x46F820
Handler_SMSG_SET_PLAYER_DECLINED_NAMES_RESULT ===> 0x46F940
Handler_SMSG_REALM_SPLIT ===> 0x46E970
Handler_SMSG_KICK_REASON ===> 0x46EFB0
Handler_SMSG_MOTD ===> 0x4B6DB0
Handler_SMSG_WARDEN_DATA ===> 0x6D0BA0
Handler_SMSG_ACCOUNT_DATA_TIMES ===> 0x5BBC80
Handler_SMSG_UPDATE_ACCOUNT_DATA ===> 0x5BB5D0
Handler_SMSG_CHECK_FOR_BOTS ===> 0x5BBD00
Handler_SMSG_UPDATE_OBJECT ===> 0x46DD30
Handler_SMSG_COMPRESSED_UPDATE_OBJECT ===> 0x46DF00
Handler_SMSG_DESTROY_OBJECT ===> 0x46DB10
Handler_SMSG_PVP_CREDIT ===> 0x4A5E30
Handler_MSG_CORPSE_QUERY ===> 0x4A5E30
Handler_SMSG_CORPSE_RECLAIM_DELAY ===> 0x4A5E30
Handler_SMSG_GM_PLAYER_INFO ===> 0x4A5E30
Handler_CMSG_GM_REQUEST_PLAYER_INFO ===> 0x4A5E30
Handler_SMSG_PLAY_MUSIC ===> 0x4A5E30
Handler_SMSG_PLAY_SOUND ===> 0x4A5E30
Handler_SMSG_PLAY_OBJECT_SOUND ===> 0x4A5E30
Handler_SMSG_AREA_TRIGGER_MESSAGE ===> 0x4A5E30
Handler_SMSG_INIT_WORLD_STATES ===> 0x4A5E30
Handler_SMSG_UPDATE_WORLD_STATE ===> 0x4A5E30
Handler_SMSG_AREA_SPIRIT_HEALER_TIME ===> 0x4A5E30
Handler_SMSG_INVALID_PROMOTION_CODE ===> 0x4A5E30
Handler_SMSG_WEATHER ===> 0x4A5E30
Handler_SMSG_OVERRIDE_LIGHT ===> 0x4A5E30
Handler_SMSG_INSTANCE_DIFFICULTY ===> 0x4A5E30
Handler_MSG_SET_DUNGEON_DIFFICULTY ===> 0x4A5E30
Handler_SMSG_UPDATE_COMBO_POINTS ===> 0x4A5E30
Handler_SMSG_TOTEM_CREATED ===> 0x4A5E30
Handler_SMSG_START_MIRROR_TIMER ===> 0x4A3010
Handler_SMSG_PAUSE_MIRROR_TIMER ===> 0x4A3010
Handler_SMSG_STOP_MIRROR_TIMER ===> 0x4A3010
Handler_SMSG_PROPOSE_LEVEL_GRANT ===> 0x4A5E30
Handler_SMSG_REFER_A_FRIEND_FAILURE ===> 0x4A5E30
Handler_SMSG_DEBUGINFOSPELLMISS_OBSOLETE ===> 0x4A5E30
Handler_SMSG_CHANNEL_NOTIFY ===> 0x491E40
Handler_SMSG_CHANNEL_LIST ===> 0x48A6A0
Handler_SMSG_MESSAGECHAT ===> 0x4919F0
Handler_SMSG_TEXT_EMOTE ===> 0x488F20
Handler_SMSG_ZONE_UNDER_ATTACK ===> 0x48F660
Handler_SMSG_DEFENSE_MESSAGE ===> 0x48FB60
Handler_SMSG_SERVER_MESSAGE ===> 0x48FC80
Handler_SMSG_RAID_INSTANCE_INFO ===> 0x485C00
Handler_SMSG_RAID_INSTANCE_MESSAGE ===> 0x48FDA0
Handler_SMSG_INSTANCE_RESET ===> 0x48FFC0
Handler_SMSG_INSTANCE_RESET_FAILED ===> 0x4900B0
Handler_SMSG_UPDATE_LAST_INSTANCE ===> 0x482FA0
Handler_SMSG_UPDATE_INSTANCE_OWNERSHIP ===> 0x480F30
Handler_SMSG_EXPECTED_SPAM_RECORDS ===> 0x486880
Handler_SMSG_TITLE_EARNED ===> 0x48F800
Handler_SMSG_RESET_FAILED_NOTIFY ===> 0x490210
Handler_SMSG_GM_MESSAGECHAT ===> 0x491A10
Handler_SMSG_CHANNEL_MEMBER_COUNT ===> 0x48E150
Handler_SMSG_LOG_XPGAIN ===> 0x48FA30
Handler_SMSG_DURABILITY_DAMAGE_DEATH ===> 0x48FB20
Handler_SMSG_COMSAT_RECONNECT_TRY ===> 0x480BC0
Handler_SMSG_COMSAT_DISCONNECT ===> 0x480BE0
Handler_SMSG_COMSAT_CONNECT_FAIL ===> 0x480C00
Handler_SMSG_VOICE_CHAT_STATUS ===> 0x484EA0
Handler_SMSG_USERLIST_ADD ===> 0x488FE0
Handler_SMSG_USERLIST_REMOVE ===> 0x489200
Handler_SMSG_USERLIST_UPDATE ===> 0x484FE0
Handler_SMSG_VOICESESSION_FULL ===> 0x480C20
Handler_SMSG_INSTANCE_SAVE_CREATED ===> 0x4B7C70
Handler_SMSG_GOSSIP_MESSAGE ===> 0x4DB120
Handler_SMSG_GOSSIP_COMPLETE ===> 0x4DA7F0
Handler_SMSG_GOSSIP_POI ===> 0x4DA820
Handler_SMSG_QUERY_TIME_RESPONSE ===> 0x51DE90
Handler_SMSG_PET_SPELLS ===> 0x4E5CD0
Handler_SMSG_PET_MODE ===> 0x4E3820
Handler_SMSG_PET_ACTION_FEEDBACK ===> 0x4E3880
Handler_SMSG_PET_BROKEN ===> 0x4E3470
Handler_SMSG_INITIALIZE_FACTIONS ===> 0x5128B0
Handler_SMSG_SET_FACTION_ATWAR ===> 0x5116D0
Handler_SMSG_SET_FACTION_VISIBLE ===> 0x512930
Handler_SMSG_SET_FACTION_STANDING ===> 0x512980
Handler_SMSG_SET_FORCED_REACTIONS ===> 0x512BD0
Handler_SMSG_DUEL_REQUESTED ===> 0x510DC0
Handler_SMSG_DUEL_OUTOFBOUNDS ===> 0x510A10
Handler_SMSG_DUEL_INBOUNDS ===> 0x510A30
Handler_SMSG_DUEL_COUNTDOWN ===> 0x510B30
Handler_SMSG_DUEL_COMPLETE ===> 0x510B70
Handler_SMSG_DUEL_WINNER ===> 0x510C00
Handler_SMSG_TUTORIAL_FLAGS ===> 0x4BD7F0
Handler_SMSG_GUILD_ROSTER ===> 0x50D690
Handler_MSG_GUILD_PERMISSIONS ===> 0x50C210
Handler_MSG_GUILD_EVENT_LOG_QUERY ===> 0x50B6D0
Handler_SMSG_SEND_MAIL_RESULT ===> 0x4F10D0
Handler_SMSG_MAIL_LIST_RESULT ===> 0x4F14F0
Handler_MSG_QUERY_NEXT_MAIL_TIME ===> 0x4ED750
Handler_SMSG_RECEIVED_MAIL ===> 0x4F12A0
Handler_SMSG_BATTLEFIELD_LIST ===> 0x4F4FB0
Handler_SMSG_BATTLEFIELD_STATUS ===> 0x4F2BA0
Handler_MSG_PVP_LOG_DATA ===> 0x4F4310
Handler_SMSG_GROUP_JOINED_BATTLEGROUND ===> 0x4F2F00
Handler_MSG_BATTLEGROUND_PLAYER_POSITIONS ===> 0x4F3020
Handler_SMSG_BATTLEGROUND_PLAYER_JOINED ===> 0x4F3140
Handler_SMSG_BATTLEGROUND_PLAYER_LEFT ===> 0x4F3140
Handler_MSG_AUCTION_HELLO ===> 0x4F9C50
Handler_SMSG_AUCTION_COMMAND_RESULT ===> 0x4F9C90
Handler_SMSG_AUCTION_LIST_RESULT ===> 0x4F8C80
Handler_SMSG_AUCTION_OWNER_LIST_RESULT ===> 0x4F8F60
Handler_SMSG_AUCTION_BIDDER_LIST_RESULT ===> 0x4F9250
Handler_SMSG_AUCTION_BIDDER_NOTIFICATION ===> 0x4FA100
Handler_SMSG_AUCTION_OWNER_NOTIFICATION ===> 0x4FA480
Handler_SMSG_AUCTION_REMOVED_NOTIFICATION ===> 0x4FA810
Handler_MSG_LIST_STABLED_PETS ===> 0x4FAE40
Handler_SMSG_STABLE_RESULT ===> 0x4FB470
Handler_MSG_RAID_TARGET_UPDATE ===> 0x4BAC10
Handler_MSG_RAID_READY_CHECK ===> 0x4BAE30
Handler_MSG_RAID_READY_CHECK_CONFIRM ===> 0x4BC660
Handler_MSG_RAID_READY_CHECK_FINISHED ===> 0x4BA420
Handler_SMSG_RAID_READY_CHECK_ERROR ===> 0x4BA460
Handler_MSG_NOTIFY_PARTY_SQUELCH ===> 0x4BAFB0
Handler_SMSG_ECHO_PARTY_SQUELCH ===> 0x4BB000
Handler_MSG_INSPECT_HONOR_STATS ===> 0x5216E0
Handler_MSG_INSPECT_ARENA_TEAMS ===> 0x521790
Handler_SMSG_MINIGAME_SETUP ===> 0x509C40
Handler_SMSG_MINIGAME_STATE ===> 0x509A70
Handler_SMSG_ARENA_TEAM_ROSTER ===> 0x4FD810
Handler_SMSG_ARENA_TEAM_STATS ===> 0x4FC950
Handler_MSG_LOOKING_FOR_GROUP ===> 0x508440
Handler_SMSG_LFG_LEADER_IS_LFM ===> 0x506E10
Handler_SMSG_LFG_UPDATE ===> 0x506E10
Handler_SMSG_LFG_UPDATE_LFM ===> 0x506E10
Handler_SMSG_LFG_UPDATE_LFG ===> 0x506E10
Handler_SMSG_LFG_UPDATE_QUEUED ===> 0x506E10
Handler_SMSG_LFG_TIMEDOUT ===> 0x506E10
Handler_SMSG_LFG_OTHER_TIMEDOUT ===> 0x506E10
Handler_SMSG_LFG_AUTOJOIN_FAILED ===> 0x506E10
Handler_SMSG_LFG_AUTOJOIN_FAILED_NO_PLAYER ===> 0x506E10
Handler_SMSG_LFG_PENDING_INVITE ===> 0x506E10
Handler_SMSG_LFG_PENDING_MATCH ===> 0x506E10
Handler_SMSG_LFG_PENDING_MATCH_DONE ===> 0x506E10
Handler_SMSG_MEETINGSTONE_JOINFAILED ===> 0x506E10
Handler_SMSG_MEETINGSTONE_COMPLETE ===> 0x506E10
Handler_SMSG_MEETINGSTONE_IN_PROGRESS ===> 0x506E10
Handler_SMSG_MEETINGSTONE_MEMBER_ADDED ===> 0x506E10
Handler_SMSG_LFG_DISABLED ===> 0x506E10
Handler_SMSG_MEETINGSTONE_SETQUEUE ===> 0x504BB0
Handler_SMSG_OFFER_PETITION_ERROR ===> 0x50FAF0
Handler_SMSG_COMMENTATOR_PLAYER_INFO ===> 0x5018C0
Handler_SMSG_COMMENTATOR_MAP_INFO ===> 0x504500
Handler_SMSG_COMMENTATOR_STATE_CHANGED ===> 0x504130
Handler_SMSG_GUILD_BANK_LIST ===> 0x500D50
Handler_MSG_GUILD_BANK_LOG_QUERY ===> 0x4FE3E0
Handler_MSG_GUILD_BANK_MONEY_WITHDRAWN ===> 0x4FE690
Handler_MSG_QUERY_GUILD_BANK_TEXT ===> 0x4FE6C0
Handler_MSG_MOVE_START_FORWARD ===> 0x622050
Handler_MSG_MOVE_START_BACKWARD ===> 0x622050
Handler_MSG_MOVE_STOP ===> 0x622050
Handler_MSG_MOVE_START_STRAFE_LEFT ===> 0x622050
Handler_MSG_MOVE_START_STRAFE_RIGHT ===> 0x622050
Handler_MSG_MOVE_STOP_STRAFE ===> 0x622050
Handler_MSG_MOVE_START_ASCEND ===> 0x622050
Handler_MSG_MOVE_START_DESCEND ===> 0x622050
Handler_MSG_MOVE_STOP_ASCEND ===> 0x622050
Handler_MSG_MOVE_JUMP ===> 0x622050
Handler_MSG_MOVE_START_TURN_LEFT ===> 0x622050
Handler_MSG_MOVE_START_TURN_RIGHT ===> 0x622050
Handler_MSG_MOVE_STOP_TURN ===> 0x622050
Handler_MSG_MOVE_SET_RUN_MODE ===> 0x622050
Handler_MSG_MOVE_SET_WALK_MODE ===> 0x622050
Handler_MSG_MOVE_TELEPORT ===> 0x622050
Handler_MSG_MOVE_SET_FACING ===> 0x622050
Handler_MSG_MOVE_SET_PITCH ===> 0x622050
Handler_MSG_MOVE_TOGGLE_COLLISION_CHEAT ===> 0x622050
Handler_MSG_MOVE_TOGGLE_GRAVITY_CHEAT ===> 0x622050
Handler_MSG_MOVE_SET_RUN_SPEED ===> 0x621FF0
Handler_MSG_MOVE_SET_RUN_BACK_SPEED ===> 0x621FF0
Handler_MSG_MOVE_SET_WALK_SPEED ===> 0x621FF0
Handler_MSG_MOVE_SET_SWIM_SPEED ===> 0x621FF0
Handler_MSG_MOVE_SET_SWIM_BACK_SPEED ===> 0x621FF0
Handler_MSG_MOVE_SET_FLIGHT_SPEED ===> 0x621FF0
Handler_MSG_MOVE_SET_FLIGHT_BACK_SPEED ===> 0x621FF0
Handler_MSG_MOVE_SET_TURN_RATE ===> 0x621FF0
Handler_MSG_MOVE_ROOT ===> 0x622050
Handler_MSG_MOVE_UNROOT ===> 0x622050
Handler_MSG_MOVE_START_SWIM ===> 0x622050
Handler_MSG_MOVE_STOP_SWIM ===> 0x622050
Handler_MSG_MOVE_START_SWIM_CHEAT ===> 0x622050
Handler_MSG_MOVE_STOP_SWIM_CHEAT ===> 0x622050
Handler_MSG_MOVE_HEARTBEAT ===> 0x622050
Handler_MSG_MOVE_FALL_LAND ===> 0x622050
Handler_MSG_MOVE_UPDATE_CAN_FLY ===> 0x622050
Handler_MSG_MOVE_TELEPORT_ACK ===> 0x61AFE0
Handler_MSG_MOVE_TIME_SKIPPED ===> 0x60C000
Handler_SMSG_MONSTER_MOVE ===> 0x61FA40
Handler_SMSG_MONSTER_MOVE_TRANSPORT ===> 0x61FA40
Handler_SMSG_FORCE_RUN_SPEED_CHANGE ===> 0x61AFE0
Handler_SMSG_FORCE_RUN_BACK_SPEED_CHANGE ===> 0x61AFE0
Handler_SMSG_FORCE_SWIM_SPEED_CHANGE ===> 0x61AFE0
Handler_SMSG_FORCE_SWIM_BACK_SPEED_CHANGE ===> 0x61AFE0
Handler_SMSG_FORCE_FLIGHT_SPEED_CHANGE ===> 0x61AFE0
Handler_SMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE ===> 0x61AFE0
Handler_SMSG_FORCE_WALK_SPEED_CHANGE ===> 0x61AFE0
Handler_SMSG_FORCE_TURN_RATE_CHANGE ===> 0x61AFE0
Handler_SMSG_FORCE_MOVE_ROOT ===> 0x61AFE0
Handler_SMSG_FORCE_MOVE_UNROOT ===> 0x61AFE0
Handler_SMSG_MOVE_WATER_WALK ===> 0x61AFE0
Handler_SMSG_MOVE_LAND_WALK ===> 0x61AFE0
Handler_SMSG_MOVE_FEATHER_FALL ===> 0x61AFE0
Handler_SMSG_MOVE_NORMAL_FALL ===> 0x61AFE0
Handler_SMSG_MOVE_SET_HOVER ===> 0x61AFE0
Handler_SMSG_MOVE_UNSET_HOVER ===> 0x61AFE0
Handler_SMSG_MOVE_SET_CAN_FLY ===> 0x61AFE0
Handler_SMSG_MOVE_UNSET_CAN_FLY ===> 0x61AFE0
Handler_SMSG_MOVE_KNOCK_BACK ===> 0x61AFE0
Handler_SMSG_MOUNTSPECIAL_ANIM ===> 0x60C070
Handler_SMSG_AI_REACTION ===> 0x6062D0
Handler_MSG_MOVE_KNOCK_BACK ===> 0x622050
Handler_MSG_MOVE_HOVER ===> 0x622050
Handler_MSG_MOVE_FEATHER_FALL ===> 0x622050
Handler_MSG_MOVE_WATER_WALK ===> 0x622050
Handler_SMSG_PET_ACTION_SOUND ===> 0x606330
Handler_SMSG_PET_DISMISS_SOUND ===> 0x6063A0
Handler_SMSG_SPLINE_MOVE_ROOT ===> 0x622120
Handler_SMSG_SPLINE_MOVE_UNROOT ===> 0x622120
Handler_SMSG_SPLINE_MOVE_FEATHER_FALL ===> 0x622120
Handler_SMSG_SPLINE_MOVE_NORMAL_FALL ===> 0x622120
Handler_SMSG_SPLINE_MOVE_SET_HOVER ===> 0x622120
Handler_SMSG_SPLINE_MOVE_UNSET_HOVER ===> 0x622120
Handler_SMSG_SPLINE_MOVE_WATER_WALK ===> 0x622120
Handler_SMSG_SPLINE_MOVE_LAND_WALK ===> 0x622120
Handler_SMSG_SPLINE_MOVE_START_SWIM ===> 0x622120
Handler_SMSG_SPLINE_MOVE_STOP_SWIM ===> 0x622120
Handler_SMSG_SPLINE_MOVE_SET_RUN_MODE ===> 0x622120
Handler_SMSG_SPLINE_MOVE_SET_WALK_MODE ===> 0x622120
Handler_SMSG_SPLINE_MOVE_SET_FLYING ===> 0x622120
Handler_SMSG_SPLINE_MOVE_UNSET_FLYING ===> 0x622120
Handler_SMSG_SPLINE_SET_RUN_SPEED ===> 0x6220B0
Handler_SMSG_SPLINE_SET_RUN_BACK_SPEED ===> 0x6220B0
Handler_SMSG_SPLINE_SET_SWIM_SPEED ===> 0x6220B0
Handler_SMSG_SPLINE_SET_SWIM_BACK_SPEED ===> 0x6220B0
Handler_SMSG_SPLINE_SET_FLIGHT_SPEED ===> 0x6220B0
Handler_SMSG_SPLINE_SET_FLIGHT_BACK_SPEED ===> 0x6220B0
Handler_SMSG_SPLINE_SET_WALK_SPEED ===> 0x6220B0
Handler_SMSG_SPLINE_SET_TURN_RATE ===> 0x6220B0
Handler_SMSG_STANDSTATE_UPDATE ===> 0x61F9F0
Handler_SMSG_COMPRESSED_MOVES ===> 0x6061A0
Handler_SMSG_CLIENT_CONTROL_UPDATE ===> 0x616480
Handler_SMSG_FLIGHT_SPLINE_SYNC ===> 0x606140
Handler_SMSG_INIT_EXTRA_AURA_INFO ===> 0x613080
Handler_SMSG_SET_EXTRA_AURA_INFO ===> 0x613080
Handler_SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE ===> 0x613080
Handler_SMSG_CLEAR_EXTRA_AURA_INFO ===> 0x613080
Handler_SMSG_DISMOUNT ===> 0x622C10
Handler_SMSG_LOOT_LIST ===> 0x6060F0
Handler_SMSG_MIRRORIMAGE_DATA ===> 0x61B040
Handler_SMSG_FORCE_DISPLAY_UPDATE ===> 0x6238C0
Handler_SMSG_CAST_FAILED ===> 0x6FC590
Handler_SMSG_SPELL_START ===> 0x6FDE90
Handler_SMSG_SPELL_GO ===> 0x6FDE90
Handler_SMSG_SPELL_FAILURE ===> 0x6F5F70
Handler_SMSG_PET_CAST_FAILED ===> 0x6F6D70
Handler_SMSG_SPELL_COOLDOWN ===> 0x6F7B20
Handler_SMSG_ITEM_COOLDOWN ===> 0x6F7D30
Handler_SMSG_COOLDOWN_EVENT ===> 0x6F6BB0
Handler_SMSG_CLEAR_COOLDOWN ===> 0x6F6BB0
Handler_SMSG_COOLDOWN_CHEAT ===> 0x6F6C30
Handler_SMSG_PET_TAME_FAILURE ===> 0x6F6070
Handler_SMSG_SPELL_DELAYED ===> 0x6F5AC0
Handler_MSG_CHANNEL_START ===> 0x6F5BC0
Handler_MSG_CHANNEL_UPDATE ===> 0x6F5CE0
Handler_SMSG_PLAY_SPELL_VISUAL ===> 0x6F37A0
Handler_SMSG_PLAY_SPELL_IMPACT ===> 0x6F3830
Handler_SMSG_SET_FLAT_SPELL_MODIFIER ===> 0x6F19F0
Handler_SMSG_SET_PCT_SPELL_MODIFIER ===> 0x6F19F0
Handler_SMSG_CANCEL_AUTO_REPEAT ===> 0x6F6110
Handler_SMSG_SPELL_FAILED_OTHER ===> 0x6F3520
Handler_SMSG_GAMEOBJECT_RESET_STATE ===> 0x6F1710
Handler_SMSG_FEIGN_DEATH_RESISTED ===> 0x6F1760
Handler_SMSG_SPELL_UPDATE_CHAIN_TARGETS ===> 0x6F36E0
Handler_SMSG_ATTACKSTART ===> 0x62FEA0
Handler_SMSG_ATTACKSTOP ===> 0x62FEA0
Handler_SMSG_ATTACKERSTATEUPDATE ===> 0x62FEA0
Handler_SMSG_ATTACKSWING_NOTINRANGE ===> 0x62FEA0
Handler_SMSG_ATTACKSWING_BADFACING ===> 0x62FEA0
Handler_SMSG_ATTACKSWING_DEADTARGET ===> 0x62FEA0
Handler_SMSG_ATTACKSWING_CANT_ATTACK ===> 0x62FEA0
Handler_SMSG_ENVIRONMENTALDAMAGELOG ===> 0x62FEA0
Handler_SMSG_CLEAR_TARGET ===> 0x62FEA0
Handler_SMSG_PERIODICAURALOG ===> 0x62D060
Handler_SMSG_ENCHANTMENTLOG ===> 0x62BAE0
Handler_SMSG_PARTYKILLLOG ===> 0x62B7D0
Handler_SMSG_PROCRESIST ===> 0x62B840
Handler_SMSG_DISPEL_FAILED ===> 0x62B930
Handler_SMSG_GAMEOBJECT_PAGETEXT ===> 0x5FC100
Handler_SMSG_GAMEOBJECT_CUSTOM_ANIM ===> 0x5FC160
Handler_SMSG_GAMEOBJECT_DESPAWN_ANIM ===> 0x5FC1C0
Handler_SMSG_MOUNTRESULT ===> 0x5ED310
Handler_SMSG_DISMOUNTRESULT ===> 0x5ED310
Handler_SMSG_INVENTORY_CHANGE_FAILURE ===> 0x5ED310
Handler_SMSG_OPEN_CONTAINER ===> 0x5ED310
Handler_SMSG_ITEM_PUSH_RESULT ===> 0x5ED310
Handler_SMSG_LIST_INVENTORY ===> 0x5D9B60
Handler_SMSG_BUY_FAILED ===> 0x5D9B60
Handler_SMSG_BUY_ITEM ===> 0x5D9B60
Handler_SMSG_SELL_ITEM ===> 0x5D9B60
Handler_SMSG_LOOT_RESPONSE ===> 0x5DDDA0
Handler_SMSG_LOOT_RELEASE_RESPONSE ===> 0x5E08C0
Handler_SMSG_LOOT_REMOVED ===> 0x5E08C0
Handler_SMSG_LOOT_MONEY_NOTIFY ===> 0x5E08C0
Handler_SMSG_LOOT_ITEM_NOTIFY ===> 0x5E08C0
Handler_SMSG_LOOT_CLEAR_MONEY ===> 0x5E08C0
Handler_SMSG_LEARNED_SPELL ===> 0x5EEEA0
Handler_SMSG_SUPERCEDED_SPELL ===> 0x5EEF20
Handler_SMSG_INITIAL_SPELLS ===> 0x5E7A60
Handler_SMSG_ACTION_BUTTONS ===> 0x5D9C70
Handler_SMSG_GROUP_INVITE ===> 0x5D6380
Handler_SMSG_GROUP_CANCEL ===> 0x5D63D0
Handler_SMSG_GROUP_DECLINE ===> 0x5D6410
Handler_SMSG_GROUP_UNINVITE ===> 0x5D64D0
Handler_SMSG_GROUP_SET_LEADER ===> 0x5D6450
Handler_SMSG_GROUP_DESTROYED ===> 0x5D6500
Handler_SMSG_PARTY_COMMAND_RESULT ===> 0x5D6550
Handler_SMSG_GROUP_LIST ===> 0x5E09E0
Handler_SMSG_REAL_GROUP_UPDATE ===> 0x5D6730
Handler_SMSG_QUESTGIVER_QUEST_LIST ===> 0x5E03C0
Handler_SMSG_QUESTGIVER_QUEST_INVALID ===> 0x5E03C0
Handler_SMSG_QUESTGIVER_QUEST_DETAILS ===> 0x5E03C0
Handler_SMSG_QUESTGIVER_REQUEST_ITEMS ===> 0x5E03C0
Handler_SMSG_QUESTGIVER_OFFER_REWARD ===> 0x5E03C0
Handler_SMSG_QUESTGIVER_QUEST_COMPLETE ===> 0x5E03C0
Handler_SMSG_QUESTGIVER_QUEST_FAILED ===> 0x5E03C0
Handler_SMSG_QUESTGIVER_STATUS ===> 0x5E03C0
Handler_SMSG_QUESTGIVER_STATUS_MULTIPLE ===> 0x5E03C0
Handler_SMSG_QUESTLOG_FULL ===> 0x5E03C0
Handler_SMSG_TRAINER_LIST ===> 0x5E07E0
Handler_SMSG_TRAINER_BUY_FAILED ===> 0x5E07E0
Handler_SMSG_SET_PROFICIENCY ===> 0x5D83B0
Handler_SMSG_RESURRECT_REQUEST ===> 0x5E3590
Handler_SMSG_PLAYER_SKINNED ===> 0x5D8400
Handler_SMSG_INSPECT ===> 0x5D8430
Handler_SMSG_INSPECT_TALENT ===> 0x5EA2F0
Handler_SMSG_READ_ITEM_OK ===> 0x5E3670
Handler_SMSG_READ_ITEM_FAILED ===> 0x5E3670
Handler_SMSG_CANCEL_COMBAT ===> 0x5E8720
Handler_SMSG_TAXINODE_STATUS ===> 0x5ED310
Handler_SMSG_SHOWTAXINODES ===> 0x5ED310
Handler_SMSG_ACTIVATETAXIREPLY ===> 0x5ED310
Handler_SMSG_GUILD_INVITE ===> 0x5D67E0
Handler_SMSG_GUILD_DECLINE ===> 0x5D6850
Handler_SMSG_GUILD_INFO ===> 0x5D6890
Handler_SMSG_GUILD_EVENT ===> 0x5E13B0
Handler_SMSG_GUILD_COMMAND_RESULT ===> 0x5D6A00
Handler_MSG_SAVE_GUILD_EMBLEM ===> 0x5E1310
Handler_MSG_TABARDVENDOR_ACTIVATE ===> 0x5D69D0
Handler_SMSG_PETITION_SHOWLIST ===> 0x5E79B0
Handler_SMSG_PETITION_SHOW_SIGNATURES ===> 0x5E79B0
Handler_SMSG_PETITION_SIGN_RESULTS ===> 0x5E79B0
Handler_MSG_PETITION_DECLINE ===> 0x5E79B0
Handler_SMSG_TURN_IN_PETITION_RESULTS ===> 0x5E79B0
Handler_MSG_PETITION_RENAME ===> 0x5E79B0
Handler_SMSG_UPDATE_AURA_DURATION ===> 0x5ED310
Handler_SMSG_BINDPOINTUPDATE ===> 0x5ED310
Handler_SMSG_BINDZONEREPLY ===> 0x5ED310
Handler_SMSG_EMOTE ===> 0x5D9CA0
Handler_SMSG_PLAYERBOUND ===> 0x5ED310
Handler_SMSG_PLAYERBINDERROR ===> 0x5ED310
Handler_SMSG_NEW_TAXI_PATH ===> 0x5ED310
Handler_SMSG_PET_NAME_INVALID ===> 0x5ED310
Handler_SMSG_EXPLORATION_EXPERIENCE ===> 0x5ED310
Handler_SMSG_PARTY_MEMBER_STATS ===> 0x5D96A0
Handler_SMSG_PARTY_MEMBER_STATS_FULL ===> 0x5D96A0
Handler_SMSG_QUESTUPDATE_FAILED ===> 0x5E04E0
Handler_SMSG_QUESTUPDATE_FAILEDTIMER ===> 0x5E04E0
Handler_SMSG_QUESTUPDATE_COMPLETE ===> 0x5E04E0
Handler_SMSG_QUESTUPDATE_ADD_KILL ===> 0x5E04E0
Handler_SMSG_QUESTUPDATE_ADD_ITEM ===> 0x5E04E0
Handler_SMSG_QUEST_CONFIRM_ACCEPT ===> 0x5D62E0
Handler_SMSG_SHOW_BANK ===> 0x5ED310
Handler_SMSG_BUY_BANK_SLOT_RESULT ===> 0x5ED310
Handler_SMSG_LEVELUP_INFO ===> 0x5ED310
Handler_MSG_MINIMAP_PING ===> 0x5ED310
Handler_SMSG_TRIGGER_CINEMATIC ===> 0x5ED310
Handler_SMSG_ITEM_TIME_UPDATE ===> 0x5EBE30
Handler_SMSG_ITEM_ENCHANT_TIME_UPDATE ===> 0x5EBE30
Handler_MSG_RANDOM_ROLL ===> 0x5ED310
Handler_SMSG_FISH_NOT_HOOKED ===> 0x5ED310
Handler_SMSG_FISH_ESCAPED ===> 0x5ED310
Handler_SMSG_REMOVED_SPELL ===> 0x5ED310
Handler_SMSG_FORCEACTIONSHOW ===> 0x5ED310
Handler_SMSG_GODMODE ===> 0x5ED310
Handler_SMSG_PETGODMODE ===> 0x5ED310
Handler_SMSG_IGNORE_REQUIREMENTS_CHEAT ===> 0x5ED310
Handler_SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT ===> 0x5ED310
Handler_SMSG_CLEAR_FAR_SIGHT_IMMEDIATE ===> 0x5ED310
Handler_SMSG_GMTICKET_CREATE ===> 0x5ED310
Handler_SMSG_GMTICKET_UPDATETEXT ===> 0x5ED310
Handler_SMSG_GMTICKET_GETTICKET ===> 0x5ED310
Handler_SMSG_GMTICKET_DELETETICKET ===> 0x5ED310
Handler_SMSG_CHAT_WRONG_FACTION ===> 0x5ED310
Handler_SMSG_CHAT_PLAYER_NOT_FOUND ===> 0x5ED310
Handler_SMSG_CHAT_RESTRICTED ===> 0x5ED310
Handler_SMSG_GMTICKET_SYSTEMSTATUS ===> 0x5ED310
Handler_SMSG_SET_REST_START ===> 0x5ED310
Handler_SMSG_SPIRIT_HEALER_CONFIRM ===> 0x5ED310
Handler_MSG_TALENT_WIPE_CONFIRM ===> 0x5ED310
Handler_SMSG_PET_UNLEARN_CONFIRM ===> 0x5ED310
Handler_SMSG_BINDER_CONFIRM ===> 0x5ED310
Handler_SMSG_SPELLLOGEXECUTE ===> 0x5E39A0
Handler_SMSG_SPELLLOGMISS ===> 0x5E3850
Handler_SMSG_SPELLDAMAGESHIELD ===> 0x5DCB10
Handler_SMSG_SPELLINSTAKILLLOG ===> 0x5D84D0
Handler_SMSG_SPELLNONMELEEDAMAGELOG ===> 0x5E3E20
Handler_SMSG_SPELLHEALLOG ===> 0x5E4100
Handler_SMSG_SPELLENERGIZELOG ===> 0x5E4220
Handler_SMSG_SPELLDISPELLOG ===> 0x5DCBF0
Handler_SMSG_SPELLSTEALLOG ===> 0x5DCBF0
Handler_SMSG_PLAYER_COMBAT_XP_GAIN_OBSOLETE ===> 0x5DCBF0
Handler_SMSG_RESURRECT_FAILED ===> 0x5D85C0
Handler_SMSG_SPELLORDAMAGE_IMMUNE ===> 0x5D8520
Handler_MSG_QUEST_PUSH_RESULT ===> 0x5ED310
Handler_SMSG_DAMAGE_CALC_LOG ===> 0x5E4330
Handler_SMSG_RAID_GROUP_ONLY ===> 0x5ED310
Handler_SMSG_LOOT_START_ROLL ===> 0x5E08C0
Handler_SMSG_LOOT_ALL_PASSED ===> 0x5E08C0
Handler_SMSG_LOOT_ROLL_WON ===> 0x5E08C0
Handler_SMSG_LOOT_ROLL ===> 0x5E08C0
Handler_SMSG_LOOT_MASTER_LIST ===> 0x5E08C0
Handler_SMSG_SUMMON_REQUEST ===> 0x5D9BF0
Handler_SMSG_SUMMON_CANCEL ===> 0x5D6360
Handler_SMSG_PLAY_TIME_WARNING ===> 0x5D77D0
Handler_SMSG_GM_TICKET_STATUS_UPDATE ===> 0x5E19C0
Handler_SMSG_ARENA_TEAM_INVITE ===> 0x5D6D50
Handler_SMSG_ARENA_TEAM_EVENT ===> 0x5D6DD0
Handler_SMSG_ARENA_TEAM_COMMAND_RESULT ===> 0x5D6F80
Handler_SMSG_ARENA_ERROR ===> 0x5D7310
Handler_SMSG_DEATH_RELEASE_LOC ===> 0x5ED310
Handler_SMSG_FORCED_DEATH_UPDATE ===> 0x5ED310
Handler_SMSG_TIME_SYNC_REQ ===> 0x5E4540
Handler_SMSG_VOICE_SESSION_ROSTER_UPDATE ===> 0x5D7380
Handler_SMSG_VOICE_SESSION_LEAVE ===> 0x5D7720
Handler_SMSG_VOICE_SET_TALKER_MUTED ===> 0x5D7770
Handler_SMSG_VOICE_PARENTAL_CONTROLS ===> 0x5D9D20
Handler_SMSG_CROSSED_INEBRIATION_THRESHOLD ===> 0x5DA020
Handler_SMSG_COMPLAIN_RESULT ===> 0x5ED310
Handler_SMSG_FEATURE_SYSTEM_STATUS ===> 0x5ED310
Handler_SMSG_AVAILABLE_VOICE_CHANNEL ===> 0x5D7600
Handler_CMSG_REPORT_PVP_AFK_RESULT ===> 0x5ED310
Handler_CMSG_GROUPACTION_THROTTLED ===> 0x5D6530
Handler_SMSG_SEND_UNLEARN_SPELLS ===> 0x5EA4D0
Handler_SMSG_WHO ===> 0x5BAE50
Handler_SMSG_WHOIS ===> 0x5B5940
Handler_SMSG_RWHOIS ===> 0x5B5990
Handler_SMSG_CONTACT_LIST ===> 0x5BAE30
Handler_SMSG_FRIEND_STATUS ===> 0x5BADE0
Handler_SMSG_TRADE_STATUS ===> 0x5F4DA0
Handler_SMSG_TRADE_STATUS_EXTENDED ===> 0x5F56F0
Handler_SMSG_GAMESPEED_SET ===> 0x6D3450
Handler_SMSG_LOGIN_SETTIMESPEED ===> 0x6D3520
Handler_SMSG_GAMETIME_UPDATE ===> 0x6D3630
Handler_SMSG_SERVERTIME ===> 0x6D36A0
Handler_SMSG_GAMETIME_SET ===> 0x6D37B0
Handler_SMSG_NOTIFICATION ===> 0x401210
Handler_SMSG_PLAYED_TIME ===> 0x401350
Handler_SMSG_NEW_WORLD ===> 0x403300
Handler_SMSG_TRANSFER_PENDING ===> 0x401420
Handler_SMSG_TRANSFER_ABORTED ===> 0x402F60
Handler_SMSG_LOGIN_VERIFY_WORLD ===> 0x4033D0
Handler_SMSG_KICK_REASON ===> 0x46EFB0
```

Note that sometimes the actual handler that is registered is used for multiple opcodes. In some of these cases, I have replaced the above address with the function which is called by those 'wrappers'.

----------


## namreeb

Lua functions:



```
Script_GetText ===> 0x708870
Script_GetNumFrames ===> 0x708BA0
Script_EnumerateFrames ===> 0x708AB0
Script_CreateFont ===> 0x708900
Script_CreateFrame ===> 0x708C10
Script_GetFramesRegisteredForEvent ===> 0x708F80
Script_GetCurrentKeyBoardFocus ===> 0x708970
Script_FrameXML_Debug ===> 0x494AC0
Script_GetBuildInfo ===> 0x494B20
Script_ReloadUI ===> 0x4A33E0
Script_RegisterForSave ===> 0x4AB050
Script_RegisterForSavePerCharacter ===> 0x4AB0C0
Script_SetLayoutMode ===> 0x494B80
Script_IsModifierKeyDown ===> 0x499390
Script_IsLeftShiftKeyDown ===> 0x4993E0
Script_IsRightShiftKeyDown ===> 0x499420
Script_IsShiftKeyDown ===> 0x499460
Script_IsLeftControlKeyDown ===> 0x4994B0
Script_IsRightControlKeyDown ===> 0x4994F0
Script_IsControlKeyDown ===> 0x499530
Script_IsLeftAltKeyDown ===> 0x499580
Script_IsRightAltKeyDown ===> 0x4995C0
Script_IsAltKeyDown ===> 0x499600
Script_IsMouseButtonDown ===> 0x499650
Script_GetMouseButtonName ===> 0x499730
Script_GetMouseButtonClicked ===> 0x494BD0
Script_SetConsoleKey ===> 0x494C00
Script_Screenshot ===> 0x4998B0
Script_GetFramerate ===> 0x495870
Script_TogglePerformanceDisplay ===> 0x62E7D0
Script_TogglePerformancePause ===> 0x62E7D0
Script_TogglePerformanceValues ===> 0x62E7D0
Script_ResetPerformanceValues ===> 0x62E7D0
Script_GetDebugStats ===> 0x62E7D0
Script_RegisterCVar ===> 0x4950F0
Script_GetCVar ===> 0x4951A0
Script_SetCVar ===> 0x4997A0
Script_GetCVarDefault ===> 0x4723D0
Script_GetWorldDetail ===> 0x495220
Script_SetWorldDetail ===> 0x4952A0
Script_GetWaterDetail ===> 0x4953B0
Script_SetWaterDetail ===> 0x4953D0
Script_GetFarclip ===> 0x495400
Script_SetFarclip ===> 0x495430
Script_GetTerrainMip ===> 0x4954D0
Script_SetTerrainMip ===> 0x495500
Script_GetTexLodBias ===> 0x4955A0
Script_SetTexLodBias ===> 0x4955D0
Script_SetBaseMip ===> 0x495770
Script_GetBaseMip ===> 0x495740
Script_GetGamma ===> 0x495670
Script_SetGamma ===> 0x4956A0
Script_ToggleTris ===> 0x62E7D0
Script_TogglePortals ===> 0x62E7D0
Script_ToggleCollision ===> 0x62E7D0
Script_ToggleCollisionDisplay ===> 0x62E7D0
Script_TogglePlayerBounds ===> 0x62E7D0
Script_Stuck ===> 0x495810
Script_Logout ===> 0x495830
Script_Quit ===> 0x495850
Script_ShowNameplates ===> 0x4958A0
Script_HideNameplates ===> 0x4958B0
Script_ShowFriendNameplates ===> 0x4958C0
Script_HideFriendNameplates ===> 0x4958D0
Script_SetCursor ===> 0x4958E0
Script_ResetCursor ===> 0x495D30
Script_ClearCursor ===> 0x4A33F0
Script_CursorHasItem ===> 0x4998D0
Script_CursorHasSpell ===> 0x499910
Script_CursorHasMacro ===> 0x499950
Script_CursorHasMoney ===> 0x499990
Script_GetCursorInfo ===> 0x4999D0
Script_EquipCursorItem ===> 0x4A3410
Script_DeleteCursorItem ===> 0x4A3560
Script_EquipPendingItem ===> 0x49E3B0
Script_CancelPendingEquip ===> 0x49E440
Script_TargetUnit ===> 0x4A6FB0
Script_TargetNearestEnemy ===> 0x4A7010
Script_TargetNearestEnemyPlayer ===> 0x4A7050
Script_TargetNearestFriend ===> 0x4A7090
Script_TargetNearestFriendPlayer ===> 0x4A70D0
Script_TargetNearestPartyMember ===> 0x4A7110
Script_TargetNearestRaidMember ===> 0x4A7140
Script_TargetLastTarget ===> 0x4A7170
Script_TargetLastEnemy ===> 0x4A71B0
Script_TargetLastFriend ===> 0x4A71C0
Script_AttackTarget ===> 0x49E4D0
Script_AssistUnit ===> 0x4A71D0
Script_FocusUnit ===> 0x4A36B0
Script_FollowUnit ===> 0x4A36F0
Script_ClearTarget ===> 0x4A72D0
Script_ClearFocus ===> 0x4A3810
Script_AutoEquipCursorItem ===> 0x49E500
Script_ToggleSheath ===> 0x49E530
Script_GetZoneText ===> 0x499C40
Script_GetRealZoneText ===> 0x499C70
Script_GetSubZoneText ===> 0x499CA0
Script_GetMinimapZoneText ===> 0x499CD0
Script_InitiateTrade ===> 0x49E560
Script_CanInspect ===> 0x4A3830
Script_NotifyInspect ===> 0x4A3990
Script_InviteUnit ===> 0x49E650
Script_UninviteUnit ===> 0x49E6B0
Script_RequestTimePlayed ===> 0x499EC0
Script_RepopMe ===> 0x49E750
Script_AcceptResurrect ===> 0x49E780
Script_DeclineResurrect ===> 0x49E7B0
Script_ResurrectHasSickness ===> 0x499F30
Script_ResurrectHasTimer ===> 0x499F70
Script_BeginTrade ===> 0x495DE0
Script_CancelTrade ===> 0x495DF0
Script_AcceptGroup ===> 0x49E7E0
Script_DeclineGroup ===> 0x49E810
Script_AcceptGuild ===> 0x49E840
Script_DeclineGuild ===> 0x49E870
Script_AcceptArenaTeam ===> 0x49E8A0
Script_DeclineArenaTeam ===> 0x49E8D0
Script_CancelLogout ===> 0x49E900
Script_ForceLogout ===> 0x495E00
Script_ForceQuit ===> 0x495E10
Script_GetCursorMoney ===> 0x499FC0
Script_DropCursorMoney ===> 0x4A5240
Script_PickupPlayerMoney ===> 0x4A5260
Script_HasSoulstone ===> 0x49E920
Script_UseSoulstone ===> 0x49EA20
Script_HasKey ===> 0x49EAD0
Script_GuildInvite ===> 0x49A000
Script_GuildUninvite ===> 0x49A0B0
Script_GuildPromote ===> 0x49A160
Script_GuildDemote ===> 0x49A210
Script_GuildSetLeader ===> 0x49A2C0
Script_GuildSetMOTD ===> 0x49A370
Script_GuildLeave ===> 0x49A4A0
Script_GuildDisband ===> 0x49A510
Script_GuildInfo ===> 0x49A580
Script_ArenaTeamInviteByName ===> 0x49A5F0
Script_ArenaTeamLeave ===> 0x49A6F0
Script_ArenaTeamUninviteByName ===> 0x49A7D0
Script_ArenaTeamSetLeaderByName ===> 0x49A8E0
Script_ArenaTeamDisband ===> 0x49A9F0
Script_GetScreenWidth ===> 0x49EB40
Script_GetScreenHeight ===> 0x49EBA0
Script_GetDamageBonusStat ===> 0x49EC00
Script_GetReleaseTimeRemaining ===> 0x49AAD0
Script_GetCorpseRecoveryDelay ===> 0x49AB10
Script_GetInstanceBootTimeRemaining ===> 0x49AB50
Script_GetSummonConfirmTimeLeft ===> 0x49AB90
Script_GetSummonConfirmSummoner ===> 0x49ABD0
Script_GetSummonConfirmAreaName ===> 0x49AC40
Script_ConfirmSummon ===> 0x49EC90
Script_CancelSummon ===> 0x49ED50
Script_GetCursorPosition ===> 0x472B10
Script_GetNetStats ===> 0x495E20
Script_SitStandOrDescendStart ===> 0x49EE10
Script_StopCinematic ===> 0x4A5300
Script_RunScript ===> 0x495E90
Script_CheckInteractDistance ===> 0x49EE80
Script_GetScreenResolutions ===> 0x4A5640
Script_GetCurrentResolution ===> 0x4A56C0
Script_SetScreenResolution ===> 0x4A5790
Script_GetRefreshRates ===> 0x4A58D0
Script_SetupFullscreenScale ===> 0x49ACD0
Script_GetMultisampleFormats ===> 0x4A5A80
Script_GetCurrentMultisampleFormat ===> 0x4A5B10
Script_SetMultisampleFormat ===> 0x4A5BE0
Script_RandomRoll ===> 0x49ADC0
Script_OpeningCinematic ===> 0x49AEA0
Script_InCinematic ===> 0x49AF10
Script_IsWindowsClient ===> 0x4C16B0
Script_IsMacClient ===> 0x4722F0
Script_IsLinuxClient ===> 0x4722F0
Script_GetGMTicket ===> 0x49F3C0
Script_NewGMTicket ===> 0x49F3F0
Script_UpdateGMTicket ===> 0x49F480
Script_DeleteGMTicket ===> 0x49F4F0
Script_GMSurveyQuestion ===> 0x49F520
Script_GMSurveyAnswerSubmit ===> 0x49AF50
Script_GMSurveyCommentSubmit ===> 0x49B060
Script_GMSurveySubmit ===> 0x49F5A0
Script_GetGMStatus ===> 0x49B0B0
Script_AcceptXPLoss ===> 0x49F5B0
Script_CheckSpiritHealerDist ===> 0x49F5F0
Script_CheckTalentMasterDist ===> 0x49F650
Script_CheckPetUntrainerDist ===> 0x49F6B0
Script_CheckBinderDist ===> 0x49F710
Script_RetrieveCorpse ===> 0x49F770
Script_BindEnchant ===> 0x4A3BB0
Script_ReplaceEnchant ===> 0x49B120
Script_ReplaceTradeEnchant ===> 0x495F10
Script_NotWhileDeadError ===> 0x49B160
Script_GetRestState ===> 0x49F820
Script_GetXPExhaustion ===> 0x49F8D0
Script_GetTimeToWellRested ===> 0x4722F0
Script_GMRequestPlayerInfo ===> 0x53F8D0
Script_GetCoinIcon ===> 0x495F20
Script_GetCoinText ===> 0x495FE0
Script_IsSubZonePVPPOI ===> 0x49B170
Script_GetZonePVPInfo ===> 0x49F9C0
Script_TogglePVP ===> 0x49B1D0
Script_SetPVP ===> 0x49B240
Script_GetPVPDesired ===> 0x49FBD0
Script_GetPVPTimer ===> 0x49FC20
Script_ConfirmBindOnUse ===> 0x4960B0
Script_SetPortraitToTexture ===> 0x49B300
Script_GetLocale ===> 0x4713B0
Script_GetGMTicketCategories ===> 0x49B430
Script_DropItemOnUnit ===> 0x4A3BD0
Script_RestartGx ===> 0x4960C0
Script_RestoreVideoDefaults ===> 0x4960E0
Script_GetBindLocation ===> 0x49B4B0
Script_GetVideoCaps ===> 0x49B520
Script_ConfirmTalentWipe ===> 0x49FC70
Script_ConfirmPetUnlearn ===> 0x49FCB0
Script_ConfirmBinder ===> 0x49FCF0
Script_ShowingHelm ===> 0x49FD30
Script_ShowingCloak ===> 0x49FD90
Script_ShowHelm ===> 0x49FDF0
Script_ShowCloak ===> 0x49FE40
Script_SetEuropeanNumbers ===> 0x4960F0
Script_GetAreaSpiritHealerTime ===> 0x49B650
Script_AcceptAreaSpiritHeal ===> 0x4A5D90
Script_CancelAreaSpiritHeal ===> 0x49B690
Script_GetMouseFocus ===> 0x49B6A0
Script_GetRealmName ===> 0x496110
Script_GetItemQualityColor ===> 0x496130
Script_GetItemInfo ===> 0x49B6F0
Script_GetItemGem ===> 0x49FE90
Script_GetExtendedItemInfo ===> 0x62E7D0
Script_GetItemIcon ===> 0x49B990
Script_GetItemFamily ===> 0x4962B0
Script_GetItemCount ===> 0x4A0060
Script_GetItemSpell ===> 0x4A0180
Script_GetItemCooldown ===> 0x496310
Script_PickupItem ===> 0x4A5DA0
Script_IsCurrentItem ===> 0x49BA60
Script_IsUsableItem ===> 0x4A0210
Script_IsHelpfulItem ===> 0x4A03C0
Script_IsHarmfulItem ===> 0x4A04A0
Script_IsConsumableItem ===> 0x4A0580
Script_IsEquippableItem ===> 0x4963B0
Script_IsEquippedItem ===> 0x4A0690
Script_IsEquippedItemType ===> 0x4A08B0
Script_IsDressableItem ===> 0x4A0730
Script_ItemHasRange ===> 0x4A09E0
Script_IsItemInRange ===> 0x4A0AD0
Script_GetNumAddOns ===> 0x471990
Script_GetAddOnInfo ===> 0x496430
Script_GetAddOnMetadata ===> 0x496670
Script_UpdateAddOnMemoryUsage ===> 0x496750
Script_GetAddOnMemoryUsage ===> 0x496770
Script_GetScriptCPUUsage ===> 0x496850
Script_UpdateAddOnCPUUsage ===> 0x496880
Script_GetAddOnCPUUsage ===> 0x4968A0
Script_GetFunctionCPUUsage ===> 0x496960
Script_GetFrameCPUUsage ===> 0x49BC70
Script_GetEventCPUUsage ===> 0x496A00
Script_ResetCPUUsage ===> 0x496A70
Script_GetAddOnDependencies ===> 0x49BD90
Script_EnableAddOn ===> 0x496A80
Script_EnableAllAddOns ===> 0x496B40
Script_DisableAddOn ===> 0x496B80
Script_DisableAllAddOns ===> 0x496C40
Script_ResetDisabledAddOns ===> 0x496C80
Script_IsAddOnLoadOnDemand ===> 0x496CA0
Script_IsAddOnLoaded ===> 0x496D70
Script_LoadAddOn ===> 0x4A86E0
Script_PartialPlayTime ===> 0x4A0BF0
Script_NoPlayTime ===> 0x4A0C60
Script_GetBillingTimeRested ===> 0x472CF0
Script_CanShowResetInstances ===> 0x49E710
Script_ResetInstances ===> 0x499D00
Script_IsInInstance ===> 0x499D70
Script_GetInstanceDifficulty ===> 0x499E00
Script_GetDefaultDungeonDifficulty ===> 0x499E40
Script_GetCurrentDungeonDifficulty ===> 0x499E80
Script_SetDungeonDifficulty ===> 0x4A3A80
Script_ReportBug ===> 0x495D40
Script_ReportSuggestion ===> 0x495D90
Script_GetMirrorTimerInfo ===> 0x4A3D20
Script_GetMirrorTimerProgress ===> 0x49BE80
Script_GetNumTitles ===> 0x49ACA0
Script_GetCurrentTitle ===> 0x49EFE0
Script_SetCurrentTitle ===> 0x49F040
Script_IsTitleKnown ===> 0x49F110
Script_GetTitleName ===> 0x49F1D0
Script_UseItemByName ===> 0x4A0CD0
Script_EquipItemByName ===> 0x4A0D80
Script_SetAutoLootDefault ===> 0x49BF20
Script_GetAutoLootDefault ===> 0x49BF40
Script_GetExistingLocales ===> 0x496E40
Script_InCombatLockdown ===> 0x496E80
Script_StartAttack ===> 0x4A3E00
Script_StopAttack ===> 0x4A1070
Script_SetTaxiBenchmarkMode ===> 0x49BF80
Script_GetTaxiBenchmarkMode ===> 0x4A10C0
Script_Dismount ===> 0x4A1120
Script_VoicePushToTalkStart ===> 0x496EC0
Script_VoicePushToTalkStop ===> 0x496EC0
Script_SetUIVisibility ===> 0x4A1150
Script_IsReferAFriendLinked ===> 0x4A1180
Script_CanGrantLevel ===> 0x4A11F0
Script_GrantLevel ===> 0x4A1260
Script_CanSummonFriend ===> 0x4A1310
Script_SummonFriend ===> 0x4A1380
Script_GetSummonFriendCooldown ===> 0x496ED0
Script_GetTotemInfo ===> 0x4A1480
Script_GetTotemTimeLeft ===> 0x49C0A0
Script_DestroyTotem ===> 0x49C150
Script_GetNumDeclensionSets ===> 0x496F70
Script_DeclineName ===> 0x4724B0
Script_AcceptLevelGrant ===> 0x4A3EC0
Script_DeclineLevelGrant ===> 0x49C210
Script_GetNumBindings ===> 0x4D3510
Script_GetBinding ===> 0x4D3D70
Script_SetBinding ===> 0x4D8840
Script_SetBindingSpell ===> 0x4D88D0
Script_SetBindingItem ===> 0x4D89E0
Script_SetBindingMacro ===> 0x4D8AF0
Script_SetBindingClick ===> 0x4D8C00
Script_SetOverrideBinding ===> 0x4D8D40
Script_SetOverrideBindingSpell ===> 0x4D8E30
Script_SetOverrideBindingItem ===> 0x4D8F70
Script_SetOverrideBindingMacro ===> 0x4D90B0
Script_SetOverrideBindingClick ===> 0x4D91F0
Script_ClearOverrideBindings ===> 0x4D5850
Script_GetBindingKey ===> 0x4D3E10
Script_GetBindingAction ===> 0x4D78F0
Script_GetBindingByKey ===> 0x4D7960
Script_RunBinding ===> 0x4D4D90
Script_GetCurrentBindingSet ===> 0x4D3540
Script_LoadBindings ===> 0x4D9360
Script_SaveBindings ===> 0x4D93B0
Script_GetNumModifiedClickActions ===> 0x4D3570
Script_GetModifiedClickAction ===> 0x4D3E90
Script_SetModifiedClick ===> 0x4D4E20
Script_GetModifiedClick ===> 0x4D4EA0
Script_IsModifiedClick ===> 0x4D4F60
Script_GetClickFrame ===> 0x4D9420
Script_SecureCmdOptionParse ===> 0x4E9590
Script_RunMacro ===> 0x4EBA50
Script_RunMacroText ===> 0x4EAF60
Script_StopMacro ===> 0x4E9640
Script_CreateMacro ===> 0x4ECCF0
Script_GetNumMacros ===> 0x4E9650
Script_GetMacroInfo ===> 0x4EBA80
Script_GetMacroBody ===> 0x4EBB60
Script_DeleteMacro ===> 0x4EBB90
Script_EditMacro ===> 0x4EBBC0
Script_SetMacroItem ===> 0x4EBCF0
Script_GetMacroItem ===> 0x4EBE20
Script_SetMacroSpell ===> 0x4EBF70
Script_GetMacroSpell ===> 0x4EC0A0
Script_GetNumMacroIcons ===> 0x4EB010
Script_GetNumMacroItemIcons ===> 0x4EB060
Script_GetMacroIconInfo ===> 0x4E9920
Script_GetMacroItemIconInfo ===> 0x4E9A30
Script_PickupMacro ===> 0x4EC140
Script_GetMacroIndexByName ===> 0x4EB220
Script_GetRunningMacro ===> 0x4E96B0
Script_GetRunningMacroButton ===> 0x4E9710
Script_JumpOrAscendStart ===> 0x534400
Script_AscendStop ===> 0x534510
Script_DescendStop ===> 0x534580
Script_ToggleRun ===> 0x533F90
Script_ToggleAutoRun ===> 0x5345B0
Script_MoveForwardStart ===> 0x5345F0
Script_MoveForwardStop ===> 0x534620
Script_MoveBackwardStart ===> 0x534650
Script_MoveBackwardStop ===> 0x534680
Script_TurnLeftStart ===> 0x5346B0
Script_TurnLeftStop ===> 0x5346E0
Script_TurnRightStart ===> 0x534710
Script_TurnRightStop ===> 0x534740
Script_StrafeLeftStart ===> 0x534770
Script_StrafeLeftStop ===> 0x5347A0
Script_StrafeRightStart ===> 0x5347D0
Script_StrafeRightStop ===> 0x534800
Script_PitchUpStart ===> 0x534830
Script_PitchUpStop ===> 0x534860
Script_PitchDownStart ===> 0x534890
Script_PitchDownStop ===> 0x5348C0
Script_TurnOrActionStart ===> 0x5348F0
Script_TurnOrActionStop ===> 0x534930
Script_CameraOrSelectOrMoveStart ===> 0x534960
Script_CameraOrSelectOrMoveStop ===> 0x5349A0
Script_MoveAndSteerStart ===> 0x5349F0
Script_MoveAndSteerStop ===> 0x534A40
Script_SetMouselookOverrideBinding ===> 0x5355C0
Script_MouselookStart ===> 0x534D40
Script_MouselookStop ===> 0x534A80
Script_IsMouselooking ===> 0x533260
Script_CameraZoomIn ===> 0x539650
Script_CameraZoomOut ===> 0x5396A0
Script_MoveViewInStart ===> 0x537160
Script_MoveViewInStop ===> 0x537170
Script_MoveViewOutStart ===> 0x537180
Script_MoveViewOutStop ===> 0x537190
Script_MoveViewLeftStart ===> 0x5371C0
Script_MoveViewLeftStop ===> 0x5371D0
Script_MoveViewRightStart ===> 0x5371A0
Script_MoveViewRightStop ===> 0x5371B0
Script_MoveViewUpStart ===> 0x5371E0
Script_MoveViewUpStop ===> 0x5371F0
Script_MoveViewDownStart ===> 0x537200
Script_MoveViewDownStop ===> 0x537210
Script_ToggleMouseMove ===> 0x53D090
Script_SetView ===> 0x53C120
Script_SaveView ===> 0x537220
Script_ResetView ===> 0x53C880
Script_NextView ===> 0x53C8E0
Script_PrevView ===> 0x53C8F0
Script_FlipCameraYaw ===> 0x537280
Script_PlaySound ===> 0x7B7250
Script_PlayMusic ===> 0x7B6BC0
Script_PlaySoundFile ===> 0x7B6C20
Script_StopMusic ===> 0x7B6C80
Script_Sound_GameSystem_GetNumInputDrivers ===> 0x7B6E90
Script_Sound_GameSystem_GetInputDriverNameByIndex ===> 0x7B6ED0
Script_Sound_GameSystem_GetNumOutputDrivers ===> 0x7B6F90
Script_Sound_GameSystem_GetOutputDriverNameByIndex ===> 0x7B6FD0
Script_Sound_GameSystem_RestartSoundSystem ===> 0x7B7090
Script_Sound_ChatSystem_GetNumInputDrivers ===> 0x7B6C90
Script_Sound_ChatSystem_GetInputDriverNameByIndex ===> 0x7B6CD0
Script_Sound_ChatSystem_GetNumOutputDrivers ===> 0x7B6D90
Script_Sound_ChatSystem_GetOutputDriverNameByIndex ===> 0x7B6DD0
Script_VoiceChat_StartCapture ===> 0x7B7350
Script_VoiceChat_StopCapture ===> 0x7B70B0
Script_VoiceChat_RecordLoopbackSound ===> 0x7B70C0
Script_VoiceChat_StopRecordingLoopbackSound ===> 0x7B7130
Script_VoiceChat_PlayLoopbackSound ===> 0x7B7140
Script_VoiceChat_StopPlayingLoopbackSound ===> 0x7B7150
Script_VoiceChat_IsRecordingLoopbackSound ===> 0x7B7160
Script_VoiceChat_IsPlayingLoopbackSound ===> 0x7B7190
Script_VoiceChat_GetCurrentMicrophoneSignalLevel ===> 0x7B71C0
Script_VoiceChat_ActivatePrimaryCaptureCallback ===> 0x7B71F0
Script_SpellIsTargeting ===> 0x6F1A70
Script_SpellCanTargetItem ===> 0x6F1AB0
Script_SpellTargetItem ===> 0x6F3900
Script_SpellCanTargetUnit ===> 0x6F6120
Script_SpellTargetUnit ===> 0x6FC7A0
Script_SpellStopTargeting ===> 0x6F6C90
Script_SpellStopCasting ===> 0x6F61B0
Script_GetTime ===> 0x53F800
Script_GetGameTime ===> 0x53F840
Script_ConsoleExec ===> 0x53F880
Script_ReadFile ===> 0x53F8D0
Script_DeleteFile ===> 0x53F8D0
Script_AppendToFile ===> 0x53F8D0
Script_GetAccountExpansionLevel ===> 0x53F8F0
Script_UnitExists ===> 0x541F30
Script_UnitIsVisible ===> 0x541FC0
Script_UnitIsUnit ===> 0x542010
Script_UnitIsPlayer ===> 0x5420F0
Script_UnitIsInMyGuild ===> 0x542170
Script_UnitIsCorpse ===> 0x5422A0
Script_UnitIsPartyLeader ===> 0x542300
Script_UnitIsRaidOfficer ===> 0x542390
Script_UnitInParty ===> 0x5423F0
Script_UnitPlayerOrPetInParty ===> 0x542450
Script_UnitInRaid ===> 0x5424B0
Script_UnitPlayerOrPetInRaid ===> 0x542580
Script_UnitPlayerControlled ===> 0x5425E0
Script_UnitIsAFK ===> 0x542640
Script_UnitIsDND ===> 0x542740
Script_UnitIsPVP ===> 0x542800
Script_UnitIsPVPSanctuary ===> 0x5428E0
Script_UnitIsPVPFreeForAll ===> 0x542940
Script_UnitFactionGroup ===> 0x542A30
Script_UnitReaction ===> 0x542C10
Script_UnitIsEnemy ===> 0x542CC0
Script_UnitIsFriend ===> 0x542D60
Script_UnitCanCooperate ===> 0x542EA0
Script_UnitCanAssist ===> 0x542FE0
Script_UnitCanAttack ===> 0x543080
Script_UnitIsCharmed ===> 0x543120
Script_UnitIsPossessed ===> 0x543180
Script_UnitIsPlusMob ===> 0x5431E0
Script_UnitClassification ===> 0x543240
Script_UnitGUID ===> 0x543CA0
Script_UnitName ===> 0x543DC0
Script_UnitPVPName ===> 0x543FC0
Script_UnitXP ===> 0x544090
Script_UnitXPMax ===> 0x544110
Script_UnitHealth ===> 0x544190
Script_UnitHealthMax ===> 0x5442A0
Script_UnitMana ===> 0x544360
Script_UnitManaMax ===> 0x5444F0
Script_UnitPowerType ===> 0x544630
Script_UnitOnTaxi ===> 0x544700
Script_UnitIsFeignDeath ===> 0x544780
Script_UnitIsDead ===> 0x544830
Script_UnitIsGhost ===> 0x544910
Script_UnitIsDeadOrGhost ===> 0x5449F0
Script_UnitIsConnected ===> 0x544AE0
Script_UnitAffectingCombat ===> 0x544BA0
Script_UnitSex ===> 0x544C20
Script_UnitLevel ===> 0x544D30
Script_GetMoney ===> 0x544ED0
Script_GetHonorCurrency ===> 0x544F70
Script_GetArenaCurrency ===> 0x544FF0
Script_UnitRace ===> 0x545070
Script_UnitClass ===> 0x5451F0
Script_UnitRaceBase ===> 0x545370
Script_UnitClassBase ===> 0x5454C0
Script_UnitResistance ===> 0x545610
Script_UnitStat ===> 0x545770
Script_UnitAttackBothHands ===> 0x5458C0
Script_UnitDamage ===> 0x545CD0
Script_UnitRangedDamage ===> 0x5459C0
Script_UnitRangedAttack ===> 0x545C40
Script_UnitAttackSpeed ===> 0x545E70
Script_UnitAttackPower ===> 0x545FC0
Script_UnitRangedAttackPower ===> 0x546110
Script_UnitDefense ===> 0x546260
Script_UnitArmor ===> 0x546340
Script_UnitCharacterPoints ===> 0x546430
Script_UnitBuff ===> 0x546520
Script_UnitDebuff ===> 0x5468C0
Script_UnitIsTapped ===> 0x546CC0
Script_UnitIsTappedByPlayer ===> 0x546D40
Script_UnitIsTrivial ===> 0x546DC0
Script_UnitHasRelicSlot ===> 0x546E40
Script_SetPortraitTexture ===> 0x546EF0
Script_HasFullControl ===> 0x547080
Script_GetComboPoints ===> 0x5470F0
Script_IsInGuild ===> 0x5432A0
Script_IsGuildLeader ===> 0x543300
Script_IsArenaTeamCaptain ===> 0x543360
Script_IsResting ===> 0x543430
Script_GetCombatRating ===> 0x543490
Script_GetCombatRatingBonus ===> 0x543550
Script_GetDodgeChance ===> 0x543610
Script_GetBlockChance ===> 0x543670
Script_GetShieldBlock ===> 0x5436D0
Script_GetParryChance ===> 0x543750
Script_GetCritChanceFromAgility ===> 0x543810
Script_GetSpellCritChanceFromIntellect ===> 0x543890
Script_GetCritChance ===> 0x5437B0
Script_GetRangedCritChance ===> 0x543910
Script_GetSpellCritChance ===> 0x543970
Script_GetSpellBonusDamage ===> 0x5439F0
Script_GetSpellBonusHealing ===> 0x543A90
Script_GetSpellPenetration ===> 0x543AF0
Script_GetArmorPenetration ===> 0x543B60
Script_GetAttackPowerForStat ===> 0x543BD0
Script_UnitCreatureType ===> 0x547170
Script_UnitCreatureFamily ===> 0x547210
Script_GetResSicknessDuration ===> 0x5472B0
Script_GetPVPSessionStats ===> 0x547410
Script_GetPVPYesterdayStats ===> 0x5474C0
Script_GetPVPLifetimeStats ===> 0x547570
Script_UnitPVPRank ===> 0x547630
Script_GetPVPRankInfo ===> 0x5476A0
Script_GetPVPRankProgress ===> 0x4953B0
Script_UnitCastingInfo ===> 0x547800
Script_UnitChannelInfo ===> 0x547A70
Script_IsLoggedIn ===> 0x540E10
Script_IsFlyableArea ===> 0x53F970
Script_IsIndoors ===> 0x547C10
Script_IsOutdoors ===> 0x547C70
Script_IsOutOfBounds ===> 0x547CD0
Script_IsFalling ===> 0x547D30
Script_IsSwimming ===> 0x547D90
Script_IsFlying ===> 0x547DF0
Script_IsMounted ===> 0x547E50
Script_IsStealthed ===> 0x547EB0
Script_UnitIsSameServer ===> 0x547F10
Script_GetUnitHealthModifier ===> 0x548090
Script_GetUnitMaxHealthModifier ===> 0x548110
Script_GetUnitPowerModifier ===> 0x5481B0
Script_GetUnitHealthRegenRateFromSpirit ===> 0x548230
Script_GetUnitManaRegenRateFromSpirit ===> 0x5482B0
Script_GetManaRegen ===> 0x548340
Script_ReportPlayerIsPVPAFK ===> 0x548550
Script_GetExpertise ===> 0x5483E0
Script_GetExpertisePercent ===> 0x5484A0
Script_UnitInBattleground ===> 0x542510
Script_UnitInRange ===> 0x548600
Script_GetNumTrackingTypes ===> 0x4CA3F0
Script_GetTrackingInfo ===> 0x4CA430
Script_SetTracking ===> 0x4CA640
Script_GetTrackingTexture ===> 0x4CA710
Script_CombatLogResetFilter ===> 0x62A670
Script_CombatLogAddFilter ===> 0x62ABC0
Script_CombatLogSetRetentionTime ===> 0x628730
Script_CombatLogGetRetentionTime ===> 0x628A80
Script_CombatLogGetNumEntries ===> 0x62A680
Script_CombatLogSetCurrentEntry ===> 0x62A6F0
Script_CombatLogGetCurrentEntry ===> 0x629F40
Script_CombatLogAdvanceEntry ===> 0x62A840
Script_CombatLogClearEntries ===> 0x62BBB0
Script_CombatLog_Object_IsA ===> 0x628780
Script_GetActionInfo ===> 0x526550
Script_GetActionTexture ===> 0x5271F0
Script_GetActionCount ===> 0x525890
Script_GetActionCooldown ===> 0x526690
Script_GetActionAutocast ===> 0x526760
Script_GetActionText ===> 0x525900
Script_HasAction ===> 0x525990
Script_UseAction ===> 0x528BB0
Script_PickupAction ===> 0x528C40
Script_PlaceAction ===> 0x528680
Script_IsAttackAction ===> 0x527260
Script_IsCurrentAction ===> 0x527E50
Script_IsAutoRepeatAction ===> 0x5272D0
Script_IsUsableAction ===> 0x525A00
Script_IsConsumableAction ===> 0x527340
Script_IsStackableAction ===> 0x526830
Script_IsEquippedAction ===> 0x5268A0
Script_ActionHasRange ===> 0x5273B0
Script_IsActionInRange ===> 0x527410
Script_GetBonusBarOffset ===> 0x525AB0
Script_ChangeActionBarPage ===> 0x525AF0
Script_GetActionBarPage ===> 0x525B40
Script_GetActionBarToggles ===> 0x526910
Script_SetActionBarToggles ===> 0x526990
Script_IsPossessBarVisible ===> 0x525B90
Script_GetPlayerBuff ===> 0x5249A0
Script_GetPlayerBuffName ===> 0x524ED0
Script_GetPlayerBuffTexture ===> 0x524F50
Script_GetPlayerBuffDispelType ===> 0x524FF0
Script_GetPlayerBuffApplications ===> 0x5250A0
Script_GetPlayerBuffTimeLeft ===> 0x524B40
Script_CancelPlayerBuff ===> 0x5250E0
Script_CancelItemTempEnchantment ===> 0x525160
Script_GetNumPartyMembers ===> 0x4B81A0
Script_GetRealNumPartyMembers ===> 0x4B81E0
Script_GetPartyMember ===> 0x4B8220
Script_GetPartyLeaderIndex ===> 0x4B82C0
Script_IsPartyLeader ===> 0x4B8910
Script_IsRealPartyLeader ===> 0x4B8970
Script_LeaveParty ===> 0x4B96B0
Script_GetLootMethod ===> 0x4B89D0
Script_SetLootMethod ===> 0x4B9940
Script_GetLootThreshold ===> 0x4B82F0
Script_SetLootThreshold ===> 0x4B9B60
Script_SetPartyAssignment ===> 0x4B9EF0
Script_ClearPartyAssignment ===> 0x4B9F10
Script_GetPartyAssignment ===> 0x4B8B40
Script_SilenceMember ===> 0x4B96E0
Script_UnSilenceMember ===> 0x4B9810
Script_SetOptOutOfLoot ===> 0x4B9C40
Script_GetOptOutOfLoot ===> 0x4B8320
Script_SendChatMessage ===> 0x490430
Script_SendAddonMessage ===> 0x485190
Script_GetNumLanguages ===> 0x485400
Script_GetLanguageByIndex ===> 0x4854B0
Script_GetDefaultLanguage ===> 0x4855B0
Script_DoEmote ===> 0x485620
Script_LoggingChat ===> 0x481220
Script_LoggingCombat ===> 0x481240
Script_JoinChannelByName ===> 0x490DA0
Script_JoinTemporaryChannel ===> 0x490DA0
Script_JoinPermanentChannel ===> 0x490DC0
Script_LeaveChannelByName ===> 0x492D50
Script_ListChannelByName ===> 0x4835D0
Script_ListChannels ===> 0x490DE0
Script_GetChannelList ===> 0x4835F0
Script_SetChannelPassword ===> 0x4836C0
Script_SetChannelOwner ===> 0x4837B0
Script_DisplayChannelOwner ===> 0x4837D0
Script_GetChannelName ===> 0x4837F0
Script_ChannelModerator ===> 0x4838D0
Script_ChannelUnmoderator ===> 0x4838F0
Script_ChannelMute ===> 0x483910
Script_ChannelUnmute ===> 0x483930
Script_ChannelInvite ===> 0x483950
Script_ChannelKick ===> 0x483970
Script_ChannelBan ===> 0x483990
Script_ChannelUnban ===> 0x4839B0
Script_ChannelToggleAnnouncements ===> 0x4839D0
Script_ChannelSilenceVoice ===> 0x485DA0
Script_ChannelSilenceAll ===> 0x485EB0
Script_ChannelUnSilenceVoice ===> 0x485F50
Script_ChannelUnSilenceAll ===> 0x486060
Script_ChangeChatColor ===> 0x483A70
Script_ResetChatColors ===> 0x483CA0
Script_GetChatTypeIndex ===> 0x483D50
Script_GetChatWindowInfo ===> 0x4812E0
Script_GetChatWindowMessages ===> 0x481490
Script_GetChatWindowChannels ===> 0x483E60
Script_AddChatWindowMessages ===> 0x481540
Script_RemoveChatWindowMessages ===> 0x481620
Script_AddChatWindowChannel ===> 0x4869E0
Script_RemoveChatWindowChannel ===> 0x483F40
Script_SetChatWindowName ===> 0x481700
Script_SetChatWindowSize ===> 0x4817B0
Script_SetChatWindowColor ===> 0x481850
Script_SetChatWindowAlpha ===> 0x481990
Script_SetChatWindowLocked ===> 0x481A40
Script_SetChatWindowDocked ===> 0x481AC0
Script_SetChatWindowShown ===> 0x481B70
Script_EnumerateServerChannels ===> 0x484070
Script_RequestRaidInfo ===> 0x4857D0
Script_GetGuildRecruitmentMode ===> 0x481260
Script_SetGuildRecruitmentMode ===> 0x4935E0
Script_GetNumSavedInstances ===> 0x481BF0
Script_GetSavedInstanceInfo ===> 0x484130
Script_ResetChatWindows ===> 0x486B30
Script_CanComplainChat ===> 0x485870
Script_ComplainChat ===> 0x491BE0
Script_GetNumDisplayChannels ===> 0x4914D0
Script_GetChannelDisplayInfo ===> 0x4842D0
Script_GetSelectedDisplayChannel ===> 0x484760
Script_SetSelectedDisplayChannel ===> 0x489780
Script_GetChannelRosterInfo ===> 0x489860
Script_GetNumChannelMembers ===> 0x489AC0
Script_SetActiveVoiceChannel ===> 0x485730
Script_GetActiveVoiceChannel ===> 0x481290
Script_CollapseChannelHeader ===> 0x491510
Script_ExpandChannelHeader ===> 0x491590
Script_ChannelVoiceOn ===> 0x4839F0
Script_ChannelVoiceOff ===> 0x483A10
Script_DisplayChannelVoiceOn ===> 0x483A30
Script_DisplayChannelVoiceOff ===> 0x483A50
Script_IsDisplayChannelOwner ===> 0x4847C0
Script_IsDisplayChannelModerator ===> 0x484830
Script_IsVoiceChatEnabled ===> 0x481DE0
Script_IsVoiceChatAllowed ===> 0x481E20
Script_IsVoiceChatAllowedByServer ===> 0x481E60
Script_IsSilenced ===> 0x4848A0
Script_GetMuteStatus ===> 0x481F80
Script_UnitIsSilenced ===> 0x481EA0
Script_SetChannelWatch ===> 0x484950
Script_ClearChannelWatch ===> 0x484970
Script_DeclineInvite ===> 0x4849E0
Script_GetNumSpellTabs ===> 0x4C1670
Script_GetSpellTabInfo ===> 0x4C1AE0
Script_GetSpellName ===> 0x4C47E0
Script_GetSpellLink ===> 0x4C48B0
Script_GetSpellInfo ===> 0x4C49B0
Script_GetSpellTexture ===> 0x4C4CA0
Script_GetSpellCount ===> 0x4C4D20
Script_GetSpellCooldown ===> 0x4C4DA0
Script_GetSpellAutocast ===> 0x4C4E90
Script_ToggleSpellAutocast ===> 0x4C4F60
Script_EnableSpellAutocast ===> 0x4C4FC0
Script_DisableSpellAutocast ===> 0x4C5020
Script_PickupSpell ===> 0x4C5080
Script_CastSpell ===> 0x4C50D0
Script_IsSelectedSpell ===> 0x4C5140
Script_IsPassiveSpell ===> 0x4C51C0
Script_IsAttackSpell ===> 0x4C5290
Script_IsCurrentSpell ===> 0x4C5360
Script_IsAutoRepeatSpell ===> 0x4C5400
Script_IsUsableSpell ===> 0x4C54A0
Script_IsHelpfulSpell ===> 0x4C5610
Script_IsHarmfulSpell ===> 0x4C56F0
Script_IsConsumableSpell ===> 0x4C57D0
Script_SpellHasRange ===> 0x4C58C0
Script_IsSpellInRange ===> 0x4C5A10
Script_UpdateSpells ===> 0x4C2B50
Script_PlayerHasSpells ===> 0x4C16B0
Script_HasPetSpells ===> 0x4C2B60
Script_GetNumShapeshiftForms ===> 0x4C1C60
Script_GetShapeshiftForm ===> 0x4C2C40
Script_CancelShapeshiftForm ===> 0x4C2C90
Script_GetShapeshiftFormInfo ===> 0x4C2CC0
Script_CastShapeshiftForm ===> 0x4C2F00
Script_GetShapeshiftFormCooldown ===> 0x4C1CA0
Script_CastSpellByName ===> 0x4C42E0
Script_GetInventorySlotInfo ===> 0x521A00
Script_GetInventoryItemsForSlot ===> 0x522E50
Script_GetInventoryItemTexture ===> 0x523400
Script_GetInventoryItemBroken ===> 0x523620
Script_GetInventoryItemCount ===> 0x5236E0
Script_GetInventoryItemQuality ===> 0x5238E0
Script_GetInventoryItemCooldown ===> 0x523A00
Script_GetInventoryItemDurability ===> 0x523B80
Script_GetInventoryItemLink ===> 0x523C80
Script_KeyRingButtonIDToInvSlotID ===> 0x521380
Script_PickupInventoryItem ===> 0x523DF0
Script_UseInventoryItem ===> 0x523E30
Script_SocketInventoryItem ===> 0x523EA0
Script_IsInventoryItemLocked ===> 0x523EE0
Script_PutItemInBag ===> 0x523F80
Script_PutItemInBackpack ===> 0x523FF0
Script_PickupBagFromSlot ===> 0x524030
Script_CursorCanGoInSlot ===> 0x524070
Script_ShowInventorySellCursor ===> 0x524120
Script_SetInventoryPortraitTexture ===> 0x5241A0
Script_GetGuildInfo ===> 0x524310
Script_GetInventoryAlertStatus ===> 0x521B00
Script_UpdateInventoryAlertStatus ===> 0x524450
Script_OffhandHasWeapon ===> 0x524460
Script_HasInspectHonorData ===> 0x521400
Script_RequestInspectHonorData ===> 0x5244D0
Script_GetInspectHonorData ===> 0x521440
Script_GetInspectArenaTeamData ===> 0x521B90
Script_ClearInspectPlayer ===> 0x521510
Script_GetWeaponEnchantInfo ===> 0x5244E0
Script_HasWandEquipped ===> 0x5246D0
Script_SetLootPortrait ===> 0x4D2500
Script_GetNumLootItems ===> 0x4D1BC0
Script_GetLootSlotInfo ===> 0x4D1BF0
Script_GetLootSlotLink ===> 0x4D1D30
Script_LootSlotIsItem ===> 0x4D1DE0
Script_LootSlotIsCoin ===> 0x4D1E70
Script_LootSlot ===> 0x4D2B20
Script_ConfirmLootSlot ===> 0x4D2B90
Script_CloseLoot ===> 0x4D1F00
Script_IsFishingLoot ===> 0x4D1F30
Script_GetMasterLootCandidate ===> 0x4D1F70
Script_GiveMasterLoot ===> 0x4D2C00
Script_GetLootRollItemInfo ===> 0x4D2020
Script_GetLootRollItemLink ===> 0x4D2200
Script_GetLootRollTimeLeft ===> 0x4D22C0
Script_RollOnLoot ===> 0x4D2360
Script_ConfirmLootRoll ===> 0x4D23D0
Script_ItemTextGetItem ===> 0x4D9BD0
Script_ItemTextGetCreator ===> 0x4DA430
Script_ItemTextGetMaterial ===> 0x4D9C20
Script_ItemTextGetPage ===> 0x4D9AE0
Script_ItemTextGetText ===> 0x4D9B20
Script_ItemTextHasNextPage ===> 0x4D9D00
Script_ItemTextPrevPage ===> 0x4DA170
Script_ItemTextNextPage ===> 0x4DA180
Script_CloseItemText ===> 0x4DA3E0
Script_GetGossipText ===> 0x4DA8C0
Script_GetNumGossipOptions ===> 0x4DA8E0
Script_GetNumGossipAvailableQuests ===> 0x4DA920
Script_GetNumGossipActiveQuests ===> 0x4DA960
Script_GetGossipOptions ===> 0x4DA9A0
Script_GetGossipAvailableQuests ===> 0x4DB330
Script_GetGossipActiveQuests ===> 0x4DB3F0
Script_SelectGossipOption ===> 0x4DB4B0
Script_SelectGossipAvailableQuest ===> 0x4DB520
Script_SelectGossipActiveQuest ===> 0x4DB590
Script_CloseGossip ===> 0x4DAA00
Script_CloseQuest ===> 0x4DCD70
Script_GetTitleText ===> 0x4DBD00
Script_GetGreetingText ===> 0x4DBD20
Script_GetQuestText ===> 0x4DBD40
Script_GetObjectiveText ===> 0x4DBD60
Script_GetProgressText ===> 0x4DBD80
Script_GetRewardText ===> 0x4DBDA0
Script_GetNumAvailableQuests ===> 0x4DBDC0
Script_GetNumActiveQuests ===> 0x4DBDF0
Script_GetAvailableTitle ===> 0x4DBE20
Script_GetActiveTitle ===> 0x4DBEC0
Script_GetAvailableLevel ===> 0x4DBF60
Script_GetActiveLevel ===> 0x4DC000
Script_IsAvailableQuestTrivial ===> 0x4DCD80
Script_IsActiveQuestTrivial ===> 0x4DCE50
Script_SelectAvailableQuest ===> 0x4DCF20
Script_SelectActiveQuest ===> 0x4DCF90
Script_AcceptQuest ===> 0x4DD000
Script_DeclineQuest ===> 0x4DD010
Script_IsQuestCompletable ===> 0x4DD020
Script_CompleteQuest ===> 0x4DD060
Script_GetQuestReward ===> 0x4DD070
Script_GetRewardMoney ===> 0x4DC0A0
Script_GetRewardHonor ===> 0x4DC0D0
Script_GetRewardSpell ===> 0x4DD0C0
Script_GetQuestMoneyToGet ===> 0x4DC100
Script_GetNumQuestRewards ===> 0x4DC130
Script_GetNumQuestChoices ===> 0x4DC170
Script_GetNumQuestItems ===> 0x4DC1B0
Script_GetQuestItemInfo ===> 0x4DD3F0
Script_GetQuestItemLink ===> 0x4DC1F0
Script_GetQuestSpellLink ===> 0x4DD580
Script_QuestChooseRewardError ===> 0x4DC2E0
Script_ConfirmAcceptQuest ===> 0x4DD600
Script_GetQuestBackgroundMaterial ===> 0x4DC5D0
Script_GetSuggestedGroupNum ===> 0x4DC2F0
Script_GetDailyQuestsCompleted ===> 0x4DD680
Script_GetMaxDailyQuests ===> 0x4DC320
Script_GetRewardTitle ===> 0x4DD260
Script_GetNumQuestLogEntries ===> 0x51D7B0
Script_GetQuestLogTitle ===> 0x51F5F0
Script_SelectQuestLogEntry ===> 0x51E350
Script_GetQuestLogSelection ===> 0x51D840
Script_SetAbandonQuest ===> 0x51D870
Script_GetAbandonQuestName ===> 0x51D880
Script_GetAbandonQuestItems ===> 0x51F7F0
Script_AbandonQuest ===> 0x51FA60
Script_IsUnitOnQuest ===> 0x51FA70
Script_GetQuestLogQuestText ===> 0x51E3A0
Script_GetNumQuestLeaderBoards ===> 0x51FB90
Script_GetQuestLogLeaderBoard ===> 0x520B30
Script_GetQuestLogTimeLeft ===> 0x51FC40
Script_IsCurrentQuestFailed ===> 0x51FD00
Script_GetNumQuestLogRewards ===> 0x51D8F0
Script_GetNumQuestLogChoices ===> 0x51D970
Script_GetQuestLogRewardInfo ===> 0x51FD80
Script_GetQuestLogChoiceInfo ===> 0x51FF50
Script_GetQuestLogItemLink ===> 0x51D9F0
Script_GetQuestLogSpellLink ===> 0x520130
Script_GetQuestLogRewardMoney ===> 0x5201E0
Script_GetQuestLogRewardHonor ===> 0x51DB40
Script_GetQuestLogRewardSpell ===> 0x520440
Script_GetQuestLogRequiredMoney ===> 0x51DBA0
Script_GetQuestLogPushable ===> 0x51DC20
Script_QuestLogPushQuest ===> 0x520600
Script_GetQuestTimers ===> 0x520C50
Script_GetQuestIndexForTimer ===> 0x520680
Script_CollapseQuestHeader ===> 0x5207D0
Script_ExpandQuestHeader ===> 0x520820
Script_GetQuestGreenRange ===> 0x520870
Script_GetNumQuestWatches ===> 0x51DC90
Script_IsQuestWatched ===> 0x51DCD0
Script_AddQuestWatch ===> 0x51E4A0
Script_RemoveQuestWatch ===> 0x51DDA0
Script_GetQuestIndexForWatch ===> 0x5208A0
Script_GetQuestLogGroupNum ===> 0x51DE10
Script_GetQuestResetTime ===> 0x5211C0
Script_GetQuestLink ===> 0x520990
Script_GetQuestLogRewardTitle ===> 0x520290
Script_SetTaxiMap ===> 0x4DDCE0
Script_NumTaxiNodes ===> 0x4DD950
Script_TaxiNodeName ===> 0x4DD990
Script_TaxiNodePosition ===> 0x4DDD30
Script_TaxiNodeCost ===> 0x4DE270
Script_TakeTaxiNode ===> 0x4DE310
Script_CloseTaxiMap ===> 0x4DDA00
Script_TaxiNodeGetType ===> 0x4DDDE0
Script_TaxiNodeSetCurrent ===> 0x4DEA50
Script_TaxiGetSrcX ===> 0x4DDE50
Script_TaxiGetSrcY ===> 0x4DDEE0
Script_TaxiGetDestX ===> 0x4DDF70
Script_TaxiGetDestY ===> 0x4DE000
Script_GetNumRoutes ===> 0x4DDA10
Script_OpenTrainer ===> 0x4E12D0
Script_CloseTrainer ===> 0x4E0640
Script_GetNumTrainerServices ===> 0x4DFF80
Script_GetTrainerServiceInfo ===> 0x4E1320
Script_SelectTrainerService ===> 0x4E0670
Script_IsTradeskillTrainer ===> 0x4DFFC0
Script_GetTrainerSelectionIndex ===> 0x4E06E0
Script_GetTrainerGreetingText ===> 0x4E0000
Script_GetTrainerServiceIcon ===> 0x4E13E0
Script_GetTrainerServiceSkillLine ===> 0x4E1590
Script_GetTrainerServiceCost ===> 0x4E0730
Script_GetTrainerServiceLevelReq ===> 0x4E07E0
Script_GetTrainerServiceSkillReq ===> 0x4E1700
Script_GetTrainerServiceNumAbilityReq ===> 0x4E0860
Script_GetTrainerServiceAbilityReq ===> 0x4E1850
Script_GetTrainerServiceStepReq ===> 0x4E1A90
Script_GetTrainerServiceDescription ===> 0x4E1C70
Script_IsTrainerServiceSkillStep ===> 0x4E1DF0
Script_GetTrainerServiceStepIncrease ===> 0x4E1ED0
Script_BuyTrainerService ===> 0x4E2120
Script_SetTrainerServiceTypeFilter ===> 0x4E2180
Script_SetTrainerSkillLineFilter ===> 0x4E22B0
Script_GetTrainerServiceTypeFilter ===> 0x4E0080
Script_GetTrainerSkillLineFilter ===> 0x4E0120
Script_GetTrainerSkillLines ===> 0x4E08F0
Script_CollapseTrainerSkillLine ===> 0x4E23D0
Script_ExpandTrainerSkillLine ===> 0x4E2460
Script_GetTrainerServiceItemLink ===> 0x4E24F0
Script_CloseTradeSkill ===> 0x5184C0
Script_GetNumTradeSkills ===> 0x517EA0
Script_GetTradeSkillInfo ===> 0x518B70
Script_SelectTradeSkill ===> 0x5184D0
Script_GetTradeSkillSelectionIndex ===> 0x518520
Script_GetTradeSkillCooldown ===> 0x518550
Script_GetTradeSkillIcon ===> 0x518D40
Script_GetTradeSkillNumMade ===> 0x518EA0
Script_GetTradeSkillLine ===> 0x518FD0
Script_GetTradeSkillItemStats ===> 0x51B4D0
Script_GetTradeSkillItemLink ===> 0x519270
Script_SetTradeSkillItemNameFilter ===> 0x51A6F0
Script_GetTradeSkillItemNameFilter ===> 0x517ED0
Script_SetTradeSkillItemLevelFilter ===> 0x51A710
Script_GetTradeSkillItemLevelFilter ===> 0x517EF0
Script_GetTradeSkillNumReagents ===> 0x519370
Script_GetTradeSkillReagentInfo ===> 0x51CB20
Script_GetTradeSkillReagentItemLink ===> 0x519490
Script_GetTradeSkillTools ===> 0x51CD80
Script_GetTradeSkillSubClasses ===> 0x518620
Script_GetTradeSkillInvSlots ===> 0x5195E0
Script_SetTradeSkillSubClassFilter ===> 0x51A770
Script_GetTradeSkillSubClassFilter ===> 0x517F30
Script_SetTradeSkillInvSlotFilter ===> 0x51A8A0
Script_GetTradeSkillInvSlotFilter ===> 0x519660
Script_TradeSkillOnlyShowMakeable ===> 0x51AA30
Script_CollapseTradeSkillSubClass ===> 0x51AA50
Script_ExpandTradeSkillSubClass ===> 0x51AAE0
Script_GetFirstTradeSkill ===> 0x5186D0
Script_GetTradeskillRepeatCount ===> 0x517FF0
Script_DoTradeSkill ===> 0x518760
Script_GetTradeSkillRecipeLink ===> 0x5190F0
Script_StopTradeSkillRepeat ===> 0x518040
Script_CloseMerchant ===> 0x4CE030
Script_GetMerchantNumItems ===> 0x4CDB60
Script_GetMerchantItemInfo ===> 0x4CE710
Script_GetMerchantItemCostInfo ===> 0x4CE040
Script_GetMerchantItemCostItem ===> 0x4CE180
Script_GetBuybackItemInfo ===> 0x4CE9B0
Script_GetBuybackItemLink ===> 0x4CEC50
Script_GetMerchantItemLink ===> 0x4CDB90
Script_GetMerchantItemMaxStack ===> 0x4CDC60
Script_PickupMerchantItem ===> 0x4CED30
Script_BuyMerchantItem ===> 0x4CEE40
Script_BuybackItem ===> 0x4CEF40
Script_CanMerchantRepair ===> 0x4CE3A0
Script_ShowMerchantSellCursor ===> 0x4CF040
Script_ShowBuybackSellCursor ===> 0x4CF1B0
Script_ShowRepairCursor ===> 0x4CE3E0
Script_HideRepairCursor ===> 0x4CDD20
Script_InRepairMode ===> 0x4CDD40
Script_GetRepairAllCost ===> 0x4CF2B0
Script_RepairAllItems ===> 0x4CF580
Script_GetNumBuybackItems ===> 0x4CDD80
Script_CloseTrade ===> 0x4D0F30
Script_ClickTradeButton ===> 0x4D0F60
Script_ClickTargetTradeButton ===> 0x4D0370
Script_GetTradeTargetItemInfo ===> 0x4D11D0
Script_GetTradeTargetItemLink ===> 0x4D0010
Script_GetTradePlayerItemInfo ===> 0x4D1460
Script_GetTradePlayerItemLink ===> 0x4D03F0
Script_AcceptTrade ===> 0x4D0100
Script_CancelTradeAccept ===> 0x4D0110
Script_GetPlayerTradeMoney ===> 0x4D0120
Script_GetTargetTradeMoney ===> 0x4D0170
Script_PickupTradeMoney ===> 0x4D01B0
Script_AddTradeMoney ===> 0x4D0480
Script_SetTradeMoney ===> 0x4D0210
Script_ContainerIDToInventoryID ===> 0x515B90
Script_GetContainerNumSlots ===> 0x516420
Script_GetContainerItemInfo ===> 0x516800
Script_GetContainerItemLink ===> 0x516A20
Script_GetContainerItemCooldown ===> 0x516AA0
Script_PickupContainerItem ===> 0x516D40
Script_SplitContainerItem ===> 0x517270
Script_UseContainerItem ===> 0x5173D0
Script_SocketContainerItem ===> 0x5177B0
Script_ShowContainerSellCursor ===> 0x5178C0
Script_SetBagPortraitTexture ===> 0x515D70
Script_GetBagName ===> 0x517960
Script_GetContainerItemDurability ===> 0x516C40
Script_GetContainerNumFreeSlots ===> 0x516510
Script_BankButtonIDToInvSlotID ===> 0x4C1100
Script_GetNumBankSlots ===> 0x4C1270
Script_GetBankSlotCost ===> 0x4C12F0
Script_PurchaseSlot ===> 0x4C1360
Script_CloseBankFrame ===> 0x4C1180
Script_GetNumFriends ===> 0x5B67A0
Script_GetFriendInfo ===> 0x5B6800
Script_SetSelectedFriend ===> 0x5B6A90
Script_GetSelectedFriend ===> 0x5B6B00
Script_AddFriend ===> 0x5B93D0
Script_RemoveFriend ===> 0x5BA320
Script_ShowFriends ===> 0x5B6B40
Script_SetFriendNotes ===> 0x5BA3D0
Script_GetNumIgnores ===> 0x5B6BB0
Script_GetIgnoreName ===> 0x5B6C70
Script_SetSelectedIgnore ===> 0x5B6EF0
Script_GetSelectedIgnore ===> 0x5B6FD0
Script_AddOrDelIgnore ===> 0x5B9490
Script_AddIgnore ===> 0x5B9530
Script_DelIgnore ===> 0x5BA4B0
Script_GetNumMutes ===> 0x5B6C10
Script_GetMuteName ===> 0x5B6DB0
Script_SetSelectedMute ===> 0x5B6F60
Script_GetSelectedMute ===> 0x5B7010
Script_AddOrDelMute ===> 0x5B94E0
Script_AddMute ===> 0x5B9580
Script_DelMute ===> 0x5BA500
Script_IsIgnored ===> 0x5B95D0
Script_IsMuted ===> 0x5B9660
Script_IsIgnoredOrMuted ===> 0x5B96F0
Script_SendWho ===> 0x5B9440
Script_GetNumWhoResults ===> 0x5B5AA0
Script_GetWhoInfo ===> 0x5B7050
Script_SetWhoToUI ===> 0x5B5B00
Script_SortWho ===> 0x5B7480
Script_PetHasActionBar ===> 0x4E3910
Script_GetPetActionInfo ===> 0x4E4D90
Script_GetPetActionCooldown ===> 0x4E3960
Script_GetPetActionsUsable ===> 0x4E5110
Script_IsPetAttackActive ===> 0x4E3A90
Script_PickupPetAction ===> 0x4E5FF0
Script_TogglePetAutocast ===> 0x4E6110
Script_CastPetAction ===> 0x4E61D0
Script_PetPassiveMode ===> 0x4E5150
Script_PetDefensiveMode ===> 0x4E5160
Script_PetAggressiveMode ===> 0x4E5170
Script_PetWait ===> 0x4E5180
Script_PetFollow ===> 0x4E5190
Script_PetAttack ===> 0x4E51A0
Script_PetStopAttack ===> 0x4E5230
Script_PetAbandon ===> 0x4E5240
Script_PetDismiss ===> 0x4E5250
Script_PetRename ===> 0x4E5260
Script_PetCanBeAbandoned ===> 0x4E3B60
Script_PetCanBeRenamed ===> 0x4E3BF0
Script_GetPetTimeRemaining ===> 0x4E3490
Script_HasPetUI ===> 0x4E3C80
Script_GetPetLoyalty ===> 0x4E3D30
Script_GetPetTrainingPoints ===> 0x4E3DD0
Script_GetPetExperience ===> 0x4E3E90
Script_GetPetHappiness ===> 0x4E3F60
Script_GetPetFoodTypes ===> 0x4E40D0
Script_GetPetIcon ===> 0x4E41C0
Script_GetPossessInfo ===> 0x4E5400
Script_CloseCraft ===> 0x512E00
Script_GetCraftName ===> 0x513B90
Script_GetCraftButtonToken ===> 0x512E10
Script_GetCraftDisplaySkillLine ===> 0x513C30
Script_GetNumCrafts ===> 0x512E40
Script_GetCraftInfo ===> 0x513D40
Script_SelectCraft ===> 0x513340
Script_GetCraftSelectionIndex ===> 0x513390
Script_GetCraftIcon ===> 0x513FD0
Script_GetCraftSkillLine ===> 0x5133C0
Script_GetCraftItemLink ===> 0x5140C0
Script_GetCraftNumReagents ===> 0x514250
Script_GetCraftNumMade ===> 0x514E20
Script_GetCraftReagentInfo ===> 0x514370
Script_GetCraftReagentItemLink ===> 0x5145B0
Script_GetCraftRecipeLink ===> 0x514700
Script_GetCraftSpellFocus ===> 0x514900
Script_GetCraftDescription ===> 0x514B30
Script_CollapseCraftSkillLine ===> 0x514D00
Script_ExpandCraftSkillLine ===> 0x514D90
Script_SetCraftFilter ===> 0x5159B0
Script_GetCraftFilter ===> 0x512E70
Script_SetCraftItemNameFilter ===> 0x515A50
Script_GetCraftItemNameFilter ===> 0x512F80
Script_GetCraftSlots ===> 0x5134D0
Script_CraftIsEnchanting ===> 0x512FA0
Script_CraftIsPetTraining ===> 0x512FE0
Script_CraftOnlyShowMakeable ===> 0x515A70
Script_GetCraftCooldown ===> 0x513520
Script_DoCraft ===> 0x513460
Script_GetMapContinents ===> 0x4B1B10
Script_GetMapZones ===> 0x4B1B50
Script_SetMapZoom ===> 0x4B3450
Script_SetMapToCurrentZone ===> 0x4B3AF0
Script_GetMapInfo ===> 0x4B1C00
Script_GetCurrentMapContinent ===> 0x4B00C0
Script_GetCurrentMapZone ===> 0x4B00F0
Script_ProcessMapClick ===> 0x4B3500
Script_UpdateMapHighlight ===> 0x4B1CA0
Script_GetPlayerMapPosition ===> 0x4B2450
Script_GetCorpseMapPosition ===> 0x4B2520
Script_GetDeathReleasePosition ===> 0x4B2560
Script_GetNumMapLandmarks ===> 0x4B0120
Script_GetMapLandmarkInfo ===> 0x4B25A0
Script_GetWorldLocMapPosition ===> 0x4B2750
Script_GetNumMapOverlays ===> 0x4B0160
Script_GetMapOverlayInfo ===> 0x4B2810
Script_CreateWorldMapArrowFrame ===> 0x4B2A20
Script_InitWorldMapPing ===> 0x4B2BB0
Script_CreateMiniWorldMapArrowFrame ===> 0x4B2AE0
Script_UpdateWorldMapArrowFrames ===> 0x4B2BA0
Script_PositionWorldMapArrowFrame ===> 0x4B01A0
Script_PositionMiniWorldMapArrowFrame ===> 0x4B0480
Script_ShowWorldMapArrowFrame ===> 0x4B0760
Script_ShowMiniWorldMapArrowFrame ===> 0x4B07C0
Script_GetNumFactions ===> 0x511020
Script_GetFactionInfo ===> 0x511F10
Script_GetWatchedFactionInfo ===> 0x512260
Script_SetWatchedFactionIndex ===> 0x5125C0
Script_FactionToggleAtWar ===> 0x5123A0
Script_CollapseFactionHeader ===> 0x512520
Script_SetFactionInactive ===> 0x512420
Script_SetFactionActive ===> 0x5124A0
Script_IsFactionInactive ===> 0x5115E0
Script_ExpandFactionHeader ===> 0x512570
Script_SetSelectedFaction ===> 0x511650
Script_GetSelectedFaction ===> 0x5116A0
Script_CloseTabardCreation ===> 0x4E7ED0
Script_GetTabardCreationCost ===> 0x4E7D80
Script_CloseGuildRegistrar ===> 0x4E8F70
Script_GetGuildCharterCost ===> 0x4E8F80
Script_BuyGuildCharter ===> 0x4E91B0
Script_TurnInGuildCharter ===> 0x4E9230
Script_GetTabardInfo ===> 0x4E9260
Script_StartDuel ===> 0x510A50
Script_AcceptDuel ===> 0x510E90
Script_CancelDuel ===> 0x510EA0
Script_TutorialsEnabled ===> 0x4BD2A0
Script_FlagTutorial ===> 0x4BD590
Script_ClearTutorials ===> 0x4BD880
Script_ResetTutorials ===> 0x4BD2E0
Script_ClosePetition ===> 0x510120
Script_GetPetitionInfo ===> 0x50FDE0
Script_GetNumPetitionNames ===> 0x50FBE0
Script_GetPetitionNameInfo ===> 0x50FF30
Script_CanSignPetition ===> 0x510140
Script_SignPetition ===> 0x510230
Script_OfferPetition ===> 0x510310
Script_RenamePetition ===> 0x510510
Script_GetNumSkillLines ===> 0x50E2E0
Script_GetSkillLineInfo ===> 0x50EF50
Script_AbandonSkill ===> 0x50F3F0
Script_CollapseSkillHeader ===> 0x50F4D0
Script_ExpandSkillHeader ===> 0x50F530
Script_AddSkillUp ===> 0x50F590
Script_RemoveSkillUp ===> 0x50F600
Script_GetAdjustedSkillPoints ===> 0x50F670
Script_AcceptSkillUps ===> 0x50F700
Script_CancelSkillUps ===> 0x50E980
Script_BuySkillTier ===> 0x50F7F0
Script_SetSelectedSkill ===> 0x50E9A0
Script_GetSelectedSkill ===> 0x50EA30
Script_GetNumGuildMembers ===> 0x50B170
Script_GetGuildRosterMOTD ===> 0x50B1D0
Script_GetGuildRosterInfo ===> 0x50DAA0
Script_GetGuildRosterLastOnline ===> 0x50B9D0
Script_GuildRosterSetPublicNote ===> 0x50C6F0
Script_GuildRosterSetOfficerNote ===> 0x50C820
Script_SetGuildRosterSelection ===> 0x50BB30
Script_GetGuildRosterSelection ===> 0x50BBC0
Script_CanGuildPromote ===> 0x50C950
Script_CanGuildDemote ===> 0x50C9E0
Script_CanGuildInvite ===> 0x50CA70
Script_CanGuildRemove ===> 0x50CB00
Script_CanEditMOTD ===> 0x50CB90
Script_CanEditPublicNote ===> 0x50CC20
Script_CanEditOfficerNote ===> 0x50CCB0
Script_CanViewOfficerNote ===> 0x50CD40
Script_CanEditGuildInfo ===> 0x50CDD0
Script_CanGuildBankRepair ===> 0x50CE60
Script_CanEditGuildTabInfo ===> 0x50CEF0
Script_SortGuildRoster ===> 0x50BBF0
Script_SetGuildRosterShowOffline ===> 0x50BD60
Script_GetGuildRosterShowOffline ===> 0x50B1F0
Script_GuildControlGetNumRanks ===> 0x50B230
Script_GuildControlGetRankName ===> 0x50DD70
Script_GuildControlSetRank ===> 0x50B270
Script_GuildControlGetRankFlags ===> 0x50CFC0
Script_GuildControlSetRankFlag ===> 0x50B2C0
Script_GuildControlSaveRank ===> 0x50D050
Script_GuildControlAddRank ===> 0x50D290
Script_GuildControlDelRank ===> 0x50D370
Script_SetGuildBankTabPermissions ===> 0x50BD80
Script_GetGuildBankTabPermissions ===> 0x50BE70
Script_SetGuildBankWithdrawLimit ===> 0x50BFB0
Script_GetGuildBankWithdrawLimit ===> 0x50C010
Script_SetGuildBankTabWithdraw ===> 0x50C070
Script_CloseGuildRoster ===> 0x62E7D0
Script_GuildRoster ===> 0x50D3F0
Script_GetGuildInfoText ===> 0x50B340
Script_SetGuildInfoText ===> 0x50D400
Script_SaveGuildRoster ===> 0x50D530
Script_QueryGuildEventLog ===> 0x50D540
Script_GetNumGuildEvents ===> 0x50B360
Script_GetGuildEventInfo ===> 0x50DEA0
Script_CloseMail ===> 0x4F1360
Script_ClearSendMail ===> 0x4ED260
Script_ClickSendMailItemButton ===> 0x4EDDB0
Script_SetSendMailMoney ===> 0x4EFFA0
Script_GetSendMailMoney ===> 0x4ED270
Script_SetSendMailCOD ===> 0x4ED2B0
Script_GetSendMailCOD ===> 0x4ED320
Script_GetNumStationeries ===> 0x4F1370
Script_GetStationeryInfo ===> 0x4EE060
Script_SelectStationery ===> 0x4EE1C0
Script_GetSelectedStationeryTexture ===> 0x4EE250
Script_GetNumPackages ===> 0x4EE2C0
Script_GetPackageInfo ===> 0x4EE2F0
Script_SelectPackage ===> 0x4EE3F0
Script_GetSendMailItem ===> 0x4F0030
Script_GetSendMailItemLink ===> 0x4EE460
Script_GetSendMailPrice ===> 0x4F13C0
Script_SendMail ===> 0x4F0230
Script_CheckInbox ===> 0x4F0530
Script_GetInboxNumItems ===> 0x4ED360
Script_GetInboxHeaderInfo ===> 0x4EE500
Script_GetInboxText ===> 0x4F0610
Script_GetInboxInvoiceInfo ===> 0x4EE9F0
Script_GetInboxItem ===> 0x4F08D0
Script_GetInboxItemLink ===> 0x4EEDC0
Script_TakeInboxMoney ===> 0x4EEF10
Script_TakeInboxItem ===> 0x4F0B90
Script_TakeInboxTextItem ===> 0x4EF010
Script_ReturnInboxItem ===> 0x4EF130
Script_DeleteInboxItem ===> 0x4EF270
Script_InboxItemCanDelete ===> 0x4EF3B0
Script_HasNewMail ===> 0x4EF470
Script_ComplainInboxItem ===> 0x4F0D20
Script_CanComplainInboxItem ===> 0x4F0D90
Script_GetLatestThreeSenders ===> 0x4EF4D0
Script_SetSendMailShowing ===> 0x4ED210
Script_GetNumBattlefields ===> 0x4F3240
Script_GetBattlefieldInfo ===> 0x4F4670
Script_GetBattlefieldInstanceInfo ===> 0x4F47E0
Script_IsBattlefieldArena ===> 0x4F3280
Script_IsActiveBattlefieldArena ===> 0x4F1DB0
Script_JoinBattlefield ===> 0x4F4880
Script_SetSelectedBattlefield ===> 0x4F32E0
Script_GetSelectedBattlefield ===> 0x4F3370
Script_AcceptBattlefieldPort ===> 0x4F4900
Script_GetBattlefieldStatus ===> 0x4F33D0
Script_GetBattlefieldPortExpiration ===> 0x4F1E40
Script_GetBattlefieldInstanceExpiration ===> 0x4F1F00
Script_GetBattlefieldInstanceRunTime ===> 0x4F1F90
Script_GetBattlefieldEstimatedWaitTime ===> 0x4F1FF0
Script_GetBattlefieldTimeWaited ===> 0x4F2090
Script_CloseBattlefield ===> 0x4F1E30
Script_ShowBattlefieldList ===> 0x4F4AA0
Script_RequestBattlefieldScoreData ===> 0x4F4B70
Script_GetNumBattlefieldScores ===> 0x4F2140
Script_GetBattlefieldScore ===> 0x4F3620
Script_GetBattlefieldWinner ===> 0x4F2180
Script_SetBattlefieldScoreFaction ===> 0x4F3930
Script_LeaveBattlefield ===> 0x4F4B80
Script_GetNumBattlefieldStats ===> 0x4F21E0
Script_GetBattlefieldStatInfo ===> 0x4F3970
Script_GetBattlefieldStatData ===> 0x4F2220
Script_RequestBattlefieldPositions ===> 0x4F4C20
Script_GetNumBattlefieldPositions ===> 0x4F2300
Script_GetBattlefieldPosition ===> 0x4F3A50
Script_GetNumBattlefieldFlagPositions ===> 0x4F23A0
Script_GetBattlefieldFlagPosition ===> 0x4F4C30
Script_CanJoinBattlefieldAsGroup ===> 0x4F3CB0
Script_GetBattlefieldMapIconScale ===> 0x4F3D10
Script_GetBattlefieldTeamInfo ===> 0x4F2400
Script_GetBattlefieldArenaFaction ===> 0x4F24E0
Script_SortBattlefieldScoreData ===> 0x4F4D60
Script_GetNumTalentTabs ===> 0x50A080
Script_GetTalentTabInfo ===> 0x50A0E0
Script_GetNumTalents ===> 0x50A250
Script_GetTalentInfo ===> 0x50A910
Script_GetTalentLink ===> 0x50AC60
Script_GetTalentPrereqs ===> 0x50AE10
Script_LearnTalent ===> 0x50A410
Script_CloseAuctionHouse ===> 0x4F9AA0
Script_GetAuctionHouseDepositRate ===> 0x4F66C0
Script_CalculateAuctionDeposit ===> 0x4F7350
Script_ClickAuctionSellItemButton ===> 0x4F74A0
Script_GetAuctionSellItemInfo ===> 0x4F76B0
Script_StartAuction ===> 0x4F78C0
Script_QueryAuctionItems ===> 0x4F7B20
Script_GetOwnerAuctionItems ===> 0x4F7FD0
Script_GetBidderAuctionItems ===> 0x4F8070
Script_GetNumAuctionItems ===> 0x4F6720
Script_GetAuctionItemInfo ===> 0x4F8110
Script_GetAuctionItemLink ===> 0x4F6850
Script_GetAuctionItemTimeLeft ===> 0x4F9AB0
Script_PlaceAuctionBid ===> 0x4F85B0
Script_GetAuctionItemClasses ===> 0x4F69A0
Script_GetAuctionItemSubClasses ===> 0x4F6A00
Script_GetAuctionInvTypes ===> 0x4F6B10
Script_CanSendAuctionQuery ===> 0x4F6CC0
Script_SortAuctionItems ===> 0x4F8880
Script_SetSelectedAuctionItem ===> 0x4F6DB0
Script_GetSelectedAuctionItem ===> 0x4F6EA0
Script_IsAuctionSortReversed ===> 0x4F5900
Script_CancelAuction ===> 0x4F8970
Script_GetAuctionSort ===> 0x4F5AA0
Script_SortAuctionClearSort ===> 0x4F5BD0
Script_SortAuctionSetSort ===> 0x4F5C70
Script_SortAuctionApplySort ===> 0x4F6F70
Script_ClosePetStables ===> 0x4FACA0
Script_StablePet ===> 0x4FB580
Script_UnstablePet ===> 0x4FB650
Script_BuyStableSlot ===> 0x4FB750
Script_GetNumStablePets ===> 0x4FACB0
Script_GetNumStableSlots ===> 0x4FACF0
Script_GetStablePetInfo ===> 0x4FAFD0
Script_GetNextStableSlotCost ===> 0x4FB150
Script_ClickStablePet ===> 0x4FB810
Script_PickupStablePet ===> 0x4FAD30
Script_GetSelectedStablePet ===> 0x4FADB0
Script_SetPetStablePaperdoll ===> 0x4FB1B0
Script_GetStablePetFoodTypes ===> 0x4FB320
Script_GetNumRaidMembers ===> 0x4BA930
Script_GetRealNumRaidMembers ===> 0x4BA970
Script_GetRaidRosterInfo ===> 0x4BB290
Script_SetRaidRosterSelection ===> 0x4BA9B0
Script_GetRaidRosterSelection ===> 0x4BAA40
Script_IsRaidLeader ===> 0x4BB620
Script_IsRealRaidLeader ===> 0x4BB670
Script_IsRaidOfficer ===> 0x4BB6C0
Script_SetRaidSubgroup ===> 0x4BBD20
Script_SwapRaidSubgroup ===> 0x4BBE60
Script_ConvertToRaid ===> 0x4BBFE0
Script_PromoteToLeader ===> 0x4BC070
Script_PromoteToAssistant ===> 0x4BC150
Script_DemoteAssistant ===> 0x4BC230
Script_SetRaidTarget ===> 0x4BC310
Script_GetRaidTargetIndex ===> 0x4BA8A0
Script_DoReadyCheck ===> 0x4BC4C0
Script_ConfirmReadyCheck ===> 0x4BC4F0
Script_CheckReadyCheckTime ===> 0x4BC630
Script_GetReadyCheckTimeLeft ===> 0x4BAA70
Script_GetReadyCheckStatus ===> 0x4BB710
Script_GetNumWorldStateUI ===> 0x4B44E0
Script_GetWorldStateUIInfo ===> 0x4B49E0
Script_GetMinigameType ===> 0x509AD0
Script_MakeMinigameMove ===> 0x509B10
Script_GetMinigameState ===> 0x509BA0
Script_KBSetup_BeginLoading ===> 0x4B6E80
Script_KBSetup_IsLoaded ===> 0x4B6EC0
Script_KBSetup_GetLanguageCount ===> 0x4B6EF0
Script_KBSetup_GetLanguageData ===> 0x4B6F30
Script_KBSetup_GetCategoryCount ===> 0x4B6FE0
Script_KBSetup_GetCategoryData ===> 0x4B7020
Script_KBSetup_GetSubCategoryCount ===> 0x4B7950
Script_KBSetup_GetSubCategoryData ===> 0x4B79C0
Script_KBSetup_GetArticleHeaderCount ===> 0x4B70D0
Script_KBSetup_GetArticleHeaderData ===> 0x4B7110
Script_KBSetup_GetTotalArticleCount ===> 0x4B71E0
Script_KBQuery_BeginLoading ===> 0x4B7A80
Script_KBQuery_IsLoaded ===> 0x4B7230
Script_KBQuery_GetArticleHeaderCount ===> 0x4B7260
Script_KBQuery_GetArticleHeaderData ===> 0x4B72A0
Script_KBQuery_GetTotalArticleCount ===> 0x4B7370
Script_KBArticle_BeginLoading ===> 0x4B73C0
Script_KBArticle_IsLoaded ===> 0x4B7400
Script_KBArticle_GetData ===> 0x4B7430
Script_KBSystem_GetMOTD ===> 0x4B7510
Script_KBSystem_GetServerStatus ===> 0x4B7530
Script_KBSystem_GetServerNotice ===> 0x4B7550
Script_CloseSocketInfo ===> 0x509070
Script_GetSocketItemInfo ===> 0x509080
Script_GetNumSockets ===> 0x508C20
Script_GetExistingSocketInfo ===> 0x509700
Script_GetExistingSocketLink ===> 0x509920
Script_GetNewSocketInfo ===> 0x5091B0
Script_GetNewSocketLink ===> 0x509390
Script_ClickSocketButton ===> 0x509440
Script_AcceptSockets ===> 0x509A40
Script_GetSocketTypes ===> 0x508C80
Script_ClosePetitionVendor ===> 0x4FC150
Script_GetNumPetitionItems ===> 0x4FBB30
Script_GetPetitionItemInfo ===> 0x4FBB70
Script_BuyPetition ===> 0x4FC160
Script_ClickPetitionButton ===> 0x4FBDF0
Script_TurnInPetition ===> 0x4FC220
Script_TurnInArenaPetition ===> 0x4FC2F0
Script_HasFilledPetition ===> 0x4FC440
Script_GetArenaTeam ===> 0x4FD270
Script_GetNumArenaTeamMembers ===> 0x4FC560
Script_GetArenaTeamRosterInfo ===> 0x4FCBA0
Script_SetArenaTeamRosterSelection ===> 0x4FCE40
Script_GetArenaTeamRosterSelection ===> 0x4FCEE0
Script_SortArenaTeamRoster ===> 0x4FCF60
Script_SetArenaTeamRosterShowOffline ===> 0x4FD0B0
Script_GetArenaTeamRosterShowOffline ===> 0x4FC630
Script_CloseArenaTeamRoster ===> 0x62E7D0
Script_ArenaTeamRoster ===> 0x4FD6F0
Script_GetCurrentArenaSeason ===> 0x4FC670
Script_GetLookingForGroup ===> 0x504EA0
Script_SetLookingForGroup ===> 0x505FE0
Script_SetLookingForMore ===> 0x5060F0
Script_ClearLookingForGroup ===> 0x5061D0
Script_ClearLookingForMore ===> 0x5061E0
Script_SetLFGType ===> 0x5061F0
Script_SetLFMType ===> 0x5062B0
Script_SetLFGComment ===> 0x506310
Script_LFGQuery ===> 0x507480
Script_CanSendLFGQuery ===> 0x5075C0
Script_GetNumLFGResults ===> 0x507690
Script_GetLFGResults ===> 0x5077D0
Script_GetLFGPartyResults ===> 0x507B80
Script_GetLFGTypes ===> 0x504940
Script_GetLFGTypeEntries ===> 0x504FB0
Script_SetLFGAutojoin ===> 0x506370
Script_ClearLFGAutojoin ===> 0x5063F0
Script_SetLFMAutofill ===> 0x506470
Script_ClearLFMAutofill ===> 0x506540
Script_AcceptLFGMatch ===> 0x5065E0
Script_DeclineLFGMatch ===> 0x506650
Script_CancelPendingLFG ===> 0x5066C0
Script_IsInLFGQueue ===> 0x504980
Script_GetLFGStatusText ===> 0x505140
Script_SortLFG ===> 0x507E00
Script_VoiceEnumerateOutputDevices ===> 0x6D7360
Script_VoiceEnumerateCaptureDevices ===> 0x6D7430
Script_VoiceSelectOutputDevice ===> 0x6D7510
Script_VoiceSelectCaptureDevice ===> 0x6D7680
Script_VoiceGetCurrentOutputDevice ===> 0x6D77F0
Script_VoiceGetCurrentCaptureDevice ===> 0x6D7840
Script_GetVoiceStatus ===> 0x6D8140
Script_GetNumVoiceSessions ===> 0x6D7890
Script_GetVoiceSessionInfo ===> 0x6D7910
Script_GetVoiceCurrentSessionID ===> 0x6D7A50
Script_SetActiveVoiceChannelBySessionID ===> 0x6D7AE0
Script_GetNumVoiceSessionMembersBySessionID ===> 0x6D7BD0
Script_GetVoiceSessionMemberInfoBySessionID ===> 0x6DB250
Script_VoiceIsDisabledByClient ===> 0x6D8C00
Script_UnitIsTalking ===> 0x6DB410
Script_CommentatorSetMode ===> 0x502240
Script_CommentatorToggleMode ===> 0x502320
Script_CommentatorGetMode ===> 0x5023D0
Script_CommentatorSetMapAndInstanceIndex ===> 0x502FB0
Script_CommentatorSetPlayerIndex ===> 0x5030F0
Script_CommentatorUpdatePlayerInfo ===> 0x502430
Script_CommentatorUpdateMapInfo ===> 0x5024D0
Script_CommentatorGetNumMaps ===> 0x501660
Script_CommentatorGetMapInfo ===> 0x502570
Script_CommentatorGetInstanceInfo ===> 0x5026B0
Script_CommentatorEnterInstance ===> 0x502870
Script_CommentatorExitInstance ===> 0x502930
Script_CommentatorGetNumPlayers ===> 0x5029A0
Script_CommentatorGetPlayerInfo ===> 0x502A80
Script_CommentatorFollowPlayer ===> 0x502CC0
Script_CommentatorLookatPlayer ===> 0x502E40
Script_CommentatorZoomIn ===> 0x5016A0
Script_CommentatorZoomOut ===> 0x501740
Script_CommentatorSetCamera ===> 0x503240
Script_CommentatorGetCamera ===> 0x503410
Script_CommentatorGetCurrentMapID ===> 0x5034F0
Script_CommentatorStartInstance ===> 0x503580
Script_CommentatorAddPlayer ===> 0x5037B0
Script_CommentatorRemovePlayer ===> 0x5039D0
Script_CommentatorSetBattlemaster ===> 0x503B70
Script_CommentatorSetMoveSpeed ===> 0x503C50
Script_CommentatorSetCameraCollision ===> 0x503CD0
Script_CommentatorSetTargetHeightOffset ===> 0x503D70
Script_QueryGuildBankTab ===> 0x4FF760
Script_SetCurrentGuildBankTab ===> 0x4FDE60
Script_GetCurrentGuildBankTab ===> 0x4FDEB0
Script_GetGuildBankItemInfo ===> 0x4FFA20
Script_SetGuildBankTabInfo ===> 0x500480
Script_GetGuildBankItemLink ===> 0x4FE940
Script_PickupGuildBankItem ===> 0x4FFC60
Script_AutoStoreGuildBankItem ===> 0x4FFE60
Script_SplitGuildBankItem ===> 0x500050
Script_GetNumGuildBankTabs ===> 0x4FDF70
Script_GetGuildBankTabInfo ===> 0x500240
Script_GetGuildBankTabCost ===> 0x500590
Script_BuyGuildBankTab ===> 0x4FF7B0
Script_DepositGuildBankMoney ===> 0x4FF8A0
Script_WithdrawGuildBankMoney ===> 0x4FF910
Script_CanWithdrawGuildBankMoney ===> 0x4FF980
Script_PickupGuildBankMoney ===> 0x4FDDD0
Script_GetGuildBankMoney ===> 0x4FDEE0
Script_GetGuildBankWithdrawMoney ===> 0x4FDF40
Script_CloseGuildBankFrame ===> 0x4FDFA0
Script_GetGuildTabardFileNames ===> 0x500600
Script_QueryGuildBankLog ===> 0x500810
Script_GetNumGuildBankTransactions ===> 0x4FDFC0
Script_GetGuildBankTransaction ===> 0x500880
Script_GetNumGuildBankMoneyTransactions ===> 0x4FE050
Script_GetGuildBankMoneyTransaction ===> 0x4FE080
Script_QueryGuildBankText ===> 0x500BE0
Script_GetGuildBankText ===> 0x4FE230
Script_SetGuildBankText ===> 0x500C50
Script_GetTime_Offline ===> 0x53F800
Script_GetGameTime_Offline ===> 0x53F840
Script_ConsoleExec_Offline ===> 0x53F880
Script_ReadFile_Offline ===> 0x53F8D0
Script_DeleteFile_Offline ===> 0x53F8D0
Script_AppendToFile_Offline ===> 0x53F8D0
Script_GetAccountExpansionLevel_Offline ===> 0x53F8F0
Script_GetText_Offline ===> 0x708870
Script_GetNumFrames_Offline ===> 0x708BA0
Script_EnumerateFrames_Offline ===> 0x708AB0
Script_CreateFont_Offline ===> 0x708900
Script_CreateFrame_Offline ===> 0x708C10
Script_GetFramesRegisteredForEvent_Offline ===> 0x708F80
Script_GetCurrentKeyBoardFocus_Offline ===> 0x708970
Script_IsShiftKeyDown_Offline ===> 0x471290
Script_GetBuildInfo_Offline ===> 0x4712E0
Script_GetLocale_Offline ===> 0x4713B0
Script_GetSavedAccountName_Offline ===> 0x471340
Script_SetSavedAccountName_Offline ===> 0x471360
Script_SetCurrentScreen_Offline ===> 0x4713E0
Script_QuitGame_Offline ===> 0x471430
Script_PlayGlueMusic_Offline ===> 0x471440
Script_PlayCreditsMusic_Offline ===> 0x471530
Script_StopGlueMusic_Offline ===> 0x471580
Script_GetMovieResolution_Offline ===> 0x4715A0
Script_GetScreenWidth_Offline ===> 0x4720D0
Script_GetScreenHeight_Offline ===> 0x472120
Script_LaunchURL_Offline ===> 0x4715F0
Script_ShowTOSNotice_Offline ===> 0x472600
Script_TOSAccepted_Offline ===> 0x472640
Script_AcceptTOS_Offline ===> 0x471640
Script_ShowEULANotice_Offline ===> 0x472680
Script_EULAAccepted_Offline ===> 0x4726C0
Script_AcceptEULA_Offline ===> 0x471650
Script_ShowTerminationWithoutNoticeNotice_Offline ===> 0x472700
Script_TerminationWithoutNoticeAccepted_Offline ===> 0x472740
Script_AcceptTerminationWithoutNotice_Offline ===> 0x471660
Script_ShowScanningNotice_Offline ===> 0x472780
Script_ScanningAccepted_Offline ===> 0x4727C0
Script_AcceptScanning_Offline ===> 0x471670
Script_ShowContestNotice_Offline ===> 0x472800
Script_ContestAccepted_Offline ===> 0x472840
Script_AcceptContest_Offline ===> 0x471680
Script_DefaultServerLogin_Offline ===> 0x471690
Script_StatusDialogClick_Offline ===> 0x471930
Script_GetServerName_Offline ===> 0x472880
Script_DisconnectFromServer_Offline ===> 0x472990
Script_IsConnectedToServer_Offline ===> 0x4729D0
Script_EnterWorld_Offline ===> 0x471940
Script_Screenshot_Offline ===> 0x471950
Script_PatchDownloadProgress_Offline ===> 0x472A10
Script_PatchDownloadCancel_Offline ===> 0x471970
Script_PatchDownloadApply_Offline ===> 0x471980
Script_GetNumAddOns_Offline ===> 0x471990
Script_GetAddOnInfo_Offline ===> 0x4719D0
Script_LaunchAddOnURL_Offline ===> 0x471BD0
Script_GetAddOnDependencies_Offline ===> 0x472A40
Script_GetAddOnEnableState_Offline ===> 0x471C70
Script_EnableAddOn_Offline ===> 0x471D50
Script_EnableAllAddOns_Offline ===> 0x471E10
Script_DisableAddOn_Offline ===> 0x471E60
Script_DisableAllAddOns_Offline ===> 0x471F20
Script_SaveAddOns_Offline ===> 0x471F70
Script_ResetAddOns_Offline ===> 0x471F80
Script_IsAddonVersionCheckEnabled_Offline ===> 0x471F90
Script_SetAddonVersionCheck_Offline ===> 0x471FD0
Script_GetCursorPosition_Offline ===> 0x472B10
Script_ShowCursor_Offline ===> 0x472BB0
Script_HideCursor_Offline ===> 0x472BD0
Script_SetMovieSubtitles_Offline ===> 0x472010
Script_GetMovieSubtitles_Offline ===> 0x472060
Script_GetBillingTimeRemaining_Offline ===> 0x472BF0
Script_GetBillingPlan_Offline ===> 0x472C40
Script_GetBillingTimeRested_Offline ===> 0x472CF0
Script_SurveyNotificationDone_Offline ===> 0x472170
Script_PINEntered_Offline ===> 0x471700
Script_PlayGlueAmbience_Offline ===> 0x471490
Script_StopGlueAmbience_Offline ===> 0x471510
Script_GetCreditsText_Offline ===> 0x472210
Script_GetAccountExpansionLevel_Offline ===> 0x53F8F0
Script_GetClientExpansionLevel_Offline ===> 0x4720A0
Script_MatrixEntered_Offline ===> 0x4717D0
Script_MatrixRevert_Offline ===> 0x471850
Script_MatrixCommit_Offline ===> 0x471860
Script_GetMatrixCoordinates_Offline ===> 0x471870
Script_ScanDLLStart_Offline ===> 0x4721A0
Script_ScanDLLContinueAnyway_Offline ===> 0x4722A0
Script_IsScanDLLFinished_Offline ===> 0x4722B0
Script_IsWindowsClient_Offline ===> 0x4C16B0
Script_IsMacClient_Offline ===> 0x4722F0
Script_IsLinuxClient_Offline ===> 0x4722F0
Script_SetRealmSplitState_Offline ===> 0x472D90
Script_RequestRealmSplitInfo_Offline ===> 0x472E20
Script_CancelLogin_Offline ===> 0x472310
Script_GetCVar_Offline ===> 0x4951A0
Script_SetCVar_Offline ===> 0x472320
Script_GetCVarDefault_Offline ===> 0x4723D0
Script_GetChangedOptionWarnings_Offline ===> 0x472D30
Script_AcceptChangedOptionWarnings_Offline ===> 0x472460
Script_ShowChangedOptionWarnings_Offline ===> 0x472470
Script_TokenEntered_Offline ===> 0x471900
Script_GetNumDeclensionSets_Offline ===> 0x496F70
Script_DeclineName_Offline ===> 0x4724B0
Script_SetCharSelectModelFrame_Offline ===> 0x476590
Script_SetCharSelectBackground_Offline ===> 0x477130
Script_GetCharacterListUpdate_Offline ===> 0x4779E0
Script_GetNumCharacters_Offline ===> 0x477180
Script_GetCharacterInfo_Offline ===> 0x4771B0
Script_SelectCharacter_Offline ===> 0x4776F0
Script_DeleteCharacter_Offline ===> 0x4773D0
Script_RenameCharacter_Offline ===> 0x477440
Script_DeclineCharacter_Offline ===> 0x477560
Script_UpdateSelectionCustomizationScene_Offline ===> 0x476600
Script_GetCharacterSelectFacing_Offline ===> 0x476610
Script_SetCharacterSelectFacing_Offline ===> 0x476640
Script_SetCharCustomizeFrame_Offline ===> 0x474FF0
Script_SetCharCustomizeBackground_Offline ===> 0x475060
Script_ResetCharCustomize_Offline ===> 0x475DE0
Script_GetNameForRace_Offline ===> 0x4750B0
Script_GetFactionForRace_Offline ===> 0x475130
Script_GetAvailableRaces_Offline ===> 0x4757D0
Script_GetClassesForRace_Offline ===> 0x475830
Script_GetHairCustomization_Offline ===> 0x475200
Script_GetFacialHairCustomization_Offline ===> 0x475270
Script_GetSelectedRace_Offline ===> 0x4752E0
Script_GetSelectedSex_Offline ===> 0x475320
Script_GetSelectedClass_Offline ===> 0x475360
Script_SetSelectedRace_Offline ===> 0x475DF0
Script_SetSelectedSex_Offline ===> 0x4753E0
Script_SetSelectedClass_Offline ===> 0x475450
Script_UpdateCustomizationBackground_Offline ===> 0x475E60
Script_UpdateCustomizationScene_Offline ===> 0x4754C0
Script_HasCharCustomization_Offline ===> 0x4754D0
Script_CycleCharCustomization_Offline ===> 0x475560
Script_RandomizeCharCustomization_Offline ===> 0x4755F0
Script_GetCharacterCreateFacing_Offline ===> 0x475600
Script_SetCharacterCreateFacing_Offline ===> 0x475630
Script_GetRandomName_Offline ===> 0x4744C0
Script_CreateCharacter_Offline ===> 0x475690
Script_RequestRealmList_Offline ===> 0x472ED0
Script_CancelRealmListQuery_Offline ===> 0x472EF0
Script_GetNumRealms_Offline ===> 0x473580
Script_GetRealmInfo_Offline ===> 0x473650
Script_ChangeRealm_Offline ===> 0x473A00
Script_GetRealmCategories_Offline ===> 0x473B60
Script_SetPreferredInfo_Offline ===> 0x473DE0
Script_SortRealms_Offline ===> 0x473E60
Script_GetSelectedCategory_Offline ===> 0x473F30
Script_RealmListDialogCancelled_Offline ===> 0x472F00
Script_IsInvalidTournamentRealmCategory_Offline ===> 0x473C10
Script_IsTournamentRealmCategory_Offline ===> 0x473CB0
Script_IsInvalidLocale_Offline ===> 0x473D30
Script_PlaySound_Offline ===> 0x7B7250
Script_PlayMusic_Offline ===> 0x7B6BC0
Script_PlaySoundFile_Offline ===> 0x7B6C20
Script_StopMusic_Offline ===> 0x7B6C80
Script_Sound_GameSystem_GetNumInputDrivers_Offline ===> 0x7B6E90
Script_Sound_GameSystem_GetInputDriverNameByIndex_Offline ===> 0x7B6ED0
Script_Sound_GameSystem_GetNumOutputDrivers_Offline ===> 0x7B6F90
Script_Sound_GameSystem_GetOutputDriverNameByIndex_Offline ===> 0x7B6FD0
Script_Sound_GameSystem_RestartSoundSystem_Offline ===> 0x7B7090
Script_Sound_ChatSystem_GetNumInputDrivers_Offline ===> 0x7B6C90
Script_Sound_ChatSystem_GetInputDriverNameByIndex_Offline ===> 0x7B6CD0
Script_Sound_ChatSystem_GetNumOutputDrivers_Offline ===> 0x7B6D90
Script_Sound_ChatSystem_GetOutputDriverNameByIndex_Offline ===> 0x7B6DD0
Script_VoiceChat_StartCapture_Offline ===> 0x7B7350
Script_VoiceChat_StopCapture_Offline ===> 0x7B70B0
Script_VoiceChat_RecordLoopbackSound_Offline ===> 0x7B70C0
Script_VoiceChat_StopRecordingLoopbackSound_Offline ===> 0x7B7130
Script_VoiceChat_PlayLoopbackSound_Offline ===> 0x7B7140
Script_VoiceChat_StopPlayingLoopbackSound_Offline ===> 0x7B7150
Script_VoiceChat_IsRecordingLoopbackSound_Offline ===> 0x7B7160
Script_VoiceChat_IsPlayingLoopbackSound_Offline ===> 0x7B7190
Script_VoiceChat_GetCurrentMicrophoneSignalLevel_Offline ===> 0x7B71C0
Script_VoiceChat_ActivatePrimaryCaptureCallback_Offline ===> 0x7B71F0
Script_AccountMsg_LoadHeaders_Offline ===> 0x4B6020
Script_AccountMsg_GetNumTotalMsgs_Offline ===> 0x4B54E0
Script_AccountMsg_GetNumUnreadMsgs_Offline ===> 0x4B5AC0
Script_AccountMsg_GetNumUnreadUrgentMsgs_Offline ===> 0x4B5B10
Script_AccountMsg_GetIndexHighestPriorityUnreadMsg_Offline ===> 0x4B5B60
Script_AccountMsg_GetIndexNextUnreadMsg_Offline ===> 0x4B5BE0
Script_AccountMsg_GetHeaderSubject_Offline ===> 0x4B5530
Script_AccountMsg_GetHeaderPriority_Offline ===> 0x4B55D0
Script_AccountMsg_LoadBody_Offline ===> 0x4B5680
Script_AccountMsg_GetBody_Offline ===> 0x4B5730
Script_AccountMsg_SetMsgRead_Offline ===> 0x4B5C80
```

Edit: I also added and corrected some opcode handlers on my post on the previous page of this thread.

----------


## squiggy

Been looking for the unit name offset all day but im stumped. Im inexperienced at reversing stuff but i try to learn as Im stumbling along. I started by having a look at (Script_UnitName) in ida which at one point called sub_5FD820 which looked interesting.



```
char *__thiscall sub_5FD820(int this)
{
  int v1; // [email protected]
  char *result; // [email protected]

  v1 = *(_DWORD *)(this + 0x224);
  if ( v1 )
    result = *(char **)(v1 + 0x78);
  else
    result = byte_88C301;
  return result;
}
```

Thinking that the "this" input param could be a wowobj, i tried reading at (wowunit + 0x224)+0x78 but i only got junk text at that address. I would have left the address alone after that but i found a forum post supplying precisely those offsets so i started thinking that there might be something else wrong with my code. After many more hours of trying different things and finding offsets for newer clients on the web i tried looking for my own name like the example below but it came up empty:



```
var name readString((PlayerBase+i)+j) i = 0..5000, j = 0..300
if name == myName: break;
```

A real example of how im doing it atm, see anything wrong?


```
//hProcess, process handle.
uint addr = Memory.ReadUInt(hProcess, Memory.ReadUInt(hProcess,unit.baseAddr + 0x224) +0x78);
string name = Statics.readText(addr); //reads an ASCII, nullterminated string.
```

Like i said, im stumped and any help small or large would be appreciated. TLDR: Need help finding the wowunit and player names.

----------


## Jadd

> Been looking for the unit name offset all day but im stumped. Im inexperienced at reversing stuff but i try to learn as Im stumbling along. I started by having a look at (Script_UnitName) in ida which at one point called sub_5FD820 which looked interesting.
> 
> 
> 
> ```
> char *__thiscall sub_5FD820(int this)
> {
>   int v1; // [email protected]
>   char *result; // [email protected]
> ...


You found CGGameObject_C::GetObjectName. As the class name suggests, it is only valid with CGGameObject type objects.

For most other types, you probably won't find a direct call to GetObjectName, as it's normally accessed through the virtual method table. If you are working in-process, I suggest you do that, too. Getting unit name externally is a bit more difficult, go look at 0x005EC8F0 (CGUnit_C::GetObjectName).

From the 1.0.0 PDB (it's essentially the same in 2.4.3):


```
NameCache *__usercall CGUnit_C::[email protected]<eax>(CGUnit_C *[email protected]<ecx>, int [email protected]<ebp>)
{
  CGUnit_C *v2; // [email protected]
  CGObjectData *v3; // [email protected]
  NameCache *result; // [email protected]
  CGUnitData *v5; // [email protected]
  CGUnitData *v6; // [email protected]
  CGObjectData *v7; // [email protected]
  CGUnitData *v8; // [email protected]
  NameCache **v9; // [email protected]
  int v10; // [sp-8h] [bp-14h]@2
  int v11; // [sp-4h] [bp-10h]@2
  int v12; // [sp+0h] [bp-Ch]@1
  int v13; // [sp+4h] [bp-8h]@1
  int retaddr; // [sp+Ch] [bp+0h]@1

  v12 = a2;
  v13 = retaddr;
  v2 = this;
  v3 = this->m_obj;
  if ( (v3->m_type >> 4) & 1 )
  {
    v10 = v3->m_guid;
    v11 = HIDWORD(v3->m_guid);
    result = DBCache<NameCache,unsigned __int64,CHashKeyGUID>::GetRecord(
               &g_nameDBCache,
               v3->m_guid,
               &v10,
               NameQueryCallback_0,
               0);
    if ( result )
      return result;
  }
  else
  {
    v5 = this->m_unit;
    if ( v5->petNumber )
    {
      v10 = v3->m_guid;
      v11 = HIDWORD(v3->m_guid);
      result = DBCache<PetNameCache,int,HASHKEY_INT>::GetRecord(
                 &g_petNameCache,
                 v5->petNumber,
                 &v10,
                 NameQueryCallback_0,
                 0);
      if ( result )
      {
        v6 = v2->m_unit;
        if ( HIDWORD(result->m_guid) == v6->petNameTimestamp )
          return result;
        DBCache<PetNameCache,int,HASHKEY_INT>::Invalidate(&g_petNameCache, v6->petNumber);
        v7 = v2->m_obj;
        v10 = v7->m_guid;
        v8 = v2->m_unit;
        v11 = HIDWORD(v7->m_guid);
        DBCache<PetNameCache,int,HASHKEY_INT>::GetRecord(&g_petNameCache, v8->petNumber, &v10, NameQueryCallback_0, 0);
      }
    }
  }
  v9 = v2->m_stats;
  if ( v9 )
    result = *v9;
  else
    result = aUnknownBeing;
  return result;
}
```

----------


## Saridormi

> Been looking for the unit name offset all day but im stumped. Im inexperienced at reversing stuff but i try to learn as Im stumbling along. I started by having a look at (Script_UnitName) in ida which at one point called sub_5FD820 which looked interesting.
> 
> 
> 
> ```
> char *__thiscall sub_5FD820(int this)
> {
>   int v1; // [email protected]
>   char *result; // [email protected]
> ...


Haven't looked for a function to do this yet, however this is an easy way to read unit names out of process:



```
// get unitBasePtr from the object manager
uintptr_t unitBasePtr;
// read a pointer at unitBasePtr + 0xdb8
uintptr_t unitNamePtr1 = *reinterpret_cast<uintptr_t*>(unitBasePtr + 0xdb8);
// read a pointer at unitNamePtr1 + 0x40
uintptr_t unitNamePtr2 = *reinterpret_cast<uintptr_t*>(unitNamePtr1 + 0x40);
// you can now read the unit name as a CString from unitNamePtr2
```

----------


## squiggy

Thank you, Jadd, Saridormi for two very helpful answers.

----------


## squiggy

First, code injection is not something ive done before and im in deep waters, its probably not something im quite ready to undertake tbh but im gonna give it a go nonetheless. Ive probably got endscene (have a nagging feeling i might have detoured from somewhere else in d3d) hooked and luaDostring() working (without getText) using the iHook lib. Its mostly a copy paste solution which i dont quite like but ive studied the source code.

Ive ported an old source for a passive wtlk bot a friend made and its working well. Its using sendinput() for mouse movement (looting and vendor interaction) though which holds my pc hostage when its running so ive been trying to find a way around it. From what ive been able to gather this doesnt seem to be doable without either injection or some complicated mouse driver. But if anyone has a simpler idea please tell.

I was hoping there was some lua api i could use for interaction but I seem to be out of luck for that approach so now im considering calling *CGUnit_C::OnRightClick*(void) which i found in the alpha pdb. Ive been unable to find it in the 2.4.3 exe however. Main method has been to look for code references to functions ive located but that approach hasnt yielded much.

Questions:

1. Im looking for CGUnit_C::OnRightClick, anyone got the addr or tips for finding it? 
2. Ive looked at wikipedia for calling conventions, When calling a virtual function (edit: thiscall), is the correct approach to 
1. detour into your code cave
2. move wowobject base addr to ecx.
3. push possible arguments to stack 
4. call function
5. Run original instruction from detour addr
6. jump back to detour addr+copied bytes ?

Thanks for any help provided. Ive been registered for many years but I havent really lurked so if anyone feel that these sort fo questions belong in its own thread, do let me know because im not sure myself.

----------


## Saridormi

> First, code injection is not something ive done before and im in deep waters, its probably not something im quite ready to undertake tbh but im gonna give it a go nonetheless. Ive probably got endscene (win10: 0x5c086d52?) hooked and luaDostring() working (without getText) using the iHook lib. Its mostly a copy paste solution which i dont quite like but ive studied the source code.
> 
> Ive ported an old source for a passive wtlk bot a friend made and its working well. Its using sendinput() for mouse movement (looting and vendor interaction) though which holds my pc hostage when its running so ive been trying to find a way around it. From what ive been able to gather this doesnt seem to be doable without either injection or some complicated mouse driver. But if anyone has a simpler idea please tell.
> 
> I was hoping there was some lua api i could use for interaction but I seem to be out of luck for that approach so now im considering calling *CGUnit_C::OnRightClick*(void) which i found in the alpha pdb. Ive been unable to find it in the 2.4.3 exe however. Main method has been to look for code references to functions ive located but that approach hasnt yielded much.
> 
> Questions:
> 
> 1. Im looking for CGUnit_C::OnRightClick, anyone got the addr or tips for finding it? 
> ...


I don't know about the official function name, but I right click world objects by calling



```
typedef void(__cdecl *WoWFunc_RightClickWorldEntity)(uint64_t guid);
```

with an address of 



```
0x4a7980
```

You can call thiscall functions in the way you described, but if you're injecting a dll you can do it like this:



```
For a function Object::MyFunc(int)

typedef void(__thiscall *WoWFunc_MyFunc)(uintptr_t thisObject, int param1);

void funcWrapper() {
    uintptr_t funcAddress;
    uintptr_t objectAddress;
    int param1;

    WoWFunc_MyFunc(funcAddress)(objectAddress, param1);
}
```

I'm fairly sure there are better ways to do it (judging by some of Kynox's camera examples I think you can build the struct yourself) but I'm new to this too, and I don't have time to really look into it at the moment due to exams etc.

Good luck  :Smile:

----------


## squiggy

Great, ill try calling that function instead thank you  :Smile: 

Edit: yep, that function worked beautifully!

----------


## squiggy

A few offsets which iirc I had trouble finding on the forum or had to look up myself. offsets starting with wow.exe are rebased, I initially thought aslr was an issue on tbc.

int LastHardwareAction: wow.exe + 0x7E10FC
int CurrentTickCount(os tick?) : wow.exe +0x7E1E2C

ClickToMove: 0x612A90 (function)

static corpseX = wow.exe + 0x86EA80 (myPlayer)
static corpseY = wow.exe + 0x86EA84 (myPlayer)
static corpseZ = wow.exe + 0x86EA88 (myPlayer)

int[] AuraArray: Descriptor + 0xA8 (players/units). //I think the size is 56.

bool isCasting baseAddr + 0xf3c, (Wow unit and players)


Fishing bobber :
bool IsNotBiting: Descriptor + 0x20 //doesnt reset.

ulong mouseOverGuid: wow.exe + 0x86E950

D3dx9:
devicePtr: wow.exe + 0x92a15c;
vtablePtr: device + 0x3864
endscenePtr: vtable+0xA8

----------


## squiggy

Cant seem to delete this post so im adding a few more offsets ive found instead.

chatbuffer:

First message: 0xC13C30 
AuthorName: 0xC
FormattedString: 0x3C
ContentString: 0xBF4
NextMsg: 0x17C0
CurBufferIndex = 0xC6D1C4 (next message will be written at this index)
array size: 60

----------


## tutrakan

TBC descriptors nicely formatted for the please of IDA:


```
struct ObjectFields
{
	uint64 OBJECT_FIELD_GUID;                                   // 0x0000
	uint32 OBJECT_FIELD_TYPE;                                   // 0x0008
	uint32 OBJECT_FIELD_ENTRY;                                  // 0x000C
	uint32 OBJECT_FIELD_SCALE_X;                                // 0x0010
	uint32 OBJECT_FIELD_PADDING;                                // 0x0014
};

struct ItemFields
{
	uint64 ITEM_FIELD_OWNER;                                    // 0x0000
	uint64 ITEM_FIELD_CONTAINED;                                // 0x0008
	uint64 ITEM_FIELD_CREATOR;                                  // 0x0010
	uint64 ITEM_FIELD_GIFTCREATOR;                              // 0x0018
	uint32 ITEM_FIELD_STACK_COUNT;                              // 0x0020
	uint32 ITEM_FIELD_DURATION;                                 // 0x0024
	uint32 ITEM_FIELD_SPELL_CHARGES[5];                         // 0x0028
	uint32 ITEM_FIELD_FLAGS;                                    // 0x003C
	uint32 ITEM_FIELD_ENCHANTMENT[33];                          // 0x0040
	uint32 ITEM_FIELD_PROPERTY_SEED;                            // 0x00C4
	uint32 ITEM_FIELD_RANDOM_PROPERTIES_ID;                     // 0x00C8
	uint32 ITEM_FIELD_ITEM_TEXT_ID;                             // 0x00CC
	uint32 ITEM_FIELD_DURABILITY;                               // 0x00D0
	uint32 ITEM_FIELD_MAXDURABILITY;                            // 0x00D4
};

struct ContainerFields
{
	uint32 CONTAINER_FIELD_NUM_SLOTS;                           // 0x0000
	uint32 CONTAINER_ALIGN_PAD;                                 // 0x0004
	uint32 CONTAINER_FIELD_SLOT_1[72];                          // 0x0008
};

struct UnitFields
{
	uint64 UNIT_FIELD_CHARM;                                    // 0x0000
	uint64 UNIT_FIELD_SUMMON;                                   // 0x0008
	uint64 UNIT_FIELD_CHARMEDBY;                                // 0x0010
	uint64 UNIT_FIELD_SUMMONEDBY;                               // 0x0018
	uint64 UNIT_FIELD_CREATEDBY;                                // 0x0020
	uint64 UNIT_FIELD_TARGET;                                   // 0x0028
	uint64 UNIT_FIELD_PERSUADED;                                // 0x0030
	uint64 UNIT_FIELD_CHANNEL_OBJECT;                           // 0x0038
	uint32 UNIT_FIELD_HEALTH;                                   // 0x0040
	uint32 UNIT_FIELD_POWER1;                                   // 0x0044
	uint32 UNIT_FIELD_POWER2;                                   // 0x0048
	uint32 UNIT_FIELD_POWER3;                                   // 0x004C
	uint32 UNIT_FIELD_POWER4;                                   // 0x0050
	uint32 UNIT_FIELD_POWER5;                                   // 0x0054
	uint32 UNIT_FIELD_MAXHEALTH;                                // 0x0058
	uint32 UNIT_FIELD_MAXPOWER1;                                // 0x005C
	uint32 UNIT_FIELD_MAXPOWER2;                                // 0x0060
	uint32 UNIT_FIELD_MAXPOWER3;                                // 0x0064
	uint32 UNIT_FIELD_MAXPOWER4;                                // 0x0068
	uint32 UNIT_FIELD_MAXPOWER5;                                // 0x006C
	uint32 UNIT_FIELD_LEVEL;                                    // 0x0070
	uint32 UNIT_FIELD_FACTIONTEMPLATE;                          // 0x0074
	uint32 UNIT_FIELD_BYTES_0;                                  // 0x0078
	uint32 UNIT_VIRTUAL_ITEM_SLOT_DISPLAY[3];                   // 0x007C
	uint32 UNIT_VIRTUAL_ITEM_INFO[6];                           // 0x0088
	uint32 UNIT_FIELD_FLAGS;                                    // 0x00A0
	uint32 UNIT_FIELD_FLAGS_2;                                  // 0x00A4
	uint32 UNIT_FIELD_AURA[56];                                 // 0x00A8
	uint32 UNIT_FIELD_AURAFLAGS[14];                            // 0x0188
	uint32 UNIT_FIELD_AURALEVELS[14];                           // 0x01C0
	uint32 UNIT_FIELD_AURAAPPLICATIONS[14];                     // 0x01F8
	uint32 UNIT_FIELD_AURASTATE;                                // 0x0230
	uint64 UNIT_FIELD_BASEATTACKTIME;                           // 0x0234
	uint32 UNIT_FIELD_RANGEDATTACKTIME;                         // 0x023C
	uint32 UNIT_FIELD_BOUNDINGRADIUS;                           // 0x0240
	uint32 UNIT_FIELD_COMBATREACH;                              // 0x0244
	uint32 UNIT_FIELD_DISPLAYID;                                // 0x0248
	uint32 UNIT_FIELD_NATIVEDISPLAYID;                          // 0x024C
	uint32 UNIT_FIELD_MOUNTDISPLAYID;                           // 0x0250
	uint32 UNIT_FIELD_MINDAMAGE;                                // 0x0254
	uint32 UNIT_FIELD_MAXDAMAGE;                                // 0x0258
	uint32 UNIT_FIELD_MINOFFHANDDAMAGE;                         // 0x025C
	uint32 UNIT_FIELD_MAXOFFHANDDAMAGE;                         // 0x0260
	uint32 UNIT_FIELD_BYTES_1;                                  // 0x0264
	uint32 UNIT_FIELD_PETNUMBER;                                // 0x0268
	uint32 UNIT_FIELD_PET_NAME_TIMESTAMP;                       // 0x026C
	uint32 UNIT_FIELD_PETEXPERIENCE;                            // 0x0270
	uint32 UNIT_FIELD_PETNEXTLEVELEXP;                          // 0x0274
	uint32 UNIT_DYNAMIC_FLAGS;                                  // 0x0278
	uint32 UNIT_CHANNEL_SPELL;                                  // 0x027C
	uint32 UNIT_MOD_CAST_SPEED;                                 // 0x0280
	uint32 UNIT_CREATED_BY_SPELL;                               // 0x0284
	uint32 UNIT_NPC_FLAGS;                                      // 0x0288
	uint32 UNIT_NPC_EMOTESTATE;                                 // 0x028C
	uint32 UNIT_TRAINING_POINTS;                                // 0x0290
	uint32 UNIT_FIELD_STAT0;                                    // 0x0294
	uint32 UNIT_FIELD_STAT1;                                    // 0x0298
	uint32 UNIT_FIELD_STAT2;                                    // 0x029C
	uint32 UNIT_FIELD_STAT3;                                    // 0x02A0
	uint32 UNIT_FIELD_STAT4;                                    // 0x02A4
	uint32 UNIT_FIELD_POSSTAT0;                                 // 0x02A8
	uint32 UNIT_FIELD_POSSTAT1;                                 // 0x02AC
	uint32 UNIT_FIELD_POSSTAT2;                                 // 0x02B0
	uint32 UNIT_FIELD_POSSTAT3;                                 // 0x02B4
	uint32 UNIT_FIELD_POSSTAT4;                                 // 0x02B8
	uint32 UNIT_FIELD_NEGSTAT0;                                 // 0x02BC
	uint32 UNIT_FIELD_NEGSTAT1;                                 // 0x02C0
	uint32 UNIT_FIELD_NEGSTAT2;                                 // 0x02C4
	uint32 UNIT_FIELD_NEGSTAT3;                                 // 0x02C8
	uint32 UNIT_FIELD_NEGSTAT4;                                 // 0x02CC
	uint32 UNIT_FIELD_RESISTANCES[7];                           // 0x02D0
	uint32 UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE[7];            // 0x02EC
	uint32 UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE[7];            // 0x0308
	uint32 UNIT_FIELD_BASE_MANA;                                // 0x0324
	uint32 UNIT_FIELD_BASE_HEALTH;                              // 0x0328
	uint32 UNIT_FIELD_BYTES_2;                                  // 0x032C
	uint32 UNIT_FIELD_ATTACK_POWER;                             // 0x0330
	uint32 UNIT_FIELD_ATTACK_POWER_MODS;                        // 0x0334
	uint32 UNIT_FIELD_ATTACK_POWER_MULTIPLIER;                  // 0x0338
	uint32 UNIT_FIELD_RANGED_ATTACK_POWER;                      // 0x033C
	uint32 UNIT_FIELD_RANGED_ATTACK_POWER_MODS;                 // 0x0340
	uint32 UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER;           // 0x0344
	uint32 UNIT_FIELD_MINRANGEDDAMAGE;                          // 0x0348
	uint32 UNIT_FIELD_MAXRANGEDDAMAGE;                          // 0x034C
	uint32 UNIT_FIELD_POWER_COST_MODIFIER[7];                   // 0x0350
	uint32 UNIT_FIELD_POWER_COST_MULTIPLIER[7];                 // 0x036C
	uint32 UNIT_FIELD_MAXHEALTHMODIFIER;                        // 0x0388
	uint32 UNIT_FIELD_PADDING;                                  // 0x038C
};

struct PlayerFields
{
	uint64 PLAYER_DUEL_ARBITER;                                 // 0x0000
	uint32 PLAYER_FLAGS;                                        // 0x0008
	uint32 PLAYER_GUILDID;                                      // 0x000C
	uint32 PLAYER_GUILDRANK;                                    // 0x0010
	uint32 PLAYER_BYTES;                                        // 0x0014
	uint32 PLAYER_BYTES_2;                                      // 0x0018
	uint32 PLAYER_BYTES_3;                                      // 0x001C
	uint32 PLAYER_DUEL_TEAM;                                    // 0x0020
	uint32 PLAYER_GUILD_TIMESTAMP;                              // 0x0024
	uint32 PLAYER_QUEST_LOG_1_1;                                // 0x0028
	uint32 PLAYER_QUEST_LOG_1_2;                                // 0x002C
	uint32 PLAYER_QUEST_LOG_1_3;                                // 0x0030
	uint32 PLAYER_QUEST_LOG_1_4;                                // 0x0034
	uint32 PLAYER_QUEST_LOG_2_1;                                // 0x0038
	uint32 PLAYER_QUEST_LOG_2_2;                                // 0x003C
	uint32 PLAYER_QUEST_LOG_2_3;                                // 0x0040
	uint32 PLAYER_QUEST_LOG_2_4;                                // 0x0044
	uint32 PLAYER_QUEST_LOG_3_1;                                // 0x0048
	uint32 PLAYER_QUEST_LOG_3_2;                                // 0x004C
	uint32 PLAYER_QUEST_LOG_3_3;                                // 0x0050
	uint32 PLAYER_QUEST_LOG_3_4;                                // 0x0054
	uint32 PLAYER_QUEST_LOG_4_1;                                // 0x0058
	uint32 PLAYER_QUEST_LOG_4_2;                                // 0x005C
	uint32 PLAYER_QUEST_LOG_4_3;                                // 0x0060
	uint32 PLAYER_QUEST_LOG_4_4;                                // 0x0064
	uint32 PLAYER_QUEST_LOG_5_1;                                // 0x0068
	uint32 PLAYER_QUEST_LOG_5_2;                                // 0x006C
	uint32 PLAYER_QUEST_LOG_5_3;                                // 0x0070
	uint32 PLAYER_QUEST_LOG_5_4;                                // 0x0074
	uint32 PLAYER_QUEST_LOG_6_1;                                // 0x0078
	uint32 PLAYER_QUEST_LOG_6_2;                                // 0x007C
	uint32 PLAYER_QUEST_LOG_6_3;                                // 0x0080
	uint32 PLAYER_QUEST_LOG_6_4;                                // 0x0084
	uint32 PLAYER_QUEST_LOG_7_1;                                // 0x0088
	uint32 PLAYER_QUEST_LOG_7_2;                                // 0x008C
	uint32 PLAYER_QUEST_LOG_7_3;                                // 0x0090
	uint32 PLAYER_QUEST_LOG_7_4;                                // 0x0094
	uint32 PLAYER_QUEST_LOG_8_1;                                // 0x0098
	uint32 PLAYER_QUEST_LOG_8_2;                                // 0x009C
	uint32 PLAYER_QUEST_LOG_8_3;                                // 0x00A0
	uint32 PLAYER_QUEST_LOG_8_4;                                // 0x00A4
	uint32 PLAYER_QUEST_LOG_9_1;                                // 0x00A8
	uint32 PLAYER_QUEST_LOG_9_2;                                // 0x00AC
	uint32 PLAYER_QUEST_LOG_9_3;                                // 0x00B0
	uint32 PLAYER_QUEST_LOG_9_4;                                // 0x00B4
	uint32 PLAYER_QUEST_LOG_10_1;                               // 0x00B8
	uint32 PLAYER_QUEST_LOG_10_2;                               // 0x00BC
	uint32 PLAYER_QUEST_LOG_10_3;                               // 0x00C0
	uint32 PLAYER_QUEST_LOG_10_4;                               // 0x00C4
	uint32 PLAYER_QUEST_LOG_11_1;                               // 0x00C8
	uint32 PLAYER_QUEST_LOG_11_2;                               // 0x00CC
	uint32 PLAYER_QUEST_LOG_11_3;                               // 0x00D0
	uint32 PLAYER_QUEST_LOG_11_4;                               // 0x00D4
	uint32 PLAYER_QUEST_LOG_12_1;                               // 0x00D8
	uint32 PLAYER_QUEST_LOG_12_2;                               // 0x00DC
	uint32 PLAYER_QUEST_LOG_12_3;                               // 0x00E0
	uint32 PLAYER_QUEST_LOG_12_4;                               // 0x00E4
	uint32 PLAYER_QUEST_LOG_13_1;                               // 0x00E8
	uint32 PLAYER_QUEST_LOG_13_2;                               // 0x00EC
	uint32 PLAYER_QUEST_LOG_13_3;                               // 0x00F0
	uint32 PLAYER_QUEST_LOG_13_4;                               // 0x00F4
	uint32 PLAYER_QUEST_LOG_14_1;                               // 0x00F8
	uint32 PLAYER_QUEST_LOG_14_2;                               // 0x00FC
	uint32 PLAYER_QUEST_LOG_14_3;                               // 0x0100
	uint32 PLAYER_QUEST_LOG_14_4;                               // 0x0104
	uint32 PLAYER_QUEST_LOG_15_1;                               // 0x0108
	uint32 PLAYER_QUEST_LOG_15_2;                               // 0x010C
	uint32 PLAYER_QUEST_LOG_15_3;                               // 0x0110
	uint32 PLAYER_QUEST_LOG_15_4;                               // 0x0114
	uint32 PLAYER_QUEST_LOG_16_1;                               // 0x0118
	uint32 PLAYER_QUEST_LOG_16_2;                               // 0x011C
	uint32 PLAYER_QUEST_LOG_16_3;                               // 0x0120
	uint32 PLAYER_QUEST_LOG_16_4;                               // 0x0124
	uint32 PLAYER_QUEST_LOG_17_1;                               // 0x0128
	uint32 PLAYER_QUEST_LOG_17_2;                               // 0x012C
	uint32 PLAYER_QUEST_LOG_17_3;                               // 0x0130
	uint32 PLAYER_QUEST_LOG_17_4;                               // 0x0134
	uint32 PLAYER_QUEST_LOG_18_1;                               // 0x0138
	uint32 PLAYER_QUEST_LOG_18_2;                               // 0x013C
	uint32 PLAYER_QUEST_LOG_18_3;                               // 0x0140
	uint32 PLAYER_QUEST_LOG_18_4;                               // 0x0144
	uint32 PLAYER_QUEST_LOG_19_1;                               // 0x0148
	uint32 PLAYER_QUEST_LOG_19_2;                               // 0x014C
	uint32 PLAYER_QUEST_LOG_19_3;                               // 0x0150
	uint32 PLAYER_QUEST_LOG_19_4;                               // 0x0154
	uint32 PLAYER_QUEST_LOG_20_1;                               // 0x0158
	uint32 PLAYER_QUEST_LOG_20_2;                               // 0x015C
	uint32 PLAYER_QUEST_LOG_20_3;                               // 0x0160
	uint32 PLAYER_QUEST_LOG_20_4;                               // 0x0164
	uint32 PLAYER_QUEST_LOG_21_1;                               // 0x0168
	uint32 PLAYER_QUEST_LOG_21_2;                               // 0x016C
	uint32 PLAYER_QUEST_LOG_21_3;                               // 0x0170
	uint32 PLAYER_QUEST_LOG_21_4;                               // 0x0174
	uint32 PLAYER_QUEST_LOG_22_1;                               // 0x0178
	uint32 PLAYER_QUEST_LOG_22_2;                               // 0x017C
	uint32 PLAYER_QUEST_LOG_22_3;                               // 0x0180
	uint32 PLAYER_QUEST_LOG_22_4;                               // 0x0184
	uint32 PLAYER_QUEST_LOG_23_1;                               // 0x0188
	uint32 PLAYER_QUEST_LOG_23_2;                               // 0x018C
	uint32 PLAYER_QUEST_LOG_23_3;                               // 0x0190
	uint32 PLAYER_QUEST_LOG_23_4;                               // 0x0194
	uint32 PLAYER_QUEST_LOG_24_1;                               // 0x0198
	uint32 PLAYER_QUEST_LOG_24_2;                               // 0x019C
	uint32 PLAYER_QUEST_LOG_24_3;                               // 0x01A0
	uint32 PLAYER_QUEST_LOG_24_4;                               // 0x01A4
	uint32 PLAYER_QUEST_LOG_25_1;                               // 0x01A8
	uint32 PLAYER_QUEST_LOG_25_2;                               // 0x01AC
	uint32 PLAYER_QUEST_LOG_25_3;                               // 0x01B0
	uint32 PLAYER_QUEST_LOG_25_4;                               // 0x01B4
	uint64 PLAYER_VISIBLE_ITEM_1_CREATOR;                       // 0x01B8
	uint32 PLAYER_VISIBLE_ITEM_1_0[12];                         // 0x01C0
	uint32 PLAYER_VISIBLE_ITEM_1_PROPERTIES;                    // 0x01F0
	uint32 PLAYER_VISIBLE_ITEM_1_PAD;                           // 0x01F4
	uint64 PLAYER_VISIBLE_ITEM_2_CREATOR;                       // 0x01F8
	uint32 PLAYER_VISIBLE_ITEM_2_0[12];                         // 0x0200
	uint32 PLAYER_VISIBLE_ITEM_2_PROPERTIES;                    // 0x0230
	uint32 PLAYER_VISIBLE_ITEM_2_PAD;                           // 0x0234
	uint64 PLAYER_VISIBLE_ITEM_3_CREATOR;                       // 0x0238
	uint32 PLAYER_VISIBLE_ITEM_3_0[12];                         // 0x0240
	uint32 PLAYER_VISIBLE_ITEM_3_PROPERTIES;                    // 0x0270
	uint32 PLAYER_VISIBLE_ITEM_3_PAD;                           // 0x0274
	uint64 PLAYER_VISIBLE_ITEM_4_CREATOR;                       // 0x0278
	uint32 PLAYER_VISIBLE_ITEM_4_0[12];                         // 0x0280
	uint32 PLAYER_VISIBLE_ITEM_4_PROPERTIES;                    // 0x02B0
	uint32 PLAYER_VISIBLE_ITEM_4_PAD;                           // 0x02B4
	uint64 PLAYER_VISIBLE_ITEM_5_CREATOR;                       // 0x02B8
	uint32 PLAYER_VISIBLE_ITEM_5_0[12];                         // 0x02C0
	uint32 PLAYER_VISIBLE_ITEM_5_PROPERTIES;                    // 0x02F0
	uint32 PLAYER_VISIBLE_ITEM_5_PAD;                           // 0x02F4
	uint64 PLAYER_VISIBLE_ITEM_6_CREATOR;                       // 0x02F8
	uint32 PLAYER_VISIBLE_ITEM_6_0[12];                         // 0x0300
	uint32 PLAYER_VISIBLE_ITEM_6_PROPERTIES;                    // 0x0330
	uint32 PLAYER_VISIBLE_ITEM_6_PAD;                           // 0x0334
	uint64 PLAYER_VISIBLE_ITEM_7_CREATOR;                       // 0x0338
	uint32 PLAYER_VISIBLE_ITEM_7_0[12];                         // 0x0340
	uint32 PLAYER_VISIBLE_ITEM_7_PROPERTIES;                    // 0x0370
	uint32 PLAYER_VISIBLE_ITEM_7_PAD;                           // 0x0374
	uint64 PLAYER_VISIBLE_ITEM_8_CREATOR;                       // 0x0378
	uint32 PLAYER_VISIBLE_ITEM_8_0[12];                         // 0x0380
	uint32 PLAYER_VISIBLE_ITEM_8_PROPERTIES;                    // 0x03B0
	uint32 PLAYER_VISIBLE_ITEM_8_PAD;                           // 0x03B4
	uint64 PLAYER_VISIBLE_ITEM_9_CREATOR;                       // 0x03B8
	uint32 PLAYER_VISIBLE_ITEM_9_0[12];                         // 0x03C0
	uint32 PLAYER_VISIBLE_ITEM_9_PROPERTIES;                    // 0x03F0
	uint32 PLAYER_VISIBLE_ITEM_9_PAD;                           // 0x03F4
	uint64 PLAYER_VISIBLE_ITEM_10_CREATOR;                      // 0x03F8
	uint32 PLAYER_VISIBLE_ITEM_10_0[12];                        // 0x0400
	uint32 PLAYER_VISIBLE_ITEM_10_PROPERTIES;                   // 0x0430
	uint32 PLAYER_VISIBLE_ITEM_10_PAD;                          // 0x0434
	uint64 PLAYER_VISIBLE_ITEM_11_CREATOR;                      // 0x0438
	uint32 PLAYER_VISIBLE_ITEM_11_0[12];                        // 0x0440
	uint32 PLAYER_VISIBLE_ITEM_11_PROPERTIES;                   // 0x0470
	uint32 PLAYER_VISIBLE_ITEM_11_PAD;                          // 0x0474
	uint64 PLAYER_VISIBLE_ITEM_12_CREATOR;                      // 0x0478
	uint32 PLAYER_VISIBLE_ITEM_12_0[12];                        // 0x0480
	uint32 PLAYER_VISIBLE_ITEM_12_PROPERTIES;                   // 0x04B0
	uint32 PLAYER_VISIBLE_ITEM_12_PAD;                          // 0x04B4
	uint64 PLAYER_VISIBLE_ITEM_13_CREATOR;                      // 0x04B8
	uint32 PLAYER_VISIBLE_ITEM_13_0[12];                        // 0x04C0
	uint32 PLAYER_VISIBLE_ITEM_13_PROPERTIES;                   // 0x04F0
	uint32 PLAYER_VISIBLE_ITEM_13_PAD;                          // 0x04F4
	uint64 PLAYER_VISIBLE_ITEM_14_CREATOR;                      // 0x04F8
	uint32 PLAYER_VISIBLE_ITEM_14_0[12];                        // 0x0500
	uint32 PLAYER_VISIBLE_ITEM_14_PROPERTIES;                   // 0x0530
	uint32 PLAYER_VISIBLE_ITEM_14_PAD;                          // 0x0534
	uint64 PLAYER_VISIBLE_ITEM_15_CREATOR;                      // 0x0538
	uint32 PLAYER_VISIBLE_ITEM_15_0[12];                        // 0x0540
	uint32 PLAYER_VISIBLE_ITEM_15_PROPERTIES;                   // 0x0570
	uint32 PLAYER_VISIBLE_ITEM_15_PAD;                          // 0x0574
	uint64 PLAYER_VISIBLE_ITEM_16_CREATOR;                      // 0x0578
	uint32 PLAYER_VISIBLE_ITEM_16_0[12];                        // 0x0580
	uint32 PLAYER_VISIBLE_ITEM_16_PROPERTIES;                   // 0x05B0
	uint32 PLAYER_VISIBLE_ITEM_16_PAD;                          // 0x05B4
	uint64 PLAYER_VISIBLE_ITEM_17_CREATOR;                      // 0x05B8
	uint32 PLAYER_VISIBLE_ITEM_17_0[12];                        // 0x05C0
	uint32 PLAYER_VISIBLE_ITEM_17_PROPERTIES;                   // 0x05F0
	uint32 PLAYER_VISIBLE_ITEM_17_PAD;                          // 0x05F4
	uint64 PLAYER_VISIBLE_ITEM_18_CREATOR;                      // 0x05F8
	uint32 PLAYER_VISIBLE_ITEM_18_0[12];                        // 0x0600
	uint32 PLAYER_VISIBLE_ITEM_18_PROPERTIES;                   // 0x0630
	uint32 PLAYER_VISIBLE_ITEM_18_PAD;                          // 0x0634
	uint64 PLAYER_VISIBLE_ITEM_19_CREATOR;                      // 0x0638
	uint32 PLAYER_VISIBLE_ITEM_19_0[12];                        // 0x0640
	uint32 PLAYER_VISIBLE_ITEM_19_PROPERTIES;                   // 0x0670
	uint32 PLAYER_VISIBLE_ITEM_19_PAD;                          // 0x0674
	uint32 PLAYER_CHOSEN_TITLE;                                 // 0x0678
	uint32 PLAYER_FIELD_PAD_0;                                  // 0x067C
	uint32 PLAYER_FIELD_INV_SLOT_HEAD[46];                      // 0x0680
	uint32 PLAYER_FIELD_PACK_SLOT_1[32];                        // 0x0738
	uint32 PLAYER_FIELD_BANK_SLOT_1[56];                        // 0x07B8
	uint32 PLAYER_FIELD_BANKBAG_SLOT_1[14];                     // 0x0898
	uint32 PLAYER_FIELD_VENDORBUYBACK_SLOT_1[24];               // 0x08D0
	uint32 PLAYER_FIELD_KEYRING_SLOT_1[64];                     // 0x0930
	uint32 PLAYER_FIELD_VANITYPET_SLOT_1[36];                   // 0x0A30
	uint64 PLAYER_FARSIGHT;                                     // 0x0AC0
	uint64 PLAYER__FIELD_KNOWN_TITLES;                          // 0x0AC8
	uint32 PLAYER_XP;                                           // 0x0AD0
	uint32 PLAYER_NEXT_LEVEL_XP;                                // 0x0AD4
	uint32 PLAYER_SKILL_INFO_1_1[384];                          // 0x0AD8
	uint32 PLAYER_CHARACTER_POINTS1;                            // 0x10D8
	uint32 PLAYER_CHARACTER_POINTS2;                            // 0x10DC
	uint32 PLAYER_TRACK_CREATURES;                              // 0x10E0
	uint32 PLAYER_TRACK_RESOURCES;                              // 0x10E4
	uint32 PLAYER_BLOCK_PERCENTAGE;                             // 0x10E8
	uint32 PLAYER_DODGE_PERCENTAGE;                             // 0x10EC
	uint32 PLAYER_PARRY_PERCENTAGE;                             // 0x10F0
	uint32 PLAYER_EXPERTISE;                                    // 0x10F4
	uint32 PLAYER_OFFHAND_EXPERTISE;                            // 0x10F8
	uint32 PLAYER_CRIT_PERCENTAGE;                              // 0x10FC
	uint32 PLAYER_RANGED_CRIT_PERCENTAGE;                       // 0x1100
	uint32 PLAYER_OFFHAND_CRIT_PERCENTAGE;                      // 0x1104
	uint32 PLAYER_SPELL_CRIT_PERCENTAGE1[7];                    // 0x1108
	uint32 PLAYER_SHIELD_BLOCK;                                 // 0x1124
	uint32 PLAYER_EXPLORED_ZONES_1[128];                        // 0x1128
	uint32 PLAYER_REST_STATE_EXPERIENCE;                        // 0x1328
	uint32 PLAYER_FIELD_COINAGE;                                // 0x132C
	uint32 PLAYER_FIELD_MOD_DAMAGE_DONE_POS[7];                 // 0x1330
	uint32 PLAYER_FIELD_MOD_DAMAGE_DONE_NEG[7];                 // 0x134C
	uint32 PLAYER_FIELD_MOD_DAMAGE_DONE_PCT[7];                 // 0x1368
	uint32 PLAYER_FIELD_MOD_HEALING_DONE_POS;                   // 0x1384
	uint32 PLAYER_FIELD_MOD_TARGET_RESISTANCE;                  // 0x1388
	uint32 PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE;         // 0x138C
	uint32 PLAYER_FIELD_BYTES;                                  // 0x1390
	uint32 PLAYER_AMMO_ID;                                      // 0x1394
	uint32 PLAYER_SELF_RES_SPELL;                               // 0x1398
	uint32 PLAYER_FIELD_PVP_MEDALS;                             // 0x139C
	uint32 PLAYER_FIELD_BUYBACK_PRICE_1[12];                    // 0x13A0
	uint32 PLAYER_FIELD_BUYBACK_TIMESTAMP_1[12];                // 0x13D0
	uint32 PLAYER_FIELD_KILLS;                                  // 0x1400
	uint32 PLAYER_FIELD_TODAY_CONTRIBUTION;                     // 0x1404
	uint32 PLAYER_FIELD_YESTERDAY_CONTRIBUTION;                 // 0x1408
	uint32 PLAYER_FIELD_LIFETIME_HONORBALE_KILLS;               // 0x140C
	uint32 PLAYER_FIELD_BYTES2;                                 // 0x1410
	uint32 PLAYER_FIELD_WATCHED_FACTION_INDEX;                  // 0x1414
	uint32 PLAYER_FIELD_COMBAT_RATING_1[24];                    // 0x1418
	uint32 PLAYER_FIELD_ARENA_TEAM_INFO_1_1[18];                // 0x1478
	uint32 PLAYER_FIELD_HONOR_CURRENCY;                         // 0x14C0
	uint32 PLAYER_FIELD_ARENA_CURRENCY;                         // 0x14C4
	uint32 PLAYER_FIELD_MOD_MANA_REGEN;                         // 0x14C8
	uint32 PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT;               // 0x14CC
	uint32 PLAYER_FIELD_MAX_LEVEL;                              // 0x14D0
	uint32 PLAYER_FIELD_DAILY_QUESTS_1[25];                     // 0x14D4
};

struct GameObjectFields
{
	uint64 OBJECT_FIELD_CREATED_BY;                             // 0x0000
	uint32 GAMEOBJECT_DISPLAYID;                                // 0x0008
	uint32 GAMEOBJECT_FLAGS;                                    // 0x000C
	uint32 GAMEOBJECT_ROTATION[4];                              // 0x0010
	uint32 GAMEOBJECT_STATE;                                    // 0x0020
	uint32 GAMEOBJECT_POS_X;                                    // 0x0024
	uint32 GAMEOBJECT_POS_Y;                                    // 0x0028
	uint32 GAMEOBJECT_POS_Z;                                    // 0x002C
	uint32 GAMEOBJECT_FACING;                                   // 0x0030
	uint32 GAMEOBJECT_DYN_FLAGS;                                // 0x0034
	uint32 GAMEOBJECT_FACTION;                                  // 0x0038
	uint32 GAMEOBJECT_TYPE_ID;                                  // 0x003C
	uint32 GAMEOBJECT_LEVEL;                                    // 0x0040
	uint32 GAMEOBJECT_ARTKIT;                                   // 0x0044
	uint32 GAMEOBJECT_ANIMPROGRESS;                             // 0x0048
	uint32 GAMEOBJECT_PADDING;                                  // 0x004C
};

struct DynamicObjectFields
{
	uint64 DYNAMICOBJECT_CASTER;                                // 0x0000
	uint32 DYNAMICOBJECT_BYTES;                                 // 0x0008
	uint32 DYNAMICOBJECT_SPELLID;                               // 0x000C
	uint32 DYNAMICOBJECT_RADIUS;                                // 0x0010
	uint32 DYNAMICOBJECT_POS_X;                                 // 0x0014
	uint32 DYNAMICOBJECT_POS_Y;                                 // 0x0018
	uint32 DYNAMICOBJECT_POS_Z;                                 // 0x001C
	uint32 DYNAMICOBJECT_FACING;                                // 0x0020
	uint32 DYNAMICOBJECT_CASTTIME;                              // 0x0024
};

struct CorpseFields
{
	uint64 CORPSE_FIELD_OWNER;                                  // 0x0000
	uint64 CORPSE_FIELD_PARTY;                                  // 0x0008
	uint32 CORPSE_FIELD_FACING;                                 // 0x0010
	uint32 CORPSE_FIELD_POS_X;                                  // 0x0014
	uint32 CORPSE_FIELD_POS_Y;                                  // 0x0018
	uint32 CORPSE_FIELD_POS_Z;                                  // 0x001C
	uint32 CORPSE_FIELD_DISPLAY_ID;                             // 0x0020
	uint32 CORPSE_FIELD_ITEM[19];                               // 0x0024
	uint32 CORPSE_FIELD_BYTES_1;                                // 0x0070
	uint32 CORPSE_FIELD_BYTES_2;                                // 0x0074
	uint32 CORPSE_FIELD_GUILD;                                  // 0x0078
	uint32 CORPSE_FIELD_FLAGS;                                  // 0x007C
	uint32 CORPSE_FIELD_DYNAMIC_FLAGS;                          // 0x0080
	uint32 CORPSE_FIELD_PAD;                                    // 0x0084
};
```

----------


## tutrakan

I couldn't find these anywhere, so I had fun to figure them out:


```
int FrameScript::SignalEvent(Events_FrameXML event, const char *args, ...) @ 0x00707850

enum Events_FrameXML
{
	EVENT_UNIT_PET = 0x0,
	EVENT_UNIT_PET_2 = 0x2,
	EVENT_UNIT_TARGET = 0xa,
	EVENT_UNIT_HEALTH = 0x10,
	EVENT_UNIT_MANA = 0x11,
	EVENT_UNIT_RAGE = 0x12,
	EVENT_UNIT_FOCUS = 0x13,
	EVENT_UNIT_ENERGY = 0x14,
	EVENT_UNIT_HAPPINESS = 0x15,
	EVENT_UNIT_MAXHEALTH = 0x16,
	EVENT_UNIT_MAXMANA = 0x17,
	EVENT_UNIT_MAXRAGE = 0x18,
	EVENT_UNIT_MAXFOCUS = 0x19,
	EVENT_UNIT_MAXENERGY = 0x1a,
	EVENT_UNIT_MAXHAPPINESS = 0x1b,
	EVENT_UNIT_LEVEL = 0x1c,
	EVENT_UNIT_FACTION = 0x1d,
	EVENT_UNIT_DISPLAYPOWER = 0x1e,
	EVENT_UNIT_FLAGS = 0x28,
	EVENT_UNIT_FLAGS_2 = 0x29,
	EVENT_UNIT_AURA = 0x2a,
	EVENT_UNIT_AURA_2 = 0x7e,
	EVENT_UNIT_ATTACK_SPEED = 0x8d,
	EVENT_UNIT_ATTACK_SPEED_2 = 0x8e,
	EVENT_UNIT_RANGEDDAMAGE = 0x8f,
	EVENT_UNIT_DAMAGE = 0x95,
	EVENT_UNIT_DAMAGE_2 = 0x96,
	EVENT_UNIT_DAMAGE_3 = 0x97,
	EVENT_UNIT_DAMAGE_4 = 0x98,
	EVENT_UNIT_LOYALTY = 0x99,
	EVENT_UNIT_PET_EXPERIENCE = 0x9c,
	EVENT_UNIT_PET_EXPERIENCE_2 = 0x9d,
	EVENT_UNIT_DYNAMIC_FLAGS = 0x9e,
	EVENT_UNIT_PET_TRAINING_POINTS = 0xa4,
	EVENT_UNIT_STATS = 0xa5,
	EVENT_UNIT_STATS_2 = 0xa6,
	EVENT_UNIT_STATS_3 = 0xa7,
	EVENT_UNIT_STATS_4 = 0xa8,
	EVENT_UNIT_STATS_5 = 0xa9,
	EVENT_UNIT_RESISTANCES = 0xb4,
	EVENT_UNIT_RESISTANCES_2 = 0xb5,
	EVENT_UNIT_RESISTANCES_3 = 0xb6,
	EVENT_UNIT_RESISTANCES_4 = 0xb7,
	EVENT_UNIT_RESISTANCES_5 = 0xb8,
	EVENT_UNIT_RESISTANCES_6 = 0xb9,
	EVENT_UNIT_RESISTANCES_7 = 0xba,
	EVENT_UNIT_RESISTANCES_8 = 0xbb,
	EVENT_UNIT_RESISTANCES_9 = 0xbc,
	EVENT_UNIT_RESISTANCES_10 = 0xbd,
	EVENT_UNIT_RESISTANCES_11= 0xbe,
	EVENT_UNIT_RESISTANCES_12= 0xbf,
	EVENT_UNIT_RESISTANCES_13 = 0xc0,
	EVENT_UNIT_RESISTANCES_14= 0xc1,
	EVENT_UNIT_RESISTANCES_15 = 0xc2,
	EVENT_UNIT_RESISTANCES_16 = 0xc3,
	EVENT_UNIT_RESISTANCES_17 = 0xc4,
	EVENT_UNIT_RESISTANCES_18 = 0xc5,
	EVENT_UNIT_RESISTANCES_19 = 0xc6,
	EVENT_UNIT_RESISTANCES_20 = 0xc7,
	EVENT_UNIT_RESISTANCES_21 = 0xc8,
	EVENT_UNIT_ATTACK_POWER = 0xcc,
	EVENT_UNIT_ATTACK_POWER_2 = 0xcd,
	EVENT_UNIT_ATTACK_POWER_3 = 0xce,
	EVENT_UNIT_RANGED_ATTACK_POWER = 0xcf,
	EVENT_UNIT_RANGED_ATTACK_POWER_2 = 0xd0,
	EVENT_UNIT_RANGED_ATTACK_POWER_3 = 0xd1,
	EVENT_UNIT_RANGEDDAMAGE_2 = 0xd2,
	EVENT_UNIT_RANGEDDAMAGE_3 = 0xd3,
	EVENT_UNIT_MANA_2 = 0xd4,
	EVENT_UNIT_MANA_3 = 0xdb,
	EVENT_UNIT_STATS_6 = 0xe2,
	EVENT_UNIT_COMBAT = 0xe4,
	EVENT_UNIT_NAME_UPDATE = 0xe5,
	EVENT_UNIT_PORTRAIT_UPDATE = 0xe6,
	EVENT_UNIT_MODEL_CHANGED = 0xe7,
	EVENT_UNIT_INVENTORY_CHANGED = 0xe8,
	EVENT_UNIT_CLASSIFICATION_CHANGED = 0xe9,
	EVENT_ITEM_LOCK_CHANGED = 0xea,
	EVENT_PLAYER_XP_UPDATE = 0xeb,
	EVENT_PLAYER_REGEN_DISABLED = 0xec,
	EVENT_PLAYER_REGEN_ENABLED = 0xed,
	EVENT_PLAYER_AURAS_CHANGED = 0xee,
	EVENT_PLAYER_ENTER_COMBAT = 0xef,
	EVENT_PLAYER_LEAVE_COMBAT = 0xf0,
	EVENT_PLAYER_TARGET_CHANGED = 0xf1,
	EVENT_PLAYER_FOCUS_CHANGED = 0xf2,
	EVENT_PLAYER_CONTROL_LOST = 0xf3,
	EVENT_PLAYER_CONTROL_GAINED = 0xf4,
	EVENT_PLAYER_FARSIGHT_FOCUS_CHANGED = 0xf5,
	EVENT_PLAYER_LEVEL_UP = 0xf6,
	EVENT_PLAYER_MONEY = 0xf7,
	EVENT_PLAYER_DAMAGE_DONE_MODS = 0xf8,
	EVENT_PLAYER_COMBO_POINTS = 0xf9,
	EVENT_PLAYER_TOTEM_UPDATE = 0xfa,
	EVENT_ZONE_CHANGED = 0xfb,
	EVENT_ZONE_CHANGED_INDOORS = 0xfc,
	EVENT_ZONE_CHANGED_NEW_AREA = 0xfd,
	EVENT_MINIMAP_UPDATE_ZOOM = 0xfe,
	EVENT_MINIMAP_UPDATE_TRACKING = 0xff,
	EVENT_SCREENSHOT_SUCCEEDED = 0x100,
	EVENT_SCREENSHOT_FAILED = 0x101,
	EVENT_ACTIONBAR_SHOWGRID = 0x102,
	EVENT_ACTIONBAR_HIDEGRID = 0x103,
	EVENT_ACTIONBAR_PAGE_CHANGED = 0x104,
	EVENT_ACTIONBAR_SLOT_CHANGED = 0x105,
	EVENT_ACTIONBAR_UPDATE_STATE = 0x106,
	EVENT_ACTIONBAR_UPDATE_USABLE = 0x107,
	EVENT_ACTIONBAR_UPDATE_COOLDOWN = 0x108,
	EVENT_UPDATE_BONUS_ACTIONBAR = 0x109,
	EVENT_PARTY_MEMBERS_CHANGED = 0x10a,
	EVENT_PARTY_LEADER_CHANGED = 0x10b,
	EVENT_PARTY_MEMBER_ENABLE = 0x10c,
	EVENT_PARTY_MEMBER_DISABLE = 0x10d,
	EVENT_PARTY_LOOT_METHOD_CHANGED = 0x10e,
	EVENT_SYSMSG = 0x10f,
	EVENT_UI_ERROR_MESSAGE = 0x110,
	EVENT_UI_INFO_MESSAGE = 0x111,
	EVENT_UPDATE_CHAT_COLOR = 0x112,
	EVENT_CHAT_MSG_ADDON = 0x113,
	EVENT_CHAT_MSG_SYSTEM = 0x114,
	EVENT_CHAT_MSG_SAY = 0x115,
	EVENT_CHAT_MSG_PARTY = 0x116,
	EVENT_CHAT_MSG_RAID = 0x117,
	EVENT_CHAT_MSG_GUILD = 0x118,
	EVENT_CHAT_MSG_OFFICER = 0x119,
	EVENT_CHAT_MSG_YELL = 0x11a,
	EVENT_CHAT_MSG_WHISPER = 0x11b,
	EVENT_CHAT_MSG_WHISPER_INFORM = 0x11c,
	EVENT_CHAT_MSG_EMOTE = 0x11d,
	EVENT_CHAT_MSG_TEXT_EMOTE = 0x11e,
	EVENT_CHAT_MSG_MONSTER_SAY = 0x11f,
	EVENT_CHAT_MSG_MONSTER_PARTY = 0x120,
	EVENT_CHAT_MSG_MONSTER_YELL = 0x121,
	EVENT_CHAT_MSG_MONSTER_WHISPER = 0x122,
	EVENT_CHAT_MSG_MONSTER_EMOTE = 0x123,
	EVENT_CHAT_MSG_CHANNEL = 0x124,
	EVENT_CHAT_MSG_CHANNEL_JOIN = 0x125,
	EVENT_CHAT_MSG_CHANNEL_LEAVE = 0x126,
	EVENT_CHAT_MSG_CHANNEL_LIST = 0x127,
	EVENT_CHAT_MSG_CHANNEL_NOTICE = 0x128,
	EVENT_CHAT_MSG_CHANNEL_NOTICE_USER = 0x129,
	EVENT_CHAT_MSG_AFK = 0x12a,
	EVENT_CHAT_MSG_DND = 0x12b,
	EVENT_CHAT_MSG_IGNORED = 0x12c,
	EVENT_CHAT_MSG_SKILL = 0x12d,
	EVENT_CHAT_MSG_LOOT = 0x12e,
	EVENT_CHAT_MSG_MONEY = 0x12f,
	EVENT_CHAT_MSG_OPENING = 0x130,
	EVENT_CHAT_MSG_TRADESKILLS = 0x131,
	EVENT_CHAT_MSG_PET_INFO = 0x132,
	EVENT_CHAT_MSG_COMBAT_MISC_INFO = 0x133,
	EVENT_CHAT_MSG_COMBAT_XP_GAIN = 0x134,
	EVENT_CHAT_MSG_COMBAT_HONOR_GAIN = 0x135,
	EVENT_CHAT_MSG_COMBAT_FACTION_CHANGE = 0x136,
	EVENT_CHAT_MSG_BG_SYSTEM_NEUTRAL = 0x137,
	EVENT_CHAT_MSG_BG_SYSTEM_ALLIANCE = 0x138,
	EVENT_CHAT_MSG_BG_SYSTEM_HORDE = 0x139,
	EVENT_CHAT_MSG_RAID_LEADER = 0x13a,
	EVENT_CHAT_MSG_RAID_WARNING = 0x13b,
	EVENT_CHAT_MSG_RAID_BOSS_WHISPER = 0x13c,
	EVENT_CHAT_MSG_RAID_BOSS_EMOTE = 0x13d,
	EVENT_CHAT_MSG_FILTERED = 0x13e,
	EVENT_CHAT_MSG_BATTLEGROUND = 0x13f,
	EVENT_CHAT_MSG_BATTLEGROUND_LEADER = 0x140,
	EVENT_CHAT_MSG_RESTRICTED = 0x141,
	EVENT_LANGUAGE_LIST_CHANGED = 0x142,
	EVENT_TIME_PLAYED_MSG = 0x143,
	EVENT_SPELLS_CHANGED = 0x144,
	EVENT_CURRENT_SPELL_CAST_CHANGED = 0x145,
	EVENT_SPELL_UPDATE_COOLDOWN = 0x146,
	EVENT_SPELL_UPDATE_USABLE = 0x147,
	EVENT_CHARACTER_POINTS_CHANGED = 0x148,
	EVENT_SKILL_LINES_CHANGED = 0x149,
	EVENT_ITEM_PUSH = 0x14a,
	EVENT_LOOT_OPENED = 0x14b,
	EVENT_LOOT_SLOT_CLEARED = 0x14c,
	EVENT_LOOT_CLOSED = 0x14d,
	EVENT_PLAYER_LOGIN = 0x14e,
	EVENT_PLAYER_LOGOUT = 0x14f,
	EVENT_PLAYER_ENTERING_WORLD = 0x150,
	EVENT_PLAYER_LEAVING_WORLD = 0x151,
	EVENT_PLAYER_ALIVE = 0x152,
	EVENT_PLAYER_DEAD = 0x153,
	EVENT_PLAYER_CAMPING = 0x154,
	EVENT_PLAYER_QUITING = 0x155,
	EVENT_LOGOUT_CANCEL = 0x156,
	EVENT_RESURRECT_REQUEST = 0x157,
	EVENT_PARTY_INVITE_REQUEST = 0x158,
	EVENT_PARTY_INVITE_CANCEL = 0x159,
	EVENT_GUILD_INVITE_REQUEST = 0x15a,
	EVENT_GUILD_INVITE_CANCEL = 0x15b,
	EVENT_GUILD_MOTD = 0x15c,
	EVENT_TRADE_REQUEST = 0x15d,
	EVENT_TRADE_REQUEST_CANCEL = 0x15e,
	EVENT_LOOT_BIND_CONFIRM = 0x15f,
	EVENT_EQUIP_BIND_CONFIRM = 0x160,
	EVENT_AUTOEQUIP_BIND_CONFIRM = 0x161,
	EVENT_USE_BIND_CONFIRM = 0x162,
	EVENT_DELETE_ITEM_CONFIRM = 0x163,
	EVENT_CURSOR_UPDATE = 0x164,
	EVENT_ITEM_TEXT_BEGIN = 0x165,
	EVENT_ITEM_TEXT_TRANSLATION = 0x166,
	EVENT_ITEM_TEXT_READY = 0x167,
	EVENT_ITEM_TEXT_CLOSED = 0x168,
	EVENT_GOSSIP_SHOW = 0x169,
	EVENT_GOSSIP_CONFIRM = 0x16a,
	EVENT_GOSSIP_CONFIRM_CANCEL = 0x16b,
	EVENT_GOSSIP_ENTER_CODE = 0x16c,
	EVENT_GOSSIP_CLOSED = 0x16d,
	EVENT_QUEST_GREETING = 0x16e,
	EVENT_QUEST_DETAIL = 0x16f,
	EVENT_QUEST_PROGRESS = 0x170,
	EVENT_QUEST_COMPLETE = 0x171,
	EVENT_QUEST_FINISHED = 0x172,
	EVENT_QUEST_ITEM_UPDATE = 0x173,
	EVENT_TAXIMAP_OPENED = 0x174,
	EVENT_TAXIMAP_CLOSED = 0x175,
	EVENT_QUEST_LOG_UPDATE = 0x176,
	EVENT_TRAINER_SHOW = 0x177,
	EVENT_TRAINER_UPDATE = 0x178,
	EVENT_TRAINER_CLOSED = 0x179,
	EVENT_CVAR_UPDATE = 0x17a,
	EVENT_TRADE_SKILL_SHOW = 0x17b,
	EVENT_TRADE_SKILL_UPDATE = 0x17c,
	EVENT_TRADE_SKILL_CLOSE = 0x17d,
	EVENT_MERCHANT_SHOW = 0x17e,
	EVENT_MERCHANT_UPDATE = 0x17f,
	EVENT_MERCHANT_CLOSED = 0x180,
	EVENT_TRADE_SHOW = 0x181,
	EVENT_TRADE_CLOSED = 0x182,
	EVENT_TRADE_UPDATE = 0x183,
	EVENT_TRADE_ACCEPT_UPDATE = 0x184,
	EVENT_TRADE_TARGET_ITEM_CHANGED = 0x185,
	EVENT_TRADE_PLAYER_ITEM_CHANGED = 0x186,
	EVENT_TRADE_MONEY_CHANGED = 0x187,
	EVENT_PLAYER_TRADE_MONEY = 0x188,
	EVENT_BAG_OPEN = 0x189,
	EVENT_BAG_UPDATE = 0x18a,
	EVENT_BAG_CLOSED = 0x18b,
	EVENT_BAG_UPDATE_COOLDOWN = 0x18c,
	EVENT_LOCALPLAYER_PET_RENAMED = 0x18d,
	EVENT_UNIT_ATTACK = 0x18e,
	EVENT_UNIT_DEFENSE = 0x18f,
	EVENT_PET_ATTACK_START = 0x190,
	EVENT_PET_ATTACK_STOP = 0x191,
	EVENT_UPDATE_MOUSEOVER_UNIT = 0x192,
	EVENT_UNIT_SPELLCAST_SENT = 0x193,
	EVENT_UNIT_SPELLCAST_START = 0x194,
	EVENT_UNIT_SPELLCAST_STOP = 0x195,
	EVENT_UNIT_SPELLCAST_FAILED = 0x196,
	EVENT_UNIT_SPELLCAST_FAILED_QUIET = 0x197,
	EVENT_UNIT_SPELLCAST_INTERRUPTED = 0x198,
	EVENT_UNIT_SPELLCAST_DELAYED = 0x199,
	EVENT_UNIT_SPELLCAST_SUCCEEDED = 0x19a,
	EVENT_UNIT_SPELLCAST_CHANNEL_START = 0x19b,
	EVENT_UNIT_SPELLCAST_CHANNEL_UPDATE = 0x19c,
	EVENT_UNIT_SPELLCAST_CHANNEL_STOP = 0x19d,
	EVENT_PLAYER_GUILD_UPDATE = 0x19e,
	EVENT_QUEST_ACCEPT_CONFIRM = 0x19f,
	EVENT_PLAYERBANKSLOTS_CHANGED = 0x1a0,
	EVENT_BANKFRAME_OPENED = 0x1a1,
	EVENT_BANKFRAME_CLOSED = 0x1a2,
	EVENT_PLAYERBANKBAGSLOTS_CHANGED = 0x1a3,
	EVENT_FRIENDLIST_UPDATE = 0x1a4,
	EVENT_IGNORELIST_UPDATE = 0x1a5,
	EVENT_MUTELIST_UPDATE = 0x1a6,
	EVENT_PET_BAR_UPDATE = 0x1a7,
	EVENT_PET_BAR_UPDATE_COOLDOWN = 0x1a8,
	EVENT_PET_BAR_SHOWGRID = 0x1a9,
	EVENT_PET_BAR_HIDEGRID = 0x1aa,
	EVENT_PET_BAR_HIDE = 0x1ab,
	EVENT_MINIMAP_PING = 0x1ac,
	EVENT_CRAFT_SHOW = 0x1ad,
	EVENT_CRAFT_UPDATE = 0x1ae,
	EVENT_CRAFT_CLOSE = 0x1af,
	EVENT_MIRROR_TIMER_START = 0x1b0,
	EVENT_MIRROR_TIMER_PAUSE = 0x1b1,
	EVENT_MIRROR_TIMER_STOP = 0x1b2,
	EVENT_WORLD_MAP_UPDATE = 0x1b3,
	EVENT_WORLD_MAP_NAME_UPDATE = 0x1b4,
	EVENT_AUTOFOLLOW_BEGIN = 0x1b5,
	EVENT_AUTOFOLLOW_END = 0x1b6,
	EVENT_CINEMATIC_START = 0x1b8,
	EVENT_CINEMATIC_STOP = 0x1b9,
	EVENT_UPDATE_FACTION = 0x1ba,
	EVENT_CLOSE_WORLD_MAP = 0x1bb,
	EVENT_OPEN_TABARD_FRAME = 0x1bc,
	EVENT_CLOSE_TABARD_FRAME = 0x1bd,
	EVENT_TABARD_CANSAVE_CHANGED = 0x1be,
	EVENT_SHOW_COMPARE_TOOLTIP = 0x1bf,
	EVENT_GUILD_REGISTRAR_SHOW = 0x1c0,
	EVENT_GUILD_REGISTRAR_CLOSED = 0x1c1,
	EVENT_DUEL_REQUESTED = 0x1c2,
	EVENT_DUEL_OUTOFBOUNDS = 0x1c3,
	EVENT_DUEL_INBOUNDS = 0x1c4,
	EVENT_DUEL_FINISHED = 0x1c5,
	EVENT_TUTORIAL_TRIGGER = 0x1c6,
	EVENT_PET_DISMISS_START = 0x1c7,
	EVENT_UPDATE_BINDINGS = 0x1c8,
	EVENT_UPDATE_SHAPESHIFT_FORMS = 0x1c9,
	EVENT_UPDATE_SHAPESHIFT_FORM = 0x1ca,
	EVENT_WHO_LIST_UPDATE = 0x1cb,
	EVENT_UPDATE_LFG = 0x1cc,
	EVENT_PETITION_SHOW = 0x1cd,
	EVENT_PETITION_CLOSED = 0x1ce,
	EVENT_EXECUTE_CHAT_LINE = 0x1cf,
	EVENT_UPDATE_MACROS = 0x1d0,
	EVENT_UPDATE_TICKET = 0x1d1,
	EVENT_UPDATE_CHAT_WINDOWS = 0x1d2,
	EVENT_CONFIRM_XP_LOSS = 0x1d3,
	EVENT_CORPSE_IN_RANGE = 0x1d4,
	EVENT_CORPSE_IN_INSTANCE = 0x1d5,
	EVENT_CORPSE_OUT_OF_RANGE = 0x1d6,
	EVENT_UPDATE_GM_STATUS = 0x1d7,
	EVENT_PLAYER_UNGHOST = 0x1d8,
	EVENT_BIND_ENCHANT = 0x1d9,
	EVENT_REPLACE_ENCHANT = 0x1da,
	EVENT_TRADE_REPLACE_ENCHANT = 0x1db,
	EVENT_PLAYER_UPDATE_RESTING = 0x1dc,
	EVENT_UPDATE_EXHAUSTION = 0x1dd,
	EVENT_PLAYER_FLAGS_CHANGED = 0x1de,
	EVENT_GUILD_ROSTER_UPDATE = 0x1df,
	EVENT_GM_PLAYER_INFO = 0x1e0,
	EVENT_MAIL_SHOW = 0x1e1,
	EVENT_MAIL_CLOSED = 0x1e2,
	EVENT_SEND_MAIL_MONEY_CHANGED = 0x1e3,
	EVENT_SEND_MAIL_COD_CHANGED = 0x1e4,
	EVENT_MAIL_SEND_INFO_UPDATE = 0x1e5,
	EVENT_MAIL_SEND_SUCCESS = 0x1e6,
	EVENT_MAIL_INBOX_UPDATE = 0x1e7,
	EVENT_BATTLEFIELDS_SHOW = 0x1e8,
	EVENT_BATTLEFIELDS_CLOSED = 0x1e9,
	EVENT_UPDATE_BATTLEFIELD_STATUS = 0x1ea,
	EVENT_UPDATE_BATTLEFIELD_SCORE = 0x1eb,
	EVENT_AUCTION_HOUSE_SHOW = 0x1ec,
	EVENT_AUCTION_HOUSE_CLOSED = 0x1ed,
	EVENT_NEW_AUCTION_UPDATE = 0x1ee,
	EVENT_AUCTION_ITEM_LIST_UPDATE = 0x1ef,
	EVENT_AUCTION_OWNED_LIST_UPDATE = 0x1f0,
	EVENT_AUCTION_BIDDER_LIST_UPDATE = 0x1f1,
	EVENT_PET_UI_UPDATE = 0x1f2,
	EVENT_PET_UI_CLOSE = 0x1f3,
	EVENT_ADDON_LOADED = 0x1f4,
	EVENT_VARIABLES_LOADED = 0x1f5,
	EVENT_MACRO_ACTION_FORBIDDEN = 0x1f6,
	EVENT_ADDON_ACTION_FORBIDDEN = 0x1f7,
	EVENT_MACRO_ACTION_BLOCKED = 0x1f8,
	EVENT_ADDON_ACTION_BLOCKED = 0x1f9,
	EVENT_START_AUTOREPEAT_SPELL = 0x1fa,
	EVENT_STOP_AUTOREPEAT_SPELL = 0x1fb,
	EVENT_PET_STABLE_SHOW = 0x1fc,
	EVENT_PET_STABLE_UPDATE = 0x1fd,
	EVENT_PET_STABLE_UPDATE_PAPERDOLL = 0x1fe,
	EVENT_PET_STABLE_CLOSED = 0x1ff,
	EVENT_RAID_ROSTER_UPDATE = 0x200,
	EVENT_UPDATE_PENDING_MAIL = 0x201,
	EVENT_UPDATE_INVENTORY_ALERTS = 0x202,
	EVENT_UPDATE_INVENTORY_DURABILITY = 0x203,
	EVENT_UPDATE_TRADESKILL_RECAST = 0x204,
	EVENT_OPEN_MASTER_LOOT_LIST = 0x205,
	EVENT_UPDATE_MASTER_LOOT_LIST = 0x206,
	EVENT_START_LOOT_ROLL = 0x207,
	EVENT_CANCEL_LOOT_ROLL = 0x208,
	EVENT_CONFIRM_LOOT_ROLL = 0x209,
	EVENT_INSTANCE_BOOT_START = 0x20a,
	EVENT_INSTANCE_BOOT_STOP = 0x20b,
	EVENT_LEARNED_SPELL_IN_TAB = 0x20c,
	EVENT_DISPLAY_SIZE_CHANGED = 0x20d,
	EVENT_CONFIRM_TALENT_WIPE = 0x20e,
	EVENT_CONFIRM_BINDER = 0x20f,
	EVENT_MAIL_FAILED = 0x210,
	EVENT_CLOSE_INBOX_ITEM = 0x211,
	EVENT_CONFIRM_SUMMON = 0x212,
	EVENT_CANCEL_SUMMON = 0x213,
	EVENT_BILLING_NAG_DIALOG = 0x214,
	EVENT_IGR_BILLING_NAG_DIALOG = 0x215,
	EVENT_MEETINGSTONE_CHANGED = 0x216,
	EVENT_PLAYER_SKINNED = 0x217,
	EVENT_TABARD_SAVE_PENDING = 0x218,
	EVENT_UNIT_QUEST_LOG_CHANGED = 0x219,
	EVENT_PLAYER_PVP_KILLS_CHANGED = 0x21a,
	EVENT_PLAYER_PVP_RANK_CHANGED = 0x21b,
	EVENT_INSPECT_HONOR_UPDATE = 0x21c,
	EVENT_UPDATE_WORLD_STATES = 0x21d,
	EVENT_AREA_SPIRIT_HEALER_IN_RANGE = 0x21e,
	EVENT_AREA_SPIRIT_HEALER_OUT_OF_RANGE = 0x21f,
	EVENT_CONFIRM_PET_UNLEARN = 0x220,
	EVENT_PLAYTIME_CHANGED = 0x221,
	EVENT_UPDATE_LFG_TYPES = 0x222,
	EVENT_UPDATE_LFG_LIST = 0x223,
	EVENT_START_MINIGAME = 0x224,
	EVENT_MINIGAME_UPDATE = 0x225,
	EVENT_READY_CHECK = 0x226,
	EVENT_READY_CHECK_CONFIRM = 0x227,
	EVENT_READY_CHECK_FINISHED = 0x228,
	EVENT_RAID_TARGET_UPDATE = 0x229,
	EVENT_GMSURVEY_DISPLAY = 0x22a,
	EVENT_UPDATE_INSTANCE_INFO = 0x22b,
	EVENT_SOCKET_INFO_UPDATE = 0x22c,
	EVENT_SOCKET_INFO_CLOSE = 0x22d,
	EVENT_PETITION_VENDOR_SHOW = 0x22e,
	EVENT_PETITION_VENDOR_CLOSED = 0x22f,
	EVENT_PETITION_VENDOR_UPDATE = 0x230,
	EVENT_COMBAT_TEXT_UPDATE = 0x231,
	EVENT_QUEST_WATCH_UPDATE = 0x232,
	EVENT_KNOWLEDGE_BASE_SETUP_LOAD_SUCCESS = 0x233,
	EVENT_KNOWLEDGE_BASE_SETUP_LOAD_FAILURE = 0x234,
	EVENT_KNOWLEDGE_BASE_QUERY_LOAD_SUCCESS = 0x235,
	EVENT_KNOWLEDGE_BASE_QUERY_LOAD_FAILURE = 0x236,
	EVENT_KNOWLEDGE_BASE_ARTICLE_LOAD_SUCCESS = 0x237,
	EVENT_KNOWLEDGE_BASE_ARTICLE_LOAD_FAILURE = 0x238,
	EVENT_KNOWLEDGE_BASE_SYSTEM_MOTD_UPDATED = 0x239,
	EVENT_KNOWLEDGE_BASE_SERVER_MESSAGE = 0x23a,
	EVENT_ARENA_TEAM_UPDATE = 0x23b,
	EVENT_ARENA_TEAM_ROSTER_UPDATE = 0x23c,
	EVENT_ARENA_TEAM_INVITE_REQUEST = 0x23d,
	EVENT_HONOR_CURRENCY_UPDATE = 0x23e,
	EVENT_KNOWN_TITLES_UPDATE = 0x23f,
	EVENT_NEW_TITLE_EARNED = 0x240,
	EVENT_OLD_TITLE_LOST = 0x241,
	EVENT_LFG_MATCH_REQUEST = 0x242,
	EVENT_LFG_MATCH_CANCEL = 0x243,
	EVENT_LFG_PENDING_REQUEST = 0x244,
	EVENT_LFG_PENDING_CANCEL = 0x245,
	EVENT_LFG_UPDATE = 0x246,
	EVENT_COMBAT_RATING_UPDATE = 0x247,
	EVENT_MODIFIER_STATE_CHANGED = 0x248,
	EVENT_UPDATE_STEALTH = 0x249,
	EVENT_ENABLE_TAXI_BENCHMARK = 0x24a,
	EVENT_DISABLE_TAXI_BENCHMARK = 0x24b,
	EVENT_VOICE_TALKER_START_PARTY = 0x24c,
	EVENT_VOICE_TALKER_STOP_PARTY = 0x24d,
	EVENT_VOICE_TALKER_START_RAID = 0x24e,
	EVENT_VOICE_TALKER_STOP_RAID = 0x24f,
	EVENT_VOICE_START = 0x250,
	EVENT_VOICE_STOP = 0x251,
	EVENT_VOICE_STATUS_UPDATE = 0x252,
	EVENT_VOICE_CHANNEL_STATUS_UPDATE = 0x253,
	EVENT_UPDATE_FLOATING_CHAT_WINDOWS = 0x254,
	EVENT_RAID_INSTANCE_WELCOME = 0x255,
	EVENT_MOVIE_RECORDING_PROGRESS = 0x256,
	EVENT_MOVIE_COMPRESSING_PROGRESS = 0x257,
	EVENT_MOVIE_UNCOMPRESSED_MOVIE = 0x258,
	EVENT_VOICE_PUSH_TO_TALK_START = 0x259,
	EVENT_VOICE_PUSH_TO_TALK_STOP = 0x25a,
	EVENT_GUILDBANKFRAME_OPENED = 0x25b,
	EVENT_GUILDBANKFRAME_CLOSED = 0x25c,
	EVENT_GUILDBANKBAGSLOTS_CHANGED = 0x25d,
	EVENT_GUILDBANK_ITEM_LOCK_CHANGED = 0x25e,
	EVENT_GUILDBANK_UPDATE_TABS = 0x25f,
	EVENT_GUILDBANK_UPDATE_MONEY = 0x260,
	EVENT_GUILDBANKLOG_UPDATE = 0x261,
	EVENT_GUILDBANK_UPDATE_WITHDRAWMONEY = 0x262,
	EVENT_GUILDBANK_UPDATE_TEXT = 0x263,
	EVENT_GUILDBANK_TEXT_CHANGED = 0x264,
	EVENT_CHANNEL_UI_UPDATE = 0x265,
	EVENT_CHANNEL_COUNT_UPDATE = 0x266,
	EVENT_CHANNEL_ROSTER_UPDATE = 0x267,
	EVENT_CHANNEL_VOICE_UPDATE = 0x268,
	EVENT_CHANNEL_INVITE_REQUEST = 0x269,
	EVENT_CHANNEL_PASSWORD_REQUEST = 0x26a,
	EVENT_CHANNEL_FLAGS_UPDATED = 0x26b,
	EVENT_VOICE_SESSIONS_UPDATE = 0x26c,
	EVENT_VOICE_CHAT_ENABLED_UPDATE = 0x26d,
	EVENT_VOICE_LEFT_SESSION = 0x26e,
	EVENT_INSPECT_TALENT_READY = 0x26f,
	EVENT_VOICE_SELF_MUTE = 0x270,
	EVENT_VOICE_PLATE_START = 0x271,
	EVENT_VOICE_PLATE_STOP = 0x272,
	EVENT_ARENA_SEASON_WORLD_STATE = 0x273,
	EVENT_GUILD_EVENT_LOG_UPDATE = 0x274,
	EVENT_GUILDTABARD_UPDATE = 0x275,
	EVENT_SOUND_DEVICE_UPDATE = 0x276,
	EVENT_COMMENTATOR_MAP_UPDATE = 0x277,
	EVENT_COMMENTATOR_ENTER_WORLD = 0x278,
	EVENT_COMBAT_LOG_EVENT = 0x279,
	EVENT_COMBAT_LOG_EVENT_UNFILTERED = 0x27a,
	EVENT_COMMENTATOR_PLAYER_UPDATE = 0x27b,
	EVENT_PLAYER_ENTERING_BATTLEGROUND = 0x27c,
	EVENT_PET_FORCE_NAME_DECLENSION = 0x27d,
	EVENT_LEVEL_GRANT_PROPOSED = 0x27e,
};
```



```
ObjectStorages:
Object:			0x120   
Item:			0x3F8    
Container:		0x790
Unit:			0x1190
Player:			0x2640
GameObject:		0x2A0
DynamicObject:          0x1B0
Corpse:			0x2E0
```

----------


## squiggy

```
function
bool UnitIsOutdoors(WowUnitBase) = 0x60B570 
//sig: char __thiscall CGUnit::IsOutdoors(int this), not sure if ive matched the official name correctly.
```

alternatively one can read the byte at this address instead. It seems to work but the function above only relies on it when 0 so I don't know how accurate it is. 


```
byte UnitIsOutside =  (WowUnitBase + 0xEC) + 0x80 //IsOutside if != 1.
```

Some more offsets/addresses which i dont think have been posted. (edit: or looks like most have been posted actually, oh well)


```
g_clientConnection = 0xD43318
s_curObjMgr = 0x2218

string CurrentZoneTextPtr = wow.exe + 0x86e814
string CurrentSubZoneTextPtr = wow.exe + 0x86e818
int CurrentContinent = wow.exe +0x50F310

enum ContinentId : int
{
    EasternKingdoms = 0,
    Kalimdor = 1,
    Outlands = 530
}
```

----------


## squiggy

As usual names are matched to the best of my abilities but its mostly guesswork. 


```
Netclient::send = 0x0055F8A0
WowConnection::Send = 0x004203B0
CGWorld::Intersect = 0x00681940
```


World intersect seems like a really cool function, but i only found it yesterday and havent played much with it. I couldnt get it to trigger on terrain like hills or water but worked well for trees, walls and the like. This thread had information on how to use it: CGWorld_C::Intersect

----------


## squiggy

Been working on bag/inventory management and ive come across something which im finding somewhat confusing.
Up until now ive found all the object descriptor fields at objBase + 0x120 but when i started looking for the item and container fields i found that they were at different offsets (item = 0x124, container = 0x3f8 ) I feel like ive misunderstood something fundamental about the structure of wow objects. I thought that any subclass of the baseObject in the objMgr list should use the same offset for their descriptor fields? 

If anyone can explain to me whats going on here i would appreciate it.

----------


## serioux

i am looking for the d3d hook addresses for 2.4.3:

uint DX_DEVICE = 0xC5DF88;
uint DX_DEVICE_IDX = 0x397C;
uint ENDSCENE_IDX = 0xA8;

But i think they are not correct. Does anybody know the correct ones?

----------


## tutrakan

> i am looking for the d3d hook addresses for 2.4.3:
> 
> uint DX_DEVICE = 0xC5DF88;
> uint DX_DEVICE_IDX = 0x397C;
> uint ENDSCENE_IDX = 0xA8;
> 
> But i think they are not correct. Does anybody know the correct ones?


It was posted just one page (2.4.3 Offsets & Pointers) back (the same page you were when you asked).

----------


## tutrakan

> Been working on bag/inventory management and ive come across something which im finding somewhat confusing.
> Up until now ive found all the object descriptor fields at objBase + 0x120 but when i started looking for the item and container fields i found that they were at different offsets (item = 0x124, container = 0x3f8 ) I feel like ive misunderstood something fundamental about the structure of wow objects. I thought that any subclass of the baseObject in the objMgr list should use the same offset for their descriptor fields? 
> 
> If anyone can explain to me whats going on here i would appreciate it.


If you take a look of the leaked alpha .dbg you will find the item and container structures as follows:

```
struct __cppobj CGItem_C : CGObject_C
{
	CGItemData *m_item;  
	unsigned int m_flags;
	VirtualItemInfo m_itemInfo;
	unsigned int m_expirationTime;
	unsigned int m_enchantmentExpiration[5];
	ItemGroupSoundsRec *m_soundsRec;
};

struct __cppobj CGContainer_C : CGItem_C
{
  CGContainerData *m_cont;
  CGBag_C m_bag;
};
```

So from here, you can see that the container descriptors ptr is at object addr + 0x120 (CGItemData *m_item), but the container descriptors ptr will be at the beginning of the container object (after the end of the item) - CGContainerData *m_cont = object addr + item size: object addr + 0x3F8 (2.4.3 Offsets & Pointers). This is because the container object contains the item object (pun intended), same as player (descriptors ptr at offset 0x1190) contains unit and the unit (descriptors ptr at offset 0x120) contains base object.

----------


## DarkLinux

```
typedef int (__thiscall* dOnRightClickObject)(PVOID _this);
int interact()
{
	dOnRightClickObjec _OnRightClickObject = (dOnRightClickObjec)0x00600960; // 2.4.3
	return _OnRightClickObject(this);
}
```




```
typedef int(__thiscall* dOnRightClickUnit)(PVOID _this);
int interact()
{
	dOnRightClickUnit _OnRightClickUnit = (dOnRightClickUnit) 0x00619E00; // 2.4.3
	return _OnRightClickUnit(this);
}

typedef int (__thiscall* dIsLooting)(PVOID _this);
int IsLooting()
{
	dIsLootingIsLooting _IsLooting = (dIsLooting)0x0060B3E0;  //2.4.3
	return _IsLooting(this);
}

typedef int(__thiscall* dCanLoot)(PVOID _this, PVOID _target);
int CanLoot(PVOID _target)
{
	dCanLoot _CanLoot = (dCanLoot)0x005DE280; // 2.4.3
	return _CanLoot(this, _target);
}

typedef int(__thiscall* dLootUnit)(PVOID _this, PVOID _target, PVOID unknown);
int LootUnit(PVOID _target)
{
	dLootUnit _LootUnit = (dLootUnit)0x005E2460; //2.4.3
	return _LootUnit(this, _target,  NULL);
}

typedef void (__thiscall* dSetFacing)(PVOID _this, float angle);
PVOID SetFacing(float angle)
{
	dSetFacing _SetFacing = (dSetFacing)0x007B9DE0; //2.4.3
	_SetFacing(this->m_MovementInfo, angle); //this+0x128 ->
}

typedef int(__thiscall* dUnitCanAttack)(PVOID _this, PVOID _target);
bool UnitCanAttack(PVOID target)
{
	dUnitCanAttack _UnitCanAttack = (dUnitCanAttack)0x00613BD0; //2.4.3
	return _UnitCanAttack(this, target);
}

typedef bool (__thiscall* dIsDead)(PVOID _this);
bool IsDead()
{
	dIsDead _IsDead = (dIsDead)0x005E22C0; // 2.4.3
	return _IsDead(this);
}

typedef int(__thiscall* dGetCreatureTypeIndex)(PVOID _this);
int GetCreatureTypeIndex()
{
	dGetCreatureTypeIndex _GetCreatureTypeIndex = (dGetCreatureTypeIndex)0x0060D9A0; //2.4.3
	return _GetCreatureTypeIndex(this);
}

typedef int(__thiscall* dUnitClassification)(PVOID _this);
int UnitClassification()
{
	dUnitClassification _UnitClassification = (dUnitClassification)0x006080E0; //2.4.3
	return _UnitClassification(this);
}

typedef int(__thiscall *dDismount)(PVOID _this);
int Distmount()
{
	dDismount _Distmount = (dDismount)0x00622490;  //2.4.3
	return _Distmount(this);
}

typedef int(__thiscall* dSendMovementUpdate)(PVOID _this, int unknown, int OpCode, int unknown2, int unknown3);
int SendMovementUpdate(int OpCode = 0xDA)
{
	dSendMovementUpdate _SendMovementUpdate = (dSendMovementUpdate)0x0060D200; // 2.4.3
	return _SendMovementUpdate(this, *(DWORD*)(0x00BE1E2C), OpCode, 0, 0);
}
```



```
typedef int(__cdecl* dCastSpellByID)(int spellID, int unknown, DWORD64 GUID);
static int CastSpellByID(int spellID, DWORD64 targetGUID)
{
	dCastSpellByID _CastSpellByID = (dCastSpellByID)0x006FC520; // 2.4.3
	return _CastSpellByID(spellID, NULL, GUID);
}

typedef int(__thiscall* dIsSpellOnCoolDown)(PVOID _this, int spellID, int unknown, int unknown2, int unknown3, int unknown4);
static bool IsSpellOnCoolDown(int SpellID)
{	
	dIsSpellOnCoolDown _IsSpellOnCoolDown = (dIsSpellOnCoolDown)0x006F8100; // 2.4.3
	return _IsSpellOnCoolDown((PVOID)0x00E1D7F4, SpellID, 0, 0, 0, 0);
}

typedef bool(__cdecl* dIsUsableSpell)(PVOID pSpellObj, int* pUnknown, int* pUnknown2);
static bool IsUsableSpell(int SpellID)
{
	int Unknown = 0;
	CSpellInfo Obj;
	memset(&SpellObj, 0, sizeof(CSpellInfo));

	if (SpellDB->GetRow(SpellID, &SpellObj))
	{
		dIsUsableSpell _IsUsableSpell = (dIsUsableSpell)0x006FB800; // 2.4.3
		return _IsUsableSpell(&SpellObj, &Unknown, &Unknown);
	}

	return false;
}

typedef int(__cdecl *dLootAllItems)(PVOID unknown);
static void Loot()
{
	dLootAllItems _loot = (dLootAllItems)0x4D2590; // 2.4.3
	_loot(NULL);
}

//OR

static void SetAutoLoot()
{
	*(BOOL*)(0xC6E7D8) = TRUE; // 2.4.3
}

/*
	LootWindowList 0xC894B4
	0x20 size * 0xF list length
	0x0 itemID
	0x8 stack size

	0xC894B4 + 0x1FC = money
	FFFFFFFF = 0
*/
```



```
typedef int (__thiscall* dUpdateDisplayInfo)(PVOID _this, int unknown, int unknown2);
static int UpdateDisplayInfo(PVOID _this)
{
	dUpdateDisplayInfo _UpdateDisplayInfo = (dUpdateDisplayInfo)0x00622520; // 2.4.3
	return _UpdateDisplayInfo(_this, 1, 1);
}
```



```
#define lua_State PVOID
typedef int(__cdecl *p_lua_gettop) (lua_State L);
p_lua_gettop gettop = (p_lua_gettop)0x0072DAE0; // 2.4.3

typedef int(__cdecl *p_lua_isstring) (lua_State L, int index);
p_lua_isstring lua_isstring = (p_lua_isstring)0x0072DE70; // 2.4.3

typedef double(__cdecl *p_lua_tonumber) (lua_State L, int index);
p_lua_tonumber lua_tonumber = (p_lua_tonumber)0x0072DF40; // 2.4.3

typedef int(__cdecl *p_lua_toboolean) (lua_State L, int index);
p_lua_toboolean lua_toboolean = (p_lua_toboolean)0x0072DFC0; // 2.4.3

typedef char*(__cdecl *p_lua_tostring) (lua_State L, int index, int unknown); /*unknown = NULL*/
p_lua_tostring lua_tostring = (p_lua_tostring)0x0072DFF0; // 2.4.3

typedef int(__cdecl *p_lua_pushnumber) (lua_State L, double number);
p_lua_pushnumber lua_pushnumber = (p_lua_pushnumber)0x0072E1A0; // 2.4.3

typedef int(__cdecl *p_lua_pushstring) (lua_State L, char* string);
p_lua_pushstring lua_pushstring = (p_lua_pushstring)0x0072E250; // 2.4.3

typedef int(__cdecl *p_lua_pushboolean) (lua_State L, int boolean);
p_lua_pushboolean lua_pushboolean = (p_lua_pushboolean)0x0072E3B0; // 2.4.3

typedef const char*(__cdecl *p_lua_pushvfstring) (lua_State L, const char *fmt, va_list argp);
p_lua_pushvfstring lua_pushvfstring = (p_lua_pushvfstring)0x0072E290; // 2.4.3

typedef int(__cdecl *p_FrameScript__Register) (char* name, PVOID callback); /*void __cdecl callback(lua_State L)*/
p_FrameScript__Register FrameScript__Register = (p_FrameScript__Register)0x007059B0; //2.4.3

Invalid function patch 0x0074A199
```



```
pWarden = 0x00E118D4
Scan = 0x5F06 ? 0x1D76 (typedef PVOID (__cdecl *memcpy)(PVOID buffer, PVOID address, unsigned int length);)
WardenCall = 0x006D0BF5 (0E118D8 -> 0 -> 0 -> 8 Warden EntryPoint)
```

Warden Dump
Warden Dump 2?



```
CorpsePosition = 0x00C6EA80
NumSpell  = 0x00C71B00
ZoneTextDB = 0x00B9FAF8
PetSpellBook = 0x00C70B00
SpellBook = 0x00C6FB00
SpellDB = 0x00BA0C00 (objSize = 0x260)
IconDB = 0x00BA0B1C
DurationDB = 0x00BA0ABC
CastingTimeDB = 0x00BA0A3C
RangeDB = 0x00BA0BDC
CreatureTypeTextDB = 0x00B9FE98
ClassificationTextDB = 0x00B9EF48
PartyList = 0x00C6F6B0
AutoSpellID = 0x00E19904
ClientDBRegisterBase = 0x00573C90
ComboPoints = 0x00C6E9E1
```



```
CGLootInfo__HasLoot = 0x004D24B0
SendMovementUpdate = 0x0060D200
```

Hacks


```
LootMounted = 0x005E254A
WaterDismount = 0x007B9D42
SpeedHack = 0x005D2DEB //Old Fake Lag Hack?
InfJump = 0x007B98DE
AirWalk = 0x006393FE
WaterWalk = 0x0063414C
M2Collision1 = 0x006A4B6E
M2Collision2 = 0x006A49FE
WMOCollision  = 0x006AC9EA
ADTCollision = 0x006CDB40 
NoSwim = 0x00619A57
```

DBClient Dump


```
class WoWClientDb
{
public:
	PVOID _vtable; 		//0x00
	int IsLoaded; 		//0x04
	int NumRows; 		//0x08
	int MaxIndex; 		//0x0C
	int MinIndex; 		//0x10
	PVOID StringTable;	//0x14
	PVOID FirstRow; 	//0x18
	PVOID Rows; 		//0x1C

	typedef PVOID (__thiscall* dGetRow)(PVOID _this, int index);
	PVOID GetRow(int index)
	{
		dGetRow _GetRow = (dGetRow)0x004745A0;
		return _GetRow(this, index);
	}
};

class WoWClientDb2
{
public:
	PVOID _vtable; 			//0x00
	int IsLoaded; 			//0x04
	int NumRows; 			//0x08
	int MaxIndex; 			//0x0C
	int MinIndex; 			//0x10
	PVOID StringTable;		//0x14
	PVOID FirstRow; 		//0x18
	PVOID UnorderedRows; 		//0x1C
	PVOID OrderedRows; 		//0x20

	/*!!! IMPORTANT !!! Must use to unpack spell object, do not walk list manually!*/
	typedef bool (__thiscall* dGetRow2)(PVOID _this, int index, PVOID buffer /*size = 0x260*/);
	bool GetRow(int index, PVOID buffer)
	{
		dGetRow2 _GetRow = (dGetRow2)0x00466680;
		return _GetRow(this, index, buffer);
	}
};
```



```
WoWClientDb* AnimationData = 0x00B9FA9C
WoWClientDb* AreaPOI = 0x00B9FABC
WoWClientDb* AreaTable = 0x00B9FADC
WoWClientDb* AreaTrigger = 0x00B9FAFC
WoWClientDb* AttackAnimKits = 0x00B9FB1C
WoWClientDb* AttackAnimTypes = 0x00B9FB3C
WoWClientDb* AuctionHouse = 0x00B9FB5C
WoWClientDb* BankBagSlotPrices = 0x00B9FB7C
WoWClientDb* BattlemasterList = 0x00B9FB9C
WoWClientDb* CameraShakes = 0x00B9FBBC
WoWClientDb* Cfg_Categories = 0x00B9FBDC
WoWClientDb* Cfg_Configs = 0x00B9FBFC
WoWClientDb* CharBaseInfo = 0x00B9FC1C
WoWClientDb* CharHairGeosets = 0x00B9FC3C
WoWClientDb* CharSections = 0x00B9FC5C
WoWClientDb* CharStartOutfit = 0x00B9FC7C
WoWClientDb* CharTitles = 0x00B9FC9C
WoWClientDb* CharVariations = 0x00B9FCBC
WoWClientDb* CharacterFacialHairStyles = 0x00B9FCDC
WoWClientDb* ChatChannels = 0x00B9FCFC
WoWClientDb* ChatProfanity = 0x00B9FD1C
WoWClientDb* ChrClasses = 0x00B9FD3C
WoWClientDb* ChrRaces = 0x00B9FD5C
WoWClientDb* CinematicCamera = 0x00B9FD7C
WoWClientDb* CinematicSequences = 0x00B9FD9C
WoWClientDb* CreatureDisplayInfo = 0x00B9FDDC
WoWClientDb* CreatureDisplayInfoExtra = 0x00B9FDBC
WoWClientDb* CreatureFamily = 0x00B9FDFC
WoWClientDb* CreatureModelData = 0x00B9FE1C
WoWClientDb* CreatureSoundData = 0x00B9FE3C
WoWClientDb* CreatureSpellData = 0x00B9FE5C
WoWClientDb* CreatureType = 0x00B9FE7C
WoWClientDb* DeathThudLookups = 0x00B9FE9C
WoWClientDb* DeclinedWord = 0x00B9FEBC
WoWClientDb* DeclinedWordCases = 0x00B9FEDC
WoWClientDb* DurabilityCosts = 0x00B9FEFC
WoWClientDb* DurabilityQuality = 0x00B9FF1C
WoWClientDb* Emotes = 0x00B9FF3C
WoWClientDb* EmotesText = 0x00B9FF9C
WoWClientDb* EmotesTextData = 0x00B9FF5C
WoWClientDb* EmotesTextSound = 0x00B9FF7C
WoWClientDb* EnvironmentalDamage = 0x00B9FFBC
WoWClientDb* Exhaustion = 0x00B9FFDC
WoWClientDb* Faction = 0x00BA001C
WoWClientDb* FactionGroup = 0x00B9FFFC
WoWClientDb* FactionTemplate = 0x00BA003C
WoWClientDb* FootprintTextures = 0x00BA005C
WoWClientDb* FootstepTerrainLookup = 0x00BA007C
WoWClientDb* GameObjectArtKit = 0x00BA009C
WoWClientDb* GameObjectDisplayInfo = 0x00BA00BC
WoWClientDb* GameTables = 0x00BA00DC
WoWClientDb* GameTips = 0x00BA00FC
WoWClientDb* GemProperties = 0x00BA011C
WoWClientDb* GMSurveyCurrentSurvey = 0x00BA013C
WoWClientDb* GMSurveyQuestions = 0x00BA015C
WoWClientDb* GMSurveySurveys = 0x00BA017C
WoWClientDb* GMTicketCategory = 0x00BA019C
WoWClientDb* GroundEffectDoodad = 0x00BA01BC
WoWClientDb* GroundEffectTexture = 0x00BA01DC
WoWClientDb* gtCombatRatings = 0x00BA01FC
WoWClientDb* gtChanceToMeleeCrit = 0x00BA021C
WoWClientDb* gtChanceToMeleeCritBase = 0x00BA023C
WoWClientDb* gtChanceToSpellCrit = 0x00BA025C
WoWClientDb* gtChanceToSpellCritBase = 0x00BA027C
WoWClientDb* gtNPCManaCostScaler = 0x00BA029C
WoWClientDb* gtOCTRegenHP = 0x00BA02BC
WoWClientDb* gtOCTRegenMP = 0x00BA02DC
WoWClientDb* gtRegenHPPerSpt = 0x00BA02FC
WoWClientDb* gtRegenMPPerSpt = 0x00BA031C
WoWClientDb* HelmetGeosetVisData = 0x00BA033C
WoWClientDb* Item = 0x00BA035C
WoWClientDb* ItemBagFamily = 0x00BA037C
WoWClientDb* ItemClass = 0x00BA039C
WoWClientDb* ItemCondExtCosts = 0x00BA03BC
WoWClientDb* ItemDisplayInfo = 0x00BA03DC
WoWClientDb* ItemExtendedCost = 0x00BA0400
WoWClientDb* ItemGroupSounds = 0x00BA0420
WoWClientDb* ItemPetFood = 0x00BA0440
WoWClientDb* ItemRandomProperties = 0x00BA0460
WoWClientDb* ItemRandomSuffix = 0x00BA0480
WoWClientDb* ItemSet = 0x00BA04A0
WoWClientDb* ItemSubClass = 0x00BA04E0
WoWClientDb* ItemSubClassMask = 0x00BA04C0
WoWClientDb* ItemVisualEffects = 0x00BA0500
WoWClientDb* ItemVisuals = 0x00BA0520
WoWClientDb* LanguageWords = 0x00BA0540
WoWClientDb* Languages = 0x00BA0560
WoWClientDb* LfgDungeons = 0x00BA0580
WoWClientDb* Light = 0x00BBF638
WoWClientDb* LightFloatBand = 0x00BBF5F4
WoWClientDb* LightIntBand = 0x00BBF5D0
WoWClientDb* LightParams = 0x00BBF618
WoWClientDb* LightSkybox = 0x00BBF5B0
WoWClientDb* LiquidType = 0x00BA05A0
WoWClientDb* LoadingScreens = 0x00BA05C0
WoWClientDb* LoadingScreenTaxiSplines = 0x00BA05E0
WoWClientDb* Lock = 0x00BA0600
WoWClientDb* LockType = 0x00BA0620
WoWClientDb* MailTemplate = 0x00BA0640
WoWClientDb* Map = 0x00BA0660
WoWClientDb* Material = 0x00BA0680
WoWClientDb* NameGen = 0x00BA06A0
WoWClientDb* NPCSounds = 0x00BA06C0
WoWClientDb* NamesProfanity = 0x00BA06E0
WoWClientDb* NamesReserved = 0x00BA0700
WoWClientDb* Package = 0x00BA0720
WoWClientDb* PageTextMaterial = 0x00BA0740
WoWClientDb* PaperDollItemFrame = 0x00BA0760
WoWClientDb* ParticleColor = 0x00BA0780
WoWClientDb* PetLoyalty = 0x00BA07A0
WoWClientDb* PetPersonality = 0x00BA07C0
WoWClientDb* QuestInfo = 0x00BA07E0
WoWClientDb* QuestSort = 0x00BA0800
WoWClientDb* Resistances = 0x00BA0820
WoWClientDb* RandPropPoints = 0x00BA0840
WoWClientDb* ServerMessages = 0x00BA0860
WoWClientDb* SheatheSoundLookups = 0x00BA0880
WoWClientDb* SkillCostsData = 0x00BA08A0
WoWClientDb* SkillLineAbility = 0x00BA08C0
WoWClientDb* SkillLineCategory = 0x00BA08E0
WoWClientDb* SkillLine = 0x00BA0900
WoWClientDb* SkillRaceClassInfo = 0x00BA0920
WoWClientDb* SkillTiers = 0x00BA0940
WoWClientDb* SoundAmbience = 0x00BA0960
WoWClientDb* SoundEntries = 0x00BA0980
WoWClientDb* SoundProviderPreferences = 0x00BA09A0
WoWClientDb* SoundSamplePreferences = 0x00BA09C0
WoWClientDb* SoundWaterType = 0x00BA09E0
WoWClientDb* SpamMessages = 0x00BA0A00
WoWClientDb* SpellCastTimes = 0x00BA0A20
WoWClientDb* SpellCategory = 0x00BA0A40
WoWClientDb* SpellChainEffects = 0x00BA0A60
WoWClientDb2* Spell = 0x00BA0BE0
WoWClientDb* SpellDispelType = 0x00BA0A80
WoWClientDb* SpellDuration = 0x00BA0AA0
WoWClientDb* SpellEffectCameraShakes = 0x00BA0AC0
WoWClientDb* SpellFocusObject = 0x00BA0AE0
WoWClientDb* SpellIcon = 0x00BA0B00
WoWClientDb* SpellItemEnchantment = 0x00BA0B20
WoWClientDb* SpellItemEnchantmentCondition = 0x00BA0B40
WoWClientDb* SpellMechanic = 0x00BA0B60
WoWClientDb* SpellMissileMotion = 0x00BA0B80
WoWClientDb* SpellRadius = 0x00BA0BA0
WoWClientDb* SpellRange = 0x00BA0BC0
WoWClientDb* SpellShapeshiftForm = 0x00BA0C04
WoWClientDb* SpellVisual = 0x00BA0C64
WoWClientDb* SpellVisualEffectName = 0x00BA0C24
WoWClientDb* SpellVisualKit = 0x00BA0C44
WoWClientDb* StableSlotPrices = 0x00BA0C84
WoWClientDb* Stationery = 0x00BA0CA4
WoWClientDb* StringLookups = 0x00BA0CC4
WoWClientDb* SummonProperties = 0x00BA0CE4
WoWClientDb* Talent = 0x00BA0D04
WoWClientDb* TalentTab = 0x00BA0D24
WoWClientDb* TaxiNodes = 0x00BA0D44
WoWClientDb* TaxiPath = 0x00BA0D84
WoWClientDb* TaxiPathNode = 0x00BA0D64
WoWClientDb* TerrainType = 0x00BA0DA4
WoWClientDb* TerrainTypeSounds = 0x00BA0DC4
WoWClientDb* TotemCategory = 0x00BA0DE4
WoWClientDb* TransportAnimation = 0x00BA0E04
WoWClientDb* TransportPhysics = 0x00BA0E24
WoWClientDb* UISoundLookups = 0x00BA0E44
WoWClientDb* UnitBlood = 0x00BA0E84
WoWClientDb* UnitBloodLevels = 0x00BA0E64
WoWClientDb* VocalUISounds = 0x00BA0EA4
WoWClientDb* WMOAreaTable = 0x00BA0EC4
WoWClientDb* WeaponImpactSounds = 0x00BA0EE4
WoWClientDb* WeaponSwingSounds2 = 0x00BA0F04
WoWClientDb* Weather = 0x00BA0F24
WoWClientDb* WorldMapArea = 0x00BA0F44
WoWClientDb* WorldMapTransforms = 0x00BA0FA4
WoWClientDb* WorldMapContinent = 0x00BA0F64
WoWClientDb* WorldMapOverlay = 0x00BA0F84
WoWClientDb* WorldSafeLocs = 0x00BA0FC4
WoWClientDb* WorldStateUI = 0x00BA0FE4
WoWClientDb* ZoneIntroMusicTable = 0x00BA1004
WoWClientDb* ZoneMusic = 0x00BA1024
WoWClientDb* WorldStateZoneSounds = 0x00BA1044
```



```
class CSpellInfo
{
public:
	__int32 m_SpellID;					//0x0000 
	__int32 m_School;					//0x0004 
	__int32 m_Category;					//0x0008 
	__int32 m_CastUI;					//0x000C 
	__int32 m_Dispel;					//0x0010 
	__int32 m_Mechanic;					//0x0014 
	__int32 m_Attributes;					//0x0018 
	__int32 m_AttributesEx;					//0x001C 
	__int32 m_AttributesEx2;				//0x0020 
	__int32 m_AttributesEx3;				//0x0024 
	__int32 m_AttributesEx4;				//0x0028 
	__int32 m_AttributesEx5;				//0x002C 
	__int32 m_AttributesEx6;				//0x0030 
	__int32 m_AttributesEx7;				//0x0034 
	__int32 m_Stances;					//0x0038 
	__int32 m_StancesNot; 					//0x003C 
	__int32 m_Targets; 					//0x0040 
	__int32 m_TargetCreatureType; 				//0x0044 
	__int32 m_RequiresSpellFocus; 				//0x0048 
	__int32 m_FacingCasterFlags;				//0x004C 
	__int32 m_CasterAuraState; 				//0x0050 
	__int32 m_TargetAuraState; 				//0x0054 
	__int32 m_CastingTimeIndex; 				//0x0058 
	__int32 m_CategoryRecoveryTime; 			//0x005C 
	__int32 m_RecoveryTime; 				//0x0060 
	__int32 m_InterruptFlags; 				//0x0064 
	__int32 m_AuraInterruptFlags; 				//0x0068 
	__int32 m_ChannelInterruptFlags; 			//0x006C 
	__int32 m_procFlags; 					//0x0070 
	__int32 m_procChance; 					//0x0074 
	__int32 m_procCharges; 					//0x0078 
	__int32 m_maxLevel; 					//0x007C 
	__int32 m_baseLevel; 					//0x0080 
	__int32 m_spellLevel; 					//0x0084 
	__int32 m_DurationIndex; 				//0x0088 
	__int32 m_powerType; 					//0x008C 
	__int32 m_Cost; 					//0x0090 
	__int32 m_CostPerlevel;					//0x0094 
	__int32 m_PerSecond; 					//0x0098 
	__int32 m_PerSecondPerLevel; 				//0x009C 
	__int32 m_rangeIndex; 					//0x00A0 
	float m_speed;						//0x00A4 
	__int32 m_StackAmount;					//0x00A8 
	__int32 m_Totem[2]; 					//0x00AC 
	__int32 m_Reagent[8]; 					//0x00B4 
	__int32 m_ReagentCount[8];				//0x00D4 
	__int32 m_EquippedItemClass; 				//0x00F4 
	__int32 m_EquippedItemSubClassMask;			//0x00F8 
	__int32 m_EquippedItemInventoryTypeMask;		//0x00FC 
	__int32 m_Effect[3]; 					//0x0100 
	__int32 m_EffectDieSides[3]; 				//0x010C 
	__int32 m_EffectBaceDice[3];				//0x0118 
	float m_EffectDicePerLevel[3];				//0x0124 
	float m_EffectRealPointsPerLevel[3];			//0x0130 
	__int32 m_EffectBasePoints[3];				//0x013C 
	__int32 m_EffectMechanic[3];				//0x0148 
	__int32 m_EffectImplicitTargetA[3];			//0x0154 
	__int32 m_EffectImplicitTargetB[3];			//0x0160 
	__int32 m_EffectRadiusIndex[3];				//0x016C 
	__int32 m_EffectApplyAuraName[3];			//0x0178 
	__int32 m_EffectAmplitude[3];				//0x0184 
	float m_EffectMultipleValue[3];				//0x0190 
	__int32 m_EffectChainTarget[3];				//0x019C 
	__int32 m_EffectItemType[3];				//0x01A8 
	__int32 m_EffectMiscValue[3];				//0x01B4 
	__int32 m_EffectMiscValueB[3];				//0x01C0 
	__int32 m_EffectTriggerSpell[3];			//0x01CC 
	float m_EffectPointsPerComboPoint[3];			//0x01D8 
	__int32 m_SpellVisual;					//0x01E4 
	__int32 m_SpellVisual2;					//0x01E8 
	__int32 m_SpellIconID;					//0x01EC 
	__int32 m_activeIconID;					//0x01F0 
	__int32 m_spellPriority;				//0x01F4 
	__int32 m_Unknown;					//0x01F8 
	char* m_SpellName;					//0x01FC 
	char* m_Rank;						//0x0200 
	char* m_Description;					//0x0204 
	__int32 m_ToolTip;					//0x0208 
	__int32 m_CostPercentage;				//0x020C 
	__int32 m_StartRecoveryCategory;			//0x0210 
	__int32 m_StartRecoveryTime;				//0x0214 
	__int32 m_MaxTargetLevel;				//0x0218 
	__int32 m_SpellFamilyName;				//0x021C 
	__int64 m_SpellFamilyFlags;				//0x0220 
	__int32 m_MaxAffectedTargets; 				//0x0228 
	__int32 m_DmgClass; 					//0x022C 
	__int32 m_PreventionType; 				//0x0230 
	__int32 m_StanceBarOrder; 				//0x0234 
	float m_DmgMultiplier[3]; 				//0x0238 
	__int32 m_MinFactionId; 				//0x0244 
	__int32 m_MinReputation; 				//0x0248 
	__int32 m_RequiredAuraVision; 				//0x024C 
	__int32 m_TotemCategory[3]; 				//0x0250 
	__int32 m_AreaId; 					//0x025C 
};//Size=0x0260

class CSpellRange
{
public:
	__int32		m_RangeIndex;					//0x0000
	float		m_MinRange;					//0x0004
	float		m_MaxRange;					//0x0008
	__int32		m_Flags;					//0x000C (0, 1, 2)
	char*		m_Text;						//0x0010
	char*		m_Text2;					//0x0014
};//Size=0x0018

class CSpellDuration
{
public:
	__int32		m_DurationIndex;				//0x0000
	__int32		m_Duration;					//0x0004
	__int32		m_Unknown;					//0x0008
	__int32		m_Duration2;					//0x000C

	__int32 GetDuration()
	{
		return ((m_Duration / 1000) / 60);
	}
};//Size=0x0010

class CSpellCastingTime
{
public:
	__int32		m_CastingTimeIndex;				//0x0000
	__int32		m_CastTime;					//0x0004
	__int32		m_Unknown;					//0x0008
	__int32		m_CastTime2;					//0x000C
};//Size=0x0010

class CSpellIcon
{
public:
	__int32		m_SpellIconID;					//0x0000 
	char*		m_Icon;						//0x0004 
};//Size=0x0008

class CSpellRadius
{
public:
	__int32		m_RadiusIndex;					//0x0000
	float		m_Radius;					//0x0004
	__int32		m_Unknown;					//0x0008
	float		m_Radius2;					//0x000C
};//Size=0x0010

class CAreaTable
{
public:
	__int32 	m_AreaID;					//0x0000 
	__int32 	m_MapID;					//0x0004 
	__int32 	m_ZoneID;					//0x0008 
	char _0x000C[32];
	char* 		m_AreaText;					//0x002C 
	char _0x0030[28];
};//Size=0x004C
```

Please post if you find anything wrong with my classes.

Warden Scans (vengeancewow)


```
Address 006AC9EA, Size : 4
Address 006075C0, Size : 6
Address 0049DBA0, Size : 2
Address 0049DBB2, Size : 2
Address 006D0BF5, Size : 2
Address 00615127, Size : 3
Address 008C845B, Size : 5
Address 0055F8A0, Size : 8
Address 0049059B, Size : 2
Address 004AB5B0, Size : 5
Address 006376AC, Size : 2
Address 005E00B6, Size : 6
Address 00641707, Size : 2
Address 00BC4AF8, Size : 4
Address 004AF5D7, Size : 2
Address 0052E704, Size : 2
Address 007B98DE, Size : 2
Address 00647418, Size : 2
Address 00544DCD, Size : 2
Address 006A4B6E, Size : 4
Address 00642689, Size : 2
Address 008C839C, Size : 4
Address 005E5184, Size : 6
Address 007BA4C3, Size : 3
Address 00890608, Size : 8
Address 007B8645, Size : 2
Address 008F7AC8, Size : 4
Address 007B88D2, Size : 3
Address 004AF580, Size : 2
Address 00749850, Size : 6
Address 008C8398, Size : 4
Address 0048DA51, Size : 3
Address 00654B87, Size : 2
Address 007BA4C0, Size : 3
Address 007B88D5, Size : 3
Address 0089060B, Size : 5
```

----------


## squiggy

> ```
> class CAreaTable
> {
> public:
>     __int32     m_AreaID;                    //0x0000 
>     __int32     m_MapID;                    //0x0004 
>     __int32     m_ZoneID;                    //0x0008 
>     char _0x000C[32];
>     char*         m_AreaText;                    //0x002C 
> ...


I think this is what ive been calling zoneInfo in my code, (theres a list with them at: 0x00B9FAF8 ). Dword at 0x10 seem to be flags. Ive only identified one though: FlyableArea = 0x400. (pulled from script_FlyableArea)

----------


## DarkLinux

I also called it zoneInfo/zonetext, its even in my 1st dump.




> ZoneTextDB = 0x00B9FAF8


But when I dumped all the table names I found a different name, so I just used that.




> WoWClientDb* AreaTable = 0x00B9FADC


Have not had any time to diff it DB/AreaTable - wowdev

----------


## boipus

Script is in namreeb's script dump but GetUnitReaction is at 0x610C00



```
"push " + playerPtr,
"mov ecx, " + objectPtr,
"call 0x610C00",
"mov [" + resultAddress + "], eax",
"retn"
```

----------


## Icesythe7

so I've been learning and playing with the library found here https://www.ownedcore.com/forums/wor...-callback.html ([PoC] Execute code in the main thread without hook/detour using WndProc callback) (credit to whoever it is due to) and just figured id share a little modification to the framescript execute that was posted by making an execute lua command and get result in 1 function method for anyone that needs or wants to use it



```
        public static string GetLuaResult(string commandInput, string argumentInput = "nil")
        {
            try
            {
                var command = Encoding.UTF8.GetBytes($"{commandInput + char.MinValue}");
                var argument = Encoding.UTF8.GetBytes($"{argumentInput + char.MinValue}");

                CommandBuffer.WriteBytes(command);
                ArgumentBuffer.WriteBytes(argument);

                var asm = new[]
                {
                    "push 0",
                    $"push {CommandBuffer.Pointer}",
                    $"push {CommandBuffer.Pointer}",
                    $"call {Offsets.FrameScriptExecute}", //0x706C80
                    "add esp, 0xC",
                    "push 0",
                    "push -1",
                    $"push {ArgumentBuffer.Pointer}",
                    $"call {Offsets.GetText}", //0x707200
                    "add esp, 0xC",
                    "retn"
                };

                return LRemoteProcess.MemoryManager.ReadString(EndScene.Executor.Execute<IntPtr>(asm), Encoding.ASCII);
            }
            catch (Exception e)
            {
                Print(e.Message, true);
                return "nil";
            }
        }
```

You can either allocate memory beforehand and overwrite it (as i do here) and dispose it later, or you could create and dispose it in the method itself although that would hurt your optimization.

example usage


```
        public static List<int> GetDefaultEnchants()
        {
            var ench = new List<int>();

            for (var i = 16; i < 19; i++)
            {
                ench.Add(int.Parse(GetLuaResult($"local link = GetInventoryItemLink('player', {i}) enchid = ':0:0:' if link then enchid = link end", "enchid").Split(':', ':')[2]));
            }

            return ench;
        }
```

C++ example


```
inline std::string GetLuaResult(const char* com, const char* arg = "nil")
{
	reinterpret_cast<void(__cdecl*)(const char*, const char*, int)>(0x706C80)(com, com, 0);
	return reinterpret_cast<const char*>(reinterpret_cast<uintptr_t(__cdecl*)(const char*, unsigned int, int)>(0x707200)(arg, -1, 0));
}
```

----------


## plude

> Cant seem to delete this post so im adding a few more offsets ive found instead.
> 
> chatbuffer:
> 
> First message: 0xC13C30 
> AuthorName: 0xC
> FormattedString: 0x3C
> ContentString: 0xBF4
> NextMsg: 0x17C0
> ...


These offsets don't appear to be correct, does anyone have the correct chat offsets?

----------


## Valmere

Anyone have drunk state offset or basically anything from malu05's old autoit machinima tool? his site's been down for (assuming) years now

----------


## squiggy

> These offsets don't appear to be correct, does anyone have the correct chat offsets?


Didnt get a notification for this quote, weird. Anyhow those addresses/offsets are fine, i think you might just be using them incorrectly. Try reading the array like this:



```
usage example:

first  message content: 0xC13C30 + 0xBF4
second message content: 0xC13C30 + 0xBF4 + 0x17C0
third  message content: 0xC13C30 + 0xBF4 + 0x17C0 * 2
```

----------


## plude

> Try reading the array like this:
> 
> 
> 
> ```
> usage example:
> 
> first  message content: 0xC13C30 + 0xBF4
> second message content: 0xC13C30 + 0xBF4 + 0x17C0
> ...


I appreciate you getting back to me. This is my attempt currently:


```
         for(int i = 0; i < 60; i++)
                {
                    string message = WowProcess.ReadASCIIString((uint)Offsets.Chat.CHAT_FIRST_MESSAGE + (uint)Offsets.Chat.CHAT_CONTENT_STRING + (uint)((uint)Offsets.Chat.CHAT_NEXT_MESSAGE * i), 1);

                    if(!string.IsNullOrEmpty(message))
                    {
                        string [] chatFragments = WowProcess.ReadASCIIString((uint)Offsets.Chat.CHAT_FIRST_MESSAGE + (uint)Offsets.Chat.CHAT_CONTENT_STRING + (uint)((uint)Offsets.Chat.CHAT_NEXT_MESSAGE * i), 512).Trim().Split(',');

                        if(chatFragments.Length == 4)
                        {
                            string type = chatFragments[0].Split(new char[] { '[', ']' })[1].Trim();
                            string channel = chatFragments[1].Split(new char[] { '[', ']' })[1].Trim();
                            string text = chatFragments[3].Split(new char[] { '[', ']' })[1].Trim();
                            string playerName = chatFragments[2].Split(new char[] { '[', ']' })[1].Trim();
                        }
                    }
                }
```

Message is always an empty string. From what I can tell I am doing it the way you suggested - any further help is appreciated, thanks!

----------


## squiggy

> I appreciate you getting back to me. This is my attempt currently:
> string message = WowProcess.ReadASCIIString((uint)Offsets.Chat.CHAT_FIRST_MESSAGE + (uint)Offsets.Chat.CHAT_CONTENT_STRING + (uint)((uint)Offsets.Chat.CHAT_NEXT_MESSAGE * i), 1);


What is the the 1 parameter at the end of this this function? Not sure what library youre using but if that is the string max length you wont get anthing back, increase it, i have the content and formatted length set to 3000 i my code but that is probably just a lazy guess based on the offsets and could be wrong. Strings should be nullterminated anyways thoguh so I dont think it will make much of a difference if its a little too long. you could also leave it at the default value (probably 512) if your lib has one.

Based on your splits it looks like youre actually looking for the formatted text field, the content field only has the raw text message. I Recommend using a debugger like cheat engine to look at data before writing any code, it helps with understanding the datastructure.

As for iterating over the array, you have to look at the current index position of array and not go past it unless it has already filled up and wrapped around itself. I Wrote down a what i hope is a simple implementation of a class which polls the buffer. Its c#, the memory lib is greymagic. this code can obviously be massively improved, its just meant to be an example.



```
    class ChatDemo
    {
        private readonly IntPtr _curBufferIndexAddr = new IntPtr(0xC6D1C4);
        private readonly List<ChatMsg> _messages = new List<ChatMsg>();
        private int _curIndex = 0;


        public List<ChatMsg> GetMessages()
        {
            return _messages;
        }


        public void Poll()
        {
            var curBufferIndex = Client.Memory.Read<int>(_curBufferIndexAddr);


            //fix wraparound
            if (_curIndex > curBufferIndex)
            {
                for (; _curIndex < 60; _curIndex++)
                {
                    _messages.Add(new ChatMsg(_curIndex));
                }


                _curIndex = 0;
            }


            for (; _curIndex < curBufferIndex; _curIndex++)
            {
                _messages.Add(new ChatMsg(_curIndex));
            }
        }


        public class ChatMsg
        {
            private readonly IntPtr _firstMessageAddr = new IntPtr(0xC13C30);
            private int _authorOffset = 0xC;
            private int _formattedStringOffset = 0x3C;
            private int _contentStringOffset = 0xBF4;
            private int _nextMsg = 0x17C0;


            public string Author { get; private set; }
            public string FormattedText { get; private set; }
            public string Content { get; private set; }


            public ChatMsg(int index)
            {
                Author = Client.Memory.ReadString(_firstMessageAddr + _authorOffset + _nextMsg * index, Encoding.UTF8);
                FormattedText = Client.Memory.ReadString(_firstMessageAddr + _formattedStringOffset + _nextMsg * index, Encoding.UTF8);
                Content = Client.Memory.ReadString(_firstMessageAddr + _contentStringOffset + _nextMsg * index, Encoding.UTF8);
            }
        }
    }
```

----------


## plude

Thanks Squiggy, that's exactly what I needed!

----------


## squiggy

Some addresses for click to move, memory write method. Im not very familiar with this approach but they they seem to work.



```
actionType = 0xD689BC
timestamp = 0xD689B8
Precision? = 0xD689B4;  //float, mapped from a named signature, but i cant tell if it actually does anything.
positionX = 0xD68A18 //float
positionY = 0xD68A1C //float
positionZ = 0xD68A20 //float
targetGuid = 0xD689C0 //ulong, interact guid,
```

----------


## squiggy

> Fishing bobber :
> bool IsNotBiting: Descriptor + 0x20 //doesnt reset.


Amendment: This offset was pretty bad and doesnt seem to work on some emu servers so I looked up a replacement a couple of days back. It's just based on observing memory changes but Im guessing this is the animation_state offset ive seen mentioned elsewhere, if so its probably valid for other "gameobjects" and not just the bobber type. Havent delved further into it than that though.



```
bool isBobbing: FishingBobberBase + 0xF4 //1 if the float is bobbing.
```

----------

