Page 26 of 32 FirstFirst ... 16222324252627282930 ... LastLast
Results 376 to 390 of 467
  1. #376
    Member Natrist's Avatar
    Reputation
    11
    Join Date
    Mar 2013
    Posts
    145
    Thanks G/R
    8/3
    CoreCoins
    35
    Trade Feedback
    0 (0%)
    Quote Originally Posted by Robske View Post
    GetPosition 5
    GetFacing 6
    GetName 28
    Does anyone have any more virtual functions they know about?

  2. #377
    ★ Elder ★ CoreCoins User DarkLinux's Avatar
    Reputation
    1031
    Join Date
    May 2010
    Posts
    1,323
    Thanks G/R
    67/194
    CoreCoins
    1541
    Trade Feedback
    3 (100%)
    Swim and Fish

    Code:
    0x00609DA4     //JMP 00609DE3 [0xEB, 0x3D]
    Last edited by DarkLinux; 12-02-2016 at 11:40 PM.

  3. The Following 2 Members Gave Thanks To DarkLinux For This Useful Post:

    Corthezz, tutrakan
  4. #378
    ★ Elder ★ CoreCoins User DarkLinux's Avatar
    Reputation
    1031
    Join Date
    May 2010
    Posts
    1,323
    Thanks G/R
    67/194
    CoreCoins
    1541
    Trade Feedback
    3 (100%)
    Loot Mounted

    Code:
    0x0060BFA0       //nop

  5. The Following 2 Members Gave Thanks To DarkLinux For This Useful Post:

    tutrakan, Corthezz
  6. #379
    Contributor CoreCoins User tutrakan's Avatar
    Reputation
    82
    Join Date
    Feb 2013
    Posts
    90
    Thanks G/R
    64/28
    CoreCoins
    209
    Trade Feedback
    0 (0%)
    Woot, Awesome!

    I imagine then there isn't a server-side check for possessed/vehicle at loot.
    Last edited by tutrakan; 11-22-2016 at 11:01 PM.

  7. #380
    ★ Elder ★ CoreCoins User DarkLinux's Avatar
    Reputation
    1031
    Join Date
    May 2010
    Posts
    1,323
    Thanks G/R
    67/194
    CoreCoins
    1541
    Trade Feedback
    3 (100%)
    I patched something but still cant get mining to work. I think its b/c its a spell and the server has a check.

    Also cant get cast and moving to work, I patched one thing but it allows you to move a little b4 it stops you. Anyone have any tips?

    Code:
    0x515122
    0x609DF6
    Last edited by DarkLinux; 11-23-2016 at 12:09 AM.

  8. The Following 2 Members Gave Thanks To DarkLinux For This Useful Post:

    Corthezz, tutrakan
  9. #381
    Elite User CoreCoins User Authenticator enabled namreeb's Avatar
    Reputation
    422
    Join Date
    Sep 2008
    Posts
    853
    Thanks G/R
    3/82
    CoreCoins
    6080
    Trade Feedback
    0 (0%)
    Quote Originally Posted by DarkLinux View Post
    I patched something but still cant get mining to work. I think its b/c its a spell and the server has a check.

    Also cant get cast and moving to work, I patched one thing but it allows you to move a little b4 it stops you. Anyone have any tips?

    Code:
    0x515122
    0x609DF6
    Before digging to far into the client, I would sniff incoming packets to make sure it's not the server cancelling the spell cast. If it is, no amount of client patching is likely to help.

  10. The Following 2 Members Gave Thanks To namreeb For This Useful Post:

    DarkLinux, Corthezz
  11. #382
    Contributor CoreCoins User tutrakan's Avatar
    Reputation
    82
    Join Date
    Feb 2013
    Posts
    90
    Thanks G/R
    64/28
    CoreCoins
    209
    Trade Feedback
    0 (0%)
    Quote Originally Posted by DarkLinux View Post
    Also cant get cast and moving to work, I patched one thing but it allows you to move a little b4 it stops you.
    Maybe this server check is responsible
    Code:
    // check if the player caster has moved before the spell finished (exclude casting on vehicles)
        if (!m_caster->GetVehicle() && (m_caster->GetTypeId() == TYPEID_PLAYER && m_timer != 0) &&
            (m_castPositionX != m_caster->GetPositionX() || m_castPositionY != m_caster->GetPositionY() || m_castPositionZ != m_caster->GetPositionZ()) &&
            (m_spellInfo->Effect[EFFECT_INDEX_0] != SPELL_EFFECT_STUCK || !((Player*)m_caster)->m_movementInfo.HasMovementFlag(MOVEFLAG_FALLINGFAR)))
        {
            // always cancel for channeled spells
            if( m_spellState == SPELL_STATE_CASTING )
                cancel();
            // don't cancel for melee, autorepeat, triggered and instant spells
            else if(!IsNextMeleeSwingSpell() && !IsAutoRepeat() && !m_IsTriggeredSpell && (m_spellInfo->InterruptFlags & SPELL_INTERRUPT_FLAG_MOVEMENT))
                cancel();
    }
    Source

    Edit: Oups, it seems i posted at the same time with Namreeb. I would stick with his advices, he is a way clever than me.
    Last edited by tutrakan; 11-23-2016 at 01:36 AM.

  12. The Following 2 Members Gave Thanks To tutrakan For This Useful Post:

    DarkLinux, Corthezz
  13. #383
    ★ Elder ★ CoreCoins User DarkLinux's Avatar
    Reputation
    1031
    Join Date
    May 2010
    Posts
    1,323
    Thanks G/R
    67/194
    CoreCoins
    1541
    Trade Feedback
    3 (100%)
    Does anyone know how to get the last valid cast time? I found an address and traced it back down but I think its UI related and I cant work my way back up. Or is there a better way of checking if your cast has been interrupted / delayed.

    Code:
    struct size 0xA4
    array size 0x4 ?
    00BC83A8 [] -> 0x90 -> 0x140 -> 0x20 (last updated)
                        -> 0x004 -> string (Interface\Cooldown\star4.blp)
                        -> 0x124 -> vtable
                        -> 0x154 -> previous
                        -> 0x158 -> next
    The timer is accessed by 00594D96.

    edit---

    odd b/c I dont see anything like "Interface\Cooldown\star4.blp"

    dump 1 Textures\Minimap\19fef36b8911de4c2730865da81d9b54.blp 2 Textures\Minimap\aa0d - Pastebin.com
    Code:
    for (int i = 0; i < 4; i++)
    {
    	DWORD _address = *(DWORD*)(0xBC83A8 + 0x90 + (i * 0xA4));
    
    	int counter = 0;
    
    	while (_address && (_address & 1) == 0)
    	{
    		counter++;
    
    		char _str[256] = { 0 };
    		memcpy(_str, (PVOID)(_address + 0xC), 250);
    
    		printf("%d %s\n", counter, _str);
    			
    		_address = *(DWORD*)(_address + 0x158);
    	}
    }
    Last edited by DarkLinux; 11-29-2016 at 11:04 PM.

  14. #384
    Contributor CoreCoins User Corthezz's Avatar
    Reputation
    258
    Join Date
    Nov 2011
    Posts
    283
    Thanks G/R
    56/48
    CoreCoins
    345
    Trade Feedback
    0 (0%)
    Quote Originally Posted by DarkLinux View Post
    Does anyone know how to get the last valid cast time? I found an address and traced it back down but I think its UI related and I cant work my way back up. Or is there a better way of checking if your cast has been interrupted / delayed.

    Code:
    struct size 0xA4
    array size 0x4 ?
    00BC83A8 [] -> 0x90 -> 0x140 -> 0x20 (last updated)
                        -> 0x158 -> next ?
    Does "valid cast time" mean you want the time the current cast already took?
    I should have something for this. I will post it later when at home.
    Last edited by Corthezz; 11-29-2016 at 03:20 AM.
    Check my blog: http://zzuks.blogspot.com

  15. #385
    ★ Elder ★ CoreCoins User DarkLinux's Avatar
    Reputation
    1031
    Join Date
    May 2010
    Posts
    1,323
    Thanks G/R
    67/194
    CoreCoins
    1541
    Trade Feedback
    3 (100%)
    The value I am looking at updates when the cast is complete. I see one timer constantly updating, when a spell completes that timer updates the value. My idea was to read the 1 timer at the start of the cast and then compare until it was updated. I guess I could just check 0xCECA88 every frame and create my own timer. My problem is that I'm getting kicked, its not stopping my spell just setting the time back.

    --edit

    Using 0xCECA88 to solve my problem

    Also found a fix for AttackTarget() as it was a toggle and I could not find that state.

    Code:
    void AutoAttackGUID(__int64 GUID)
    {
    	*(__int64*)((DWORD)this + 0xC48) = GUID;
    }
    	
    void StopAutoAttacking()
    {
    	*(__int64*)((DWORD)this + 0xC48) = 0;
    }
    --edit

    AutoAttackGUID does not look to work all the time but is a good state check

    Code:
    __int64 GetAutoAttackGUID()
    {
    	return *(__int64*)((DWORD)this + 0xC48);
    }
    
    ....
    
    if (!m_LocalPlayer->GetAttackGUID())
    {
    	WoWClass::DoString("AttackTarget()");
    }
    Last edited by DarkLinux; 12-01-2016 at 02:01 AM.

  16. #386
    Contributor CoreCoins User tutrakan's Avatar
    Reputation
    82
    Join Date
    Feb 2013
    Posts
    90
    Thanks G/R
    64/28
    CoreCoins
    209
    Trade Feedback
    0 (0%)
    Quote Originally Posted by DarkLinux View Post
    Does anyone know how to get the last valid cast time? I found an address and traced it back down but I think its UI related and I cant work my way back up. Or is there a better way of checking if your cast has been interrupted / delayed.
    You can always detour these (see the SpellHandlersInitializer() at 006E7150 for the full list):
    Code:
    int __fastcall SMSG_SpellStartSpellGoHandler(int param, int opcode, int time, int dataStore) at 006E7640,
    int __fastcall SMSG_SpellGoHandler(int pItemOrCasterGuid, int pCasterGuid, int spellid, int datastore) at 006E7A70,
    int __fastcall SMSG_SPELL_DELAYEDHandler(int param, int opcode, int time, CDataStore *a2) at 006E74F0, ... etc.
    Here is an example of implementation server side for spell handlers.
    Last edited by tutrakan; 11-30-2016 at 11:41 AM.

  17. The Following 1 Members Gave Thanks To tutrakan For This Useful Post:

    DarkLinux
  18. #387
    Member Natrist's Avatar
    Reputation
    11
    Join Date
    Mar 2013
    Posts
    145
    Thanks G/R
    8/3
    CoreCoins
    35
    Trade Feedback
    0 (0%)
    Does anyone know how to set the namestring of a player?
    I'd like to add a new line after the guild string. I was able to do it manually via a debugger, but I'd like to know if I can call a function to change it from my code.

  19. #388
    ★ Elder ★ CoreCoins User DarkLinux's Avatar
    Reputation
    1031
    Join Date
    May 2010
    Posts
    1,323
    Thanks G/R
    67/194
    CoreCoins
    1541
    Trade Feedback
    3 (100%)
    Must be a better way of get cast time, spell rank and distance. Or am I missing something key to this madness? Or is this just display info, and the real info is stored in a different place?

    Code:
    	class CSpellInfo
    	{
    	public:
    		__int32		m_SpellID;		//0x0000 
    		char		m_0x0004[68];
    		__int32		m_CastTimeType;		//0x0048 
    		__int32		m_CoolDown;		//0x004C 
    		__int32		m_CoolDown1;		//0x0050 
    		char		m_0x0054[44];
    		__int32		m_Cost;			//0x0080 
    		char		m_0x0084[12];
    		__int32		m_DistnaceType;		//0x0090 
    		char		m_0x0094[332];
    		char*		m_SpellName;    	//0x01E0 
    		char		m_0x01E4[32];
    		char*		m_SpellRank;   		//0x0204 
    		char		m_0x0208[172];	
    
    	};//Size=0x02B4
    
    	static CSpellInfo* GetSpellObjectByIndex(int index, bool isPet = false)
    	{
    		DWORD spellID = *(DWORD*)(isPet ? 0x0B6F098 : 0x00B700F0 + (index * 4));
    		if (spellID)
    		{
    			DWORD SpellList = *(DWORD*)(0x00C0D788);
    			if (SpellList)
    			{
    				DWORD SpellObject = *(DWORD*)(SpellList + (spellID * 4));
    				if (SpellObject)
    				{
    					return (CSpellInfo*)SpellObject;
    				}
    			}
    		}
    		return NULL;
    	}
    m_DistnaceType
    2 = 5 yd range
    3 = 20 yd range
    4 = 30 yd range
    5 = 40 yd range
    6 = 100 yd range
    7 = 10 yd range
    8 = 10-20 yd range
    9 = 10-30 yd range
    10 = 10-40 yd range
    11 = 15 yd range
    12 = 5 yd range
    13 = 50000 yd range
    14 = 60 yd range
    34 = 25 yd
    35 = 35 yd
    36 = 45 yd
    37 = 50 yd
    38 = 10-25 yd range
    38 = 10-25 yd range
    54 = 5-30 yd range
    74 = 8-30 yd range
    94 = 8-40 yd range
    95 = 8-25 yd range
    96 = 2 yd range
    114 = 8-35 yd range
    134 = 80 yd range
    135 = 100 yd range
    136 = 30-80 yd range

    m_CastTimeType
    0 = instant cast
    1 = instant cast
    2 = 0.25
    3 = 0.50
    4 = 1sec
    5 = 2sec
    6 = 5sec
    7 = 10sec
    8 = 20sec
    9 = 30sec
    10 = 7sec
    11 = 8sec
    12 = 11sec
    13 = 1.5min
    14 = 3sec
    15 = 4sec
    16 = 1.5sec
    17 = instant cast
    18 = instant cast
    19 = 2.5sec
    20 = 2.5sec
    21 = 2.6sec
    22 = 3.5sec
    23 = 1.8sec
    24 = 2.2sec
    25 = 2.9sec
    26 = 3.7sec
    27 = 4.1sec
    28 = 3.2sec
    29 = 4.7sec
    30 = 4.5sec
    ...
    70 = 5min
    90 = 1.7sec
    91 = 2.8sec
    Last edited by DarkLinux; 12-04-2016 at 04:27 AM.

  20. #389
    Active Member NotJuJuBoSc's Avatar
    Reputation
    33
    Join Date
    Dec 2016
    Posts
    10
    Thanks G/R
    0/12
    CoreCoins
    74
    Trade Feedback
    0 (0%)
    Quote Originally Posted by DarkLinux View Post
    Must be a better way of get cast time, spell rank and distance. Or am I missing something key to this madness? Or is this just display info, and the real info is stored in a different place?

    Code:
    	class CSpellInfo
    	{
    	public:
    		__int32		m_SpellID;		//0x0000 
    		char		m_0x0004[68];
    		__int32		m_CastTimeType;		//0x0048 
    		__int32		m_CoolDown;		//0x004C 
    		__int32		m_CoolDown1;		//0x0050 
    		char		m_0x0054[44];
    		__int32		m_Cost;			//0x0080 
    		char		m_0x0084[12];
    		__int32		m_DistnaceType;		//0x0090 
    		char		m_0x0094[332];
    		char*		m_SpellName;    	//0x01E0 
    		char		m_0x01E4[32];
    		char*		m_SpellRank;   		//0x0204 
    		char		m_0x0208[172];	
    
    	};//Size=0x02B4
    
    	static CSpellInfo* GetSpellObjectByIndex(int index, bool isPet = false)
    	{
    		DWORD spellID = *(DWORD*)(isPet ? 0x0B6F098 : 0x00B700F0 + (index * 4));
    		if (spellID)
    		{
    			DWORD SpellList = *(DWORD*)(0x00C0D788);
    			if (SpellList)
    			{
    				DWORD SpellObject = *(DWORD*)(SpellList + (spellID * 4));
    				if (SpellObject)
    				{
    					return (CSpellInfo*)SpellObject;
    				}
    			}
    		}
    		return NULL;
    	}
    To me those simply looks like DBC row ?

  21. The Following 1 Members Gave Thanks To NotJuJuBoSc For This Useful Post:

    DarkLinux
  22. #390
    Contributor CoreCoins User tutrakan's Avatar
    Reputation
    82
    Join Date
    Feb 2013
    Posts
    90
    Thanks G/R
    64/28
    CoreCoins
    209
    Trade Feedback
    0 (0%)
    Quote Originally Posted by DarkLinux View Post
    Must be a better way of get cast time, spell rank and distance. Or am I missing something key to this madness? Or is this just display info, and the real info is stored in a different place?
    The spell rank you get from the spellinfo structure, the cast time (i think this one was posted already) and range from here:
    Code:
    public delegate bool GetSpellCooldownDelegate(int spellId, bool isPet, ref int duration, ref int start, ref bool isEnabled) at 0x006E2EA0 (fastcall);
    public delegate void GetSpellRangeDelegate(uint player_pointer, int spellid, ref float minrange, ref float maxrange, int zero = 0); at 0x006E3480(fastcall)

    In fact the struct you posted is the spell info from the dbc:
    Code:
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
        public unsafe struct SpellRecord
        {
            public uint Id;                                                     //0
            public uint School;                                                 //1
            public uint Category;                                               //2
            public uint CastUI;                                                 //3 not used
            public uint Dispel;                                                 //4
            public uint Mechanic;                                               //5
            public uint Attributes;                                             //6
            public uint AttributesEx;                                           //7
            public uint AttributesEx2;                                          //8
            public uint AttributesEx3;                                          //9
            public uint AttributesEx4;                                          //10
            public uint Stances;                                                //11
            public uint StancesNot;                                             //12
            public uint Targets;                                                //13
            public uint TargetCreatureType;                                     //14
            public uint RequiresSpellFocus;                                     //15
            public uint CasterAuraState;                                        //16
            public uint TargetAuraState;                                        //17
            public uint CastingTimeIndex;                                       //18
            public uint RecoveryTime;                                           //19
            public uint CategoryRecoveryTime;                                   //20
            public uint InterruptFlags;                                         //21
            public uint AuraInterruptFlags;                                     //22
            public uint ChannelInterruptFlags;                                  //23
            public uint procFlags;                                              //24
            public uint procChance;                                             //25
            public uint procCharges;                                            //26
            public uint maxLevel;                                               //27
            public uint baseLevel;                                              //28
            public uint spellLevel;                                             //29
            public uint DurationIndex;                                          //30
            public int powerType;                                               //31
            public uint manaCost;                                               //32
            public uint manaCostPerlevel;                                       //33
            public uint manaPerSecond;                                          //34
            public uint manaPerSecondPerLevel;                                  //35
            public uint rangeIndex;                                             //36
            public float speed;                                                 //37
            public uint modalNextSpell;                                         //38
            public uint StackAmount;                                            //39
            public fixed uint Totem[2];                                         //40-41
            public fixed int Reagent[8];                                        //42-49
            public fixed uint ReagentCount[8];                                  //50-57
            public int EquippedItemClass;                                       //58 (value)
            public int EquippedItemSubClassMask;                                //59 (mask)
            public int EquippedItemInventoryTypeMask;                           //60 (mask)
            public fixed int Effect[3];                                         //61-63
            public fixed uint EffectDieSides[3];                                //64-66
            public fixed int EffectBaceDice[3];                                 //67-69
            public fixed float EffectDicePerLevel[3];                           //70-72
            public fixed float EffectRealPointsPerLevel[3];                     //73-75
            public fixed int EffectBasePoints[3];                               //76-78
            public fixed uint EffectMechanic[3];                                //79-81
            public fixed uint EffectImplicitTargetA[3];                         //82-84
            public fixed uint EffectImplicitTargetB[3];                         //85-87
            public fixed uint EffectRadiusIndex[3];                             //88-90
            public fixed uint EffectApplyAuraName[3];                           //91-93
            public fixed uint EffectAmplitude[3];                               //94-96
            public fixed float EffectMultipleValue[3];                          //97-99
            public fixed uint EffectChainTarget[3];                             //100-102
            public fixed uint EffectItemType[3];                                //103-105
            public fixed int EffectMiscValue[3];                                //106-108
            public fixed uint EffectTriggerSpell[3];                            //109-111
            public fixed float EffectPointsPerComboPoint[3];                    //112-114
            public uint SpellVisual;                                            //115
            public uint SpellVisual2;                                           //116 not used
            public uint SpellIconID;                                            //117
            public uint activeIconID;                                           //118
            public uint spellPriority;                                          //119
    
            [MarshalAs(UnmanagedType.LPStr)] public string SpellName;           //120
            public fixed uint SpellNameTrash[7];                                //121-127
            public uint SpellNameFlag;                                          //128 
    
            [MarshalAs(UnmanagedType.LPStr)] public string Rank;                //129
            public fixed uint RankTrash[7];                                     //129-136
            public uint RankFlags;                                              //137
    
            [MarshalAs(UnmanagedType.LPStr)] public string Description;         //138
            public fixed uint DescriptionTrash[7];                              //139-145
            public uint DescriptionFlags;                                       //146
    
            [MarshalAs(UnmanagedType.LPStr)] public string ToolTip;             //147
            public fixed uint ToolTipTrash[7];                                  //148-154
            public uint ToolTipFlags;                                           //155     not used
    
            public uint ManaCostPercentage;                                     // 156
            public uint StartRecoveryCategory;                                  // 157
            public uint StartRecoveryTime;                                      // 158
            public uint MaxTargetLevel;                                         // 159
            public uint SpellFamilyName;                                        // 160
            public ulong SpellFamilyFlags;                                      // 161+162
            public uint MaxAffectedTargets;                                     // 163
            public uint DmgClass;                                               // 164 defenseType
            public uint PreventionType;                                         // 165
            public uint StanceBarOrder;                                         // 166 not used
            public fixed float DmgMultiplier[3];                                // 167-169
            public uint MinFactionId;                                           // 170 not used, and 0 in 2.4.2
            public uint MinReputation;                                          // 171 not used, and 0 in 2.4.2
            public uint RequiredAuraVision;                                     // 172 not used
        };
    Last edited by tutrakan; 12-04-2016 at 02:52 PM.

  23. The Following 1 Members Gave Thanks To tutrakan For This Useful Post:

    DarkLinux
 

 

Similar Threads

  1. [WoW][3.3.5.12340] Info Dump Thread
    By Nesox in forum WoW Memory Editing
    Replies: 82
    Last Post: 11-02-2014, 04:11 PM
  2. [WoW][4.0.3.13329] Info Dump Thread
    By TOM_RUS in forum WoW Memory Editing
    Replies: 73
    Last Post: 02-06-2011, 05:37 AM
  3. [WoW][4.0.1.13164] Info Dump Thread
    By Seifer in forum WoW Memory Editing
    Replies: 29
    Last Post: 01-18-2011, 08:14 AM
  4. [WoW][4.0.1.13205] Info Dump Thread
    By DrGonzo in forum WoW Memory Editing
    Replies: 12
    Last Post: 11-11-2010, 01:34 PM
  5. [WoW][3.3.3.11723] Info Dump Thread
    By miceiken in forum WoW Memory Editing
    Replies: 2
    Last Post: 03-27-2010, 03:42 PM
All times are GMT -5. The time now is 03:56 PM. Powered by vBulletin® Version 4.2.2
Copyright © 2017 vBulletin Solutions, Inc. All rights reserved. Digital Point modules: Sphinx-based search