Code:
/*
This file is part of LazyBot - Copyright (C) 2011 Arutha
LazyBot is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
LazyBot is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with LazyBot. If not, see <http://www.gnu.org/licenses/>.
*/
#region
using System.Reflection;
#endregion
namespace LazyLib.Wow
{
[Obfuscation(Feature = "renaming", ApplyToMembers = true)]
public class PublicPointers
{
#region Globals enum
/// <summary>
/// [WoW] 1.13.5.36325 tested working
/// </summary>
public enum Globals
{
PlayerName = 0x26A5D78, // 1.13.5.36325
}
#endregion
#region InGame enum
/// <summary>
/// [WoW] 1.13.5.36307 tested working
/// </summary>
public enum InGame
{
InGame = 0x25C7388, // 1.13.5.36307
LoadingScreen = 0x2292300, // 1.13.5.36307
//RealmName = 0x26A55A8, // wrong
}
#endregion
}
internal class Pointers
{
#region ActionBar enum
/// <summary>
/// [WoW] 1.13.5.36307 tested working
/// </summary>
public enum ActionBar
{
ActionBarFirstSlot = 0x25D31D0, // 1.13.5.36307
ActionBarBonus = ActionBarFirstSlot + 0x240, // 1.13.5.36307
CurrentActionBar = 0x25D3824, // 1.13.5.36307
}
#endregion
#region Battleground enum
/// <summary>
/// [WoW] 1.13.5.36307 tested all working
/// </summary>
public enum Battleground
{
BattlegroundStartTickcount = 0x25D1604,// 1.13.5.36307
Timestamp = 0x22E483C, // 1.13.5.36307
IsBattlegroundFinished = 0x25D18AC, // 1.13.5.36307
BattlegroundWinner = 0x25D18B0, // 1.13.5.36307
BattlegroundInfo = 0x22001D0, // 1.13.5.36307
UISelectedBattlegroundId = 0x261500B, // 1.13.5.36307 dont use this tho...
}
#endregion
#region Corpse enum // dont use but should work
public enum Corpse
{
X = 0x21F67B0, // 1.13.5.36307 dont use this bot
Y = X + 0x4, // 1.13.5.36307 dont use this bot
Z = X + 0x4, // 1.13.5.36307 dont use this bot
}
#endregion
#region PartyEnum enum
/// <summary>
/// 1.13.5.36307 havent tested yet no idea prb wrong
/// </summary>
public enum Party
{
PartyOffset = 0x25D1490,
NumOfPlayers = 0x178, //0x17C
NumOfPlayers_SuBGroup = 0x17C, // 0x178
PlayerGuid = 0x10, // good
IsInGroupHome = 0x25D1490, //yes
IsInGroupInstance = 0x25D1498,//yes
}
#endregion
#region AutoLoot enum
/// <summary>
/// [WoW] 1.13.5.36307 tested working
/// </summary>
public enum AutoLoot
{
Offset = 0x5C, // 1.13.5.36307
Pointer = 0x25C6FF0, // 1.13.5.36307
}
#endregion
#region CgUnitCGetCreatureRank enum
/// <summary>
/// 1.13.5.36307 tested working
/// </summary>
public enum CgUnitCGetCreatureRank
{
Offset1 = 0x17B8,// 1.13.5.36307
Offset2 = 0x34, // 1.13.5.36307
}
#endregion
#region CgUnitCGetCreatureType enum
/// <summary>
/// 1.13.5.36307 tested working
/// </summary>
public enum CgUnitCGetCreatureType
{
Offset1 = 0x17B8, // 1.13.5.36307
Offset2 = 0x30, // 1.13.5.36307
}
#endregion
#region CgWorldFrameGetActiveCamera enum
/// <summary>
/// 1.13.5.36307 tested working
/// </summary>
public enum CgWorldFrameGetActiveCamera
{
CameraX = 0x8, // 1.13.5.36307
CameraY = 0xC, // 1.13.5.36307
CameraZ = 0x10, // 1.13.5.36307
CameraMatrix = 0x14, // 1.13.5.36307
CameraPointer = 0x25C7ED0, // 1.13.5.36307
CameraOffset = 0x3330, // 1.13.5.36307
}
#endregion
#region SkinningFlags enum
/// <summary>
/// tested further testing needed
/// </summary>
public enum Skinning
{
SkinnableFlags1 = 0x17B8, // 1.13.5.36307
SkinnableFlags2 = 0x0CC, // 1.13.5.36307
}
#endregion
#region ClickToMove enum
/// <summary>
/// 1.13.5.36307 tested working
/// </summary>
public enum ClickToMove
{
Offset = 0x5C, // 1.13.5.36307
Pointer = 0x25C6FD0, // 1.13.5.36307
}
#endregion
#region Nested type: AutoAttack
/// <summary>
/// 1.13.5.36307 tested working
/// </summary>
internal enum AutoAttack
{
IsAutoRepeatingSpell = 0x22FF660, // 1.13.5.36307
IsInMelee = 0xAF6C, // 1.13.5.36307
IsInMelee1 = 0x18A8, // 1.13.5.36307
AutoAttackFlag = 0xEE8, // 1.13.5.36307
AutoAttackMask = 0xEEC, // 1.13.5.36307
//Address seems to show the GUID of the Auto Attack target
AutoAttackGUID = 0xAF6C, // 1.13.5.36307 0xED8,
//Shows 0x06 when not wanding, 0x0C or 0x0E when wanding.
//Wanding = 0xEF8,
}
#endregion
#region Nested type: CastingInfo
/// <summary>
/// [WoW] 1.13.5.36307 tested working
/// </summary>
internal enum CastingInfo
{
IsCasting = 0x1990, // 1.13.5.36307
ChanneledCasting = 0x670, // 1.13.5.36307
}
#endregion
#region Nested type: Chat
/// <summary>
/// 1.13.5.36307 tested working now
/// </summary>
internal enum Chat : uint
{
ChatStart = 0x2593880, // checked
chatBufferPos = 0x25C33A0,// checked
OffsetToNextMsg = 0xCB8, // 1.13.5.36307
MsgSenderGuid = 0x00, // 1.13.5.36307
MsgSenderName = 0x34, // 1.13.5.36307
MsgFullMessage = 0x0E6, // 1.13.5.36307
MsgChatType = 0x0CA0, // 1.13.5.36307
MsgChannelNum = 0xCA4, // 1.13.5.36307
MsgTimeStamp = 0xCB0, // 1.13.5.36307
ChatQueueDepth = 0x3C, // 1.13.5.36307
}
#endregion
#region BlueChat
/// <summary>
/// // 1.13.5.36307 tested working
/// </summary>
internal enum Messages
{
EventMessage = 0x25C62B0 // 1.13.5.36307
}
#endregion
#region Nested type: Container
/// <summary>
/// 5.4 tested working
/// </summary>
internal enum Container
{
EquippedBagGUID = 0x25E5668 // 1.13.5.36307
}
#endregion
#region Nested type: Globals
/// <summary>
/// // 1.13.5.36307 tested all working
/// </summary>
internal enum Globals
{
RedMessage = 0x25C62B0, // 1.13.5.36307
MouseOverGUID = 0x25C7390, // 1.13.5.36307
LootWindow = 0x25D6D10, // 1.13.5.36307
ChatboxIsOpen = 0x2309D64, // 1.13.5.36307
CursorType = 0x265EF70, // 1.13.5.36307
CursorType2 = CursorType + 0x04 , // 1.13.5.36307
SelectedSpellId = 0x25E5688, // 1.13.5.36307
CGGameUI__m_cursorItem = 0x25C6238, // 1.13.5.36307
CGGameUI__m_cursorSpell = 0x25C625C, // 1.13.5.36307
IsBobbing = 0x14C, // 1.13.5.36307
ArchFacing = 0x198, // 1.13.5.36307
ArchFacingOffset2 = 0x30, // 1.13.5.36307
}
#endregion
#region Nested type: KeyBinding
/// <summary>
/// // 1.13.5.36307 tested working
/// </summary>
internal enum KeyBinding
{
NumKeyBindings = 0x25D4FF8, // 1.13.5.36307
First = 0x188, // good
Next = 0xD8, // good
Key = 0x30, // good
Command = 0x58, // good
}
#endregion
#region Nested type: ObjectManager
/// <summary>
/// // 1.13.5.36307 tested all working
/// </summary>
internal enum ObjectManager
{
CurMgrPointer = 0x23A5158, // 1.13.5.36307
LocalPlayerGUID = 0x26A5D60,// 1.13.5.36307
TargetGUID = 0x21FE8B0, // 1.13.5.36307
PetGUID = 0x25D62DC, // 1.13.5.36307
StorageField = 0x10, // 1.13.5.36307
ObjectType = 0x20, // 1.13.5.36307
NextObject = 0x70, // 1.13.5.36307
FirstObject = 0x18, // 1.13.5.36307
LocalGUID = 0x58, // 1.13.5.36307
}
#endregion
#region Nested type: InCombat
/// <summary>
/// tested working
/// </summary>
public enum InCombat
{
Mask = 19, // 1.13.5.36307
Offset2 = 0x158, // 1.13.5.36307
Offset1 = 0x188 // 1.13.5.36307
}
#endregion
#region Nested type: Runes
/// <summary>
/// dont use this
/// </summary>
internal enum Runes
{
RuneTypes = 0x0, // 1.13.5.36307 Dont Use
RunesOffset = 0x0, // 1.13.5.36307 Dont use
//Offset is usually RuneTypes + 0x64
}
#endregion
#region Nested type: ShapeshiftForm
/// <summary>
/// tested working
/// </summary>
internal enum ShapeshiftForm
{
BaseAddressOffset1 = 0x188, // 1.13.5.36307
BaseAddressOffset2 = 0x27B, // 1.13.5.36307
}
#endregion
#region Nested type: SpellCooldown
/// <summary>
/// tested working
/// </summary>
internal enum SpellCooldown : uint
{
CooldPown = 0x21EB7F0, // 1.13.5.36307
}
#endregion
#region Nested type: PowerIndex
/// <summary>
/// tested working
/// </summary>
internal enum PowerIndex
{
PowerIndexArrays = 0x234BA40, // 1.13.5.36307
Multiplicator = 13 // 1.13.5.36307
}
#endregion
#region Nested type: Swimming
/// <summary>
/// should work
/// </summary>
internal enum Swimming
{
Pointer = 0x198, // 1.13.5.36307
Offset = 0x58, // 1.13.5.36307
Mask = 0x100000, // 1.13.5.36307
}
#endregion
#region IsFlying enum
/// <summary>
/// should work
/// </summary>
public enum IsFlying
{
Pointer = 0x198, // 1.13.5.36307
Offset = 0x58, // 1.13.5.36307
Mask = 0x1000000 // 1.13.5.36307
}
#endregion
#region IsFalling enum
/// <summary>
/// should work
/// </summary>
public enum IsFalling
{
Pointer = 0x198, // 1.13.5.36307
Offset = 0x58, // 1.13.5.36307
Mask = 0x1000000 // 1.13.5.36307
}
#endregion
#region Nested type: UnitAuras
/// <summary>
/// havent tested as of yet prb all jacked up
/// </summary>
internal enum UnitAuras : uint
{
AuraCount1 = 0x1AC8, // 1.13.5.36307
AuraCount2 = 0x1AD0, // 1.13.5.36307
AuraTable1 = 0x1AD0, // 1.13.5.36307
AuraTable2 = 0x1AC8, // 1.13.5.36307
AuraSize = 0xA8, // 1.13.5.36307
AuraSpellId = 0x88, // 1.13.5.36307
AuraStack = 0x39, // 1.13.5.36307
TimeLeft = 0x40, // 1.13.5.36307
OwnerGUID = 0x20, // 1.13.5.36307
AuraTableOffset = 0x00,// 1.13.5.36307
AuraFlags = 0x90, // 1.13.5.36307
AuraLevel = 0x92, // 1.13.5.36307
}
#endregion
#region Nested type: UnitName
/// <summary>
/// // 1.13.5.36307 tested all working
/// </summary>
internal enum UnitName : uint
{
ObjectName1 = 0x478, // 1.13.5.36307
ObjectName2 = 0xE0, // 1.13.5.36307
PlayerNameGUIDOffset = 0x20, // 1.13.5.36307
PlayerNameStringOffset = 0x31, // 1.13.5.36307
PlayerNameCachePointer = 0x1FCCB28, // 1.13.5.36307
PlayerNameCacheNext = 0x0, // 1.13.5.36307
UnitName1 = 0x17B8, // 1.13.5.36307
UnitName2 = 0xE0, // 1.13.5.36307
}
#endregion
#region Nested type: UnitSpeed
/// <summary>
/// // 1.13.5.36307 tested working
/// </summary>
internal enum UnitSpeed
{
Pointer1 = 0x198, // 1.13.5.36307
Pointer2 = 164, // 1.13.5.36307
}
#endregion
#region Nested type: WowObject
/// <summary>
/// // 1.13.5.36307 tested working
/// </summary>
internal enum WowObject
{
X = 0x1600, // 1.13.5.36307
Y = X + 0x4, // 1.13.5.36307
Z = X + 0x8, // 1.13.5.36307
RotationOffset = X + 0x10, // 1.13.5.36307
Pitch = X + 0x14, // 1.13.5.36307
GameObjectX = 0x1B0, // 1.13.5.36307
GameObjectY = GameObjectX + 0x4, // 1.13.5.36307
GameObjectZ = GameObjectX + 0x8, // 1.13.5.36307
GameObjectRotation = GameObjectX + 0x10, // 1.13.5.36307
TransportGUID = 0x15F0 // 1.13.5.36307
}
#endregion
#region Nested type: Zone
/// <summary>
/// // 1.13.5.36307 tested working continetid may be wrong tho
/// </summary>
internal enum Zone : uint
{
ZoneText = 0x25C6208, // 1.13.5.36307
ZoneID = 0x25C6E68, // 1.13.5.36307
SubZoneText = 0x25C6210, // 1.13.5.36307
ContinentId = 0x1FE798C, // 1.13.5.36307 // wrong
GetContinentIDOffset = 0x218, // 1.13.5.36307
}
#endregion
#region Nested type: UiFrame
// tested all working
internal enum UiFrame
{
ScrWidth = 0x1FCB8AC, // 1.13.5.36307
ScrHeight = 0x1FCB8B0, // 1.13.5.36307
FrameBase = 0x22E5288, // 1.13.5.36307
CurrentFramePtr = 0x22E5288,// 1.13.5.36307
//GetMouseFocus
CurrentFrameOffset = 0x1A0, // 1.13.5.36307
FirstFrame = 0xCD0, // 1.13.5.36307
NextFrame = 0xCC0, // 1.13.5.36307
LastFrame = 0x0CC8, // 1.13.5.36307 // idn they added a extra check ?? reminder to test this
RegionsFirst = 0x1A8, // 1.13.5.36307
RegionsNext = 0x198, // 1.13.5.36307
//CSimpleSlider_IsShown_1 // Script_IsVisible_class2
Visible = 0xC8, // 1.13.5.36307
Visible1 = 0xA, // 1.13.5.36307 //good one function uses 9 other 0xA
Visible2 = 1, // 1.13.5.36307
// CSimpleSlider_GetText
LabelText = 0x188, // 1.13.5.36307
Name = 0x20, // 1.13.5.36307
FrameBottom = 0x90, // 1.13.5.36307
FrameLeft = 0x94, // 1.13.5.36307
FrameTop = 0x98, // 1.13.5.36307
FrameRight = 0x9C, // 1.13.5.36307
// CSimpleSlider_GetEffectiveScale
EffectiveScale = 0xC0, // 1.13.5.36307
//Script_SetParent
ParentFrame = 0xD0, // 1.13.5.36307
// no fing clue
IconNumber = 0xF0,
//CSimpleSlider_IsEnabled
ButtonEnabledPointer = 0x210,// 1.13.5.36307
ButtonEnabledMask = 0xF, // 1.13.5.36307
//CSimpleSlider_GetChecked
ButtonChecked = 0x268, // 1.13.5.36307
EditBoxText = 0x238, // 1.13.5.36307// old 0x210
}
#endregion
}
}