[WoW] 8.2.0.30918 menu

User Tag List

Results 1 to 12 of 12
  1. #1
    air999's Avatar Contributor
    Reputation
    131
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    9/62
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    [WoW] 8.2.0.30918

    All unit's offsets shifted by 8 bytes

    Code:
    		NpcFlags               = 0x14CC,
    		Charm                  = 0x14D8,
    		Summon                 = 0x14E8,
    		Critter                = 0x14F8,
    		SummonedBy             = 0x1518,
    		CharmedBy              = 0x1520,
    		CreatedBy              = 0x1528,
    		DemonCreator           = 0x1538,
    		Target                 = 0x1558,
    		Race                   = 0x158C,
    		ClassId                = 0x158D,
    		Sex                    = 0x158F,
    		DisplayPower           = 0x1590,
    		OverrideDisplayPowerID = 0x1594,
    		Health                 = 0x1598,
    		MaxHealth              = 0x15A0,
    		Power                  = 0x1390,
    		MaxPower               = 0x17A0,
    		Level                  = 0x15A8,
    		FactionTemplate        = 0x15CC,
    		Flags                  = 0x15D0,
    		Flags2                 = Flags + 4,
    		FlagsByte              = Flags2 + 2,
    		Flags3                 = Flags + 8,
    		BoundingRadius         = 0x15E4,
    		CombatReach            = 0x15E8,
    		DisplayID              = 0x15F0,
    		MountDisplayID         = 0x15F8,
    		VisFlags               = 0x1610,
    		AnimFlags              = 0x1612,
    		PetNumber              = 0x1614,
    		PvpFlags               = 0x164D,
    		ShapeshiftForm         = 0x164F,

    [WoW] 8.2.0.30918
  2. Thanks counted, gdfsxwy, imzz (3 members gave Thanks to air999 for this useful post)
  3. #2
    counted's Avatar Contributor Authenticator enabled
    Reputation
    203
    Join Date
    Mar 2008
    Posts
    183
    Thanks G/R
    11/108
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Active Player Fields Shifted as well

    Code:
    internal class ActivePlayerFields
    {
        public static UInt32 Coinage = 0x3540 + ( 0x1 * 0x10 );
        public static UInt32 XP = 0x3548 + ( 0x1 * 0x10 );
        public static UInt32 NextXp = 0x354c + ( 0x1 * 0x10 );
        public static UInt32 SkillId = 0x3554 + ( 0x1 * 0x10 );
        public static UInt32 SkillLine = 0x3954 + ( 0x1 * 0x10 );
        public static UInt32 SkillMax = 0x3d54 + ( 0x1 * 0x10);
        public static UInt32 SkillBonus = 0x3f54 + ( 0x1 * 0x10 );
        public static UInt32 SkillRacial = 0x4154 + ( 0x1 * 0x10 );
        public static UInt32 InvSlots = 0x4748 + ( 0x4 * 0x10 + 0x8);
    }

  4. Thanks gdfsxwy (1 members gave Thanks to counted for this useful post)
  5. #3
    counted's Avatar Contributor Authenticator enabled
    Reputation
    203
    Join Date
    Mar 2008
    Posts
    183
    Thanks G/R
    11/108
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Player Fields Shifted as well
    Code:
    internal class PlayerFields
    {
        public static uint Flags = 0x1aa8 + 0x10;
        public static uint QuestBase = 0x1b34 + 0x10;
        public static uint QuestMax = 0x3434 + 0x10;
    }

  6. #4
    ejt's Avatar Contributor
    Reputation
    209
    Join Date
    Mar 2008
    Posts
    166
    Thanks G/R
    3/111
    Trade Feedback
    0 (0%)
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    WorldFrame_Intersect have changed, now called with 2 additional arguments.

    Code:
    constexpr uintptr_t WorldFrame_GetCurrent = 0x180430;
    constexpr uintptr_t WorldFrame_Intersect = 0x14CE0F0;
    
    typedef bool(__fastcall* WorldFrame_Intersect)(uintptr_t worldFrame, vector3* from, vector3* to, vector3* result, float* distance, uint32_t flags, int32_t unk_1);
    typedef uintptr_t(__fastcall* WorldFrame_GetCurrent)();
    
    WorldFrame_Intersect(WorldFrame_GetCurrent(), &from, &to, &result, &distance, flags, 0);
    Last edited by ejt; 06-27-2019 at 06:19 AM.

  7. Thanks sendeos23, air999, Razzue, gdfsxwy, Neer (5 members gave Thanks to ejt for this useful post)
  8. #5
    gdfsxwy's Avatar Active Member
    Reputation
    15
    Join Date
    Apr 2010
    Posts
    26
    Thanks G/R
    16/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    TraceLine Shifted as well. Ask for help

  9. #6
    ynyzyfy's Avatar Member
    Reputation
    3
    Join Date
    Jan 2018
    Posts
    10
    Thanks G/R
    1/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    TraceLine is same as Intersect.I think they have same parameters.

  10. Thanks gdfsxwy (1 members gave Thanks to ynyzyfy for this useful post)
  11. #7
    ejt's Avatar Contributor
    Reputation
    209
    Join Date
    Mar 2008
    Posts
    166
    Thanks G/R
    3/111
    Trade Feedback
    0 (0%)
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by ynyzyfy View Post
    TraceLine is same as Intersect.I think they have same parameters.
    This is correct, TraceLine and WorldFrame_Intersect is the same function some just call them different names.

  12. Thanks gdfsxwy (1 members gave Thanks to ejt for this useful post)
  13. #8
    gdfsxwy's Avatar Active Member
    Reputation
    15
    Join Date
    Apr 2010
    Posts
    26
    Thanks G/R
    16/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ask for help
    Code:
    typedef struct vector3 {
    	float x = 0;
    	float y = 0;
    	float z = 0;	
    };
    
    typedef bool(__fastcall * _WorldFrame_Intersect)(uintptr_t  worldFrame, vector3 * from, vector3 * to, vector3 * result, uint32_t flags, int32_t unk_1);
    typedef uintptr_t(__fastcall * _WorldFrame_GetCurrent)();
    static uintptr_t  WorldFrame_GetCurrent = 0x180430;
    static uintptr_t  WorldFrame_Intersect = 0x14CE0F0;
    
    int TraceLine(lua_State *L)
    {
    	float x1 = xlua_tonumber(L, 1);
    	float y1 = xlua_tonumber(L, 2);
    	float z1 = xlua_tonumber(L, 3);
    
    	float x2 = xlua_tonumber(L, 4);
    	float y2 = xlua_tonumber(L, 5);
    	float z2 = xlua_tonumber(L, 6);
    
    	uint32_t Flag = xlua_tonumber(L, 7);
    
    	vector3 from;
    	vector3 to;
    	vector3 result;
    
    	from.x = x1;
    	from.y = y1;
    	from.z = z1;
    
    	to.x = x2;
    	to.y = y2;
    	to.z = z2;
    
    
    	_WorldFrame_GetCurrent GetCurrent = (_WorldFrame_GetCurrent)(WorldFrame_GetCurrent + _BaseAddress);
    	_WorldFrame_Intersect Intersect = (_WorldFrame_Intersect)(WorldFrame_Intersect + _BaseAddress);
    
    	bool n = Intersect(GetCurrent(), &from, &to, &result, Flag, 0);
    
    	xlua_pushboolean(L, n);
    	return 1;
    
    }
    Error picture:
    1.jpg
    2.jpg
    Last edited by gdfsxwy; 06-27-2019 at 06:12 AM.

  14. #9
    ejt's Avatar Contributor
    Reputation
    209
    Join Date
    Mar 2008
    Posts
    166
    Thanks G/R
    3/111
    Trade Feedback
    0 (0%)
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by gdfsxwy View Post
    Ask for help
    Code:
    typedef struct vector3 {
    	float x = 0;
    	float y = 0;
    	float z = 0;	
    };
    
    typedef bool(__fastcall * _WorldFrame_Intersect)(uintptr_t  worldFrame, vector3 * from, vector3 * to, vector3 * result, uint32_t flags, int32_t unk_1);
    typedef uintptr_t(__fastcall * _WorldFrame_GetCurrent)();
    static uintptr_t  WorldFrame_GetCurrent = 0x180430;
    static uintptr_t  WorldFrame_Intersect = 0x14CE0F0;
    
    int TraceLine(lua_State *L)
    {
    	float x1 = xlua_tonumber(L, 1);
    	float y1 = xlua_tonumber(L, 2);
    	float z1 = xlua_tonumber(L, 3);
    
    	float x2 = xlua_tonumber(L, 4);
    	float y2 = xlua_tonumber(L, 5);
    	float z2 = xlua_tonumber(L, 6);
    
    	uint32_t Flag = xlua_tonumber(L, 7);
    
    	vector3 from;
    	vector3 to;
    	vector3 result;
    
    	from.x = x1;
    	from.y = y1;
    	from.z = z1;
    
    	to.x = x2;
    	to.y = y2;
    	to.z = z2;
    
    
    	_WorldFrame_GetCurrent GetCurrent = (_WorldFrame_GetCurrent)(WorldFrame_GetCurrent + _BaseAddress);
    	_WorldFrame_Intersect Intersect = (_WorldFrame_Intersect)(WorldFrame_Intersect + _BaseAddress);
    
    	bool n = Intersect(GetCurrent(), &from, &to, &result, Flag, 0);
    
    	xlua_pushboolean(L, n);
    	return 1;
    
    }
    Error picture:
    1.jpg
    2.jpg
    mb, the definition of function is:

    Code:
    typedef bool(__fastcall* WorldFrame_Intersect)(uintptr_t worldFrame, vector3* from, vector3* to, vector3* result, float* distance, uint32_t flags, int32_t unk_1);
    Edit: Just note that distance should be set to 1.

    Code:
    bool WorldObject::IsWithinLoS(std::shared_ptr<WorldObject> target)
    {
    	Vec3 p1 = GetPosition();
    	Vec3 p2 = target->GetPosition();
    	Vec3 ipt;
    	float dist = 1;
    
    	p1.z += GetDisplayHeight();
    	p2.z += target->GetDisplayHeight();
    
    	bool trace = WorldFrame_Intersect(WorldFrame_GetCurrent(), &p1, &p2, &ipt, &dist, 0x100010, 0);
    
    	return !trace;
    }
    Last edited by ejt; 06-27-2019 at 06:21 AM.

  15. #10
    gdfsxwy's Avatar Active Member
    Reputation
    15
    Join Date
    Apr 2010
    Posts
    26
    Thanks G/R
    16/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks very much EJT.

  16. #11
    zys924's Avatar Active Member
    Reputation
    20
    Join Date
    Nov 2009
    Posts
    113
    Thanks G/R
    0/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by ejt View Post
    mb, the definition of function is:

    Code:
    typedef bool(__fastcall* WorldFrame_Intersect)(uintptr_t worldFrame, vector3* from, vector3* to, vector3* result, float* distance, uint32_t flags, int32_t unk_1);
    Edit: Just note that distance should be set to 1.

    Code:
    bool WorldObject::IsWithinLoS(std::shared_ptr<WorldObject> target)
    {
    	Vec3 p1 = GetPosition();
    	Vec3 p2 = target->GetPosition();
    	Vec3 ipt;
    	float dist = 1;
    
    	p1.z += GetDisplayHeight();
    	p2.z += target->GetDisplayHeight();
    
    	bool trace = WorldFrame_Intersect(WorldFrame_GetCurrent(), &p1, &p2, &ipt, &dist, 0x100010, 0);
    
    	return !trace;
    }
    It is very kind to share the code, in which I have discovered a very interesting point: GetDisplayHeight()

    Would you mind sharing how you implemented this? Is it a virtual function or sth else? Any code snippet would be best! Thanks in advance.

  17. #12
    ejt's Avatar Contributor
    Reputation
    209
    Join Date
    Mar 2008
    Posts
    166
    Thanks G/R
    3/111
    Trade Feedback
    0 (0%)
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by zys924 View Post
    It is very kind to share the code, in which I have discovered a very interesting point: GetDisplayHeight()

    Would you mind sharing how you implemented this? Is it a virtual function or sth else? Any code snippet would be best! Thanks in advance.
    float = [[Object + 0x120] + 0x110]

    have not confirmed 100% its working but my los function seems to do its thing so guess it still does.

Similar Threads

  1. Nude WoW Pics!
    By janzi9 in forum Community Chat
    Replies: 34
    Last Post: 01-12-2007, 04:41 PM
  2. Get your first mount in WoW easily
    By Matt in forum World of Warcraft Guides
    Replies: 3
    Last Post: 11-03-2006, 09:46 PM
  3. World of Warcraft WoW!Bot (GetALifeBot) 0.61 for WoW 1.9.4 + FishBot
    By Matt in forum World of Warcraft Bots and Programs
    Replies: 43
    Last Post: 04-18-2006, 04:55 AM
  4. AutoIt Macro for WoW AFK Bot
    By Matt in forum World of Warcraft Bots and Programs
    Replies: 8
    Last Post: 04-06-2006, 06:01 AM
  5. Free WoW Glider 0.5.3 Loader
    By Matt in forum World of Warcraft Bots and Programs
    Replies: 5
    Last Post: 03-12-2006, 01:00 PM
All times are GMT -5. The time now is 05:14 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search