How to stop moving and cancel current spell? menu

User Tag List

Results 1 to 6 of 6
  1. #1
    oiramario's Avatar Established Member
    Reputation
    85
    Join Date
    Mar 2021
    Posts
    133
    Thanks G/R
    36/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    How to stop moving and cancel current spell?

    1. when aplayer's position is in spell range by using CTM move to target, how to stop moving? I've tried move to own position for stop moving, however it will turn around because delay.
    2. how to interrupt the current casting in case of emergency?
    any advice and hints are welcome, thanks!

    How to stop moving and cancel current spell?
  2. #2
    _chase's Avatar Established Member
    Reputation
    96
    Join Date
    Dec 2019
    Posts
    58
    Thanks G/R
    17/50
    Trade Feedback
    0 (0%)
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by oiramario View Post
    1. when aplayer's position is in spell range by using CTM move to target, how to stop moving? I've tried move to own position for stop moving, however it will turn around because delay.
    2. how to interrupt the current casting in case of emergency?
    any advice and hints are welcome, thanks!
    If you're implementing combat as a ranged class, typically no real player ever moves into range by right click attacking.
    For ranged combat classes, I use GitHub - recastnavigation/recastnavigation: Navigation-mesh Toolset for Games in order to generate a path to the mob.
    Then using CTM move to position I follow the path, and once in range do a click to move to my current position in order to stop walking.

    On the note of canceling spell casting, I found a string reference of "Usage: CancelSpellByName(name)" which you could probably reverse.
    It's obfuscated in the tbc prepatch though not sure about vanilla classic, so might be difficult to reverse.

    Additionally, can you please provide some information on how you are implementing your bot's update logic.
    My bot update logic depends on the most recent update tick to indicate when to run again, and I have had lots of success with this implementation
    Below is some code/psuedo code to clarify how my bot handles update ticks

    Code:
    uint64_t last_update = 0;
    uint64_t next_update_delta = 0;
    
    uint64_t timeSinceEpochMillisec()
    {
    	return std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
    }
    
    HRESULT PRESENT_CALL Present(IDXGISwapChain* thisptr, UINT SyncInterval, UINT Flags)
    {
            // Always draw as often as we can
            draw();
    
    
            if ((timeSinceEpochMillisec() - last_update) >= next_update_delta) {
    
                    // Client::Update returns a uint64_t representing delay in milliseconds until executing another update tick
    		next_update_delta = Client::Update();
    		last_update = timeSinceEpochMillisec();
    	}
    
    }
    Last edited by _chase; 05-18-2021 at 04:58 PM. Reason: line wrapping

  3. #3
    oiramario's Avatar Established Member
    Reputation
    85
    Join Date
    Mar 2021
    Posts
    133
    Thanks G/R
    36/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    In order to move and fight, I built a traffic network with multiple path points. During the battle, the character is allowed to leave the main path when necessary and return to the traffic network after the battle.

    From 18179, I found CGInputControl::StopMovementAndTurning and CMovementShared::StopMove maybe that's a better way to stop moving, however I dont know how to call them, so what's your suggestion?

    Do you have any experience with CancelSpellByName, CancelSpellById?

    1.13.5.36325 is not obfuscated, you can found it here GitHub - notscimmy/wow_classic_dumps: Binary dumps of World of Warcraft Classic...for educational purposes of course if you do not have it yet. Thanks for @scimmy.

    Hook Present is a bad idea because people use multi-thead renderring in moderm engine. WindProc is much better.

    I use C/S pattern for update logic like Sendmessage.
    Code:
    wow -> server
    you -> client
    client request or send command to server, and wait for response from server then to continue.
    Would you tell me how to dump vmt?

  4. #4
    oiramario's Avatar Established Member
    Reputation
    85
    Join Date
    Mar 2021
    Posts
    133
    Thanks G/R
    36/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    https://www.ownedcore.com/forums/wor...elchannel.html ([Classic] 1.13.5.35753 Spell_CancelChannel)

    1.13.7.38631
    Code:
    0x9923e4 => Spell_C_CancelChannelSpell: 0x9b82d0
    0x99237d => arg3: 0x10
    0x992381 => arg2: 0x1958
    0x992388 => arg1: 0x1968
    0x99238e => arg4: 0x1
    0x992391 => Spell_C_GetCastingSpellCast: 0x9fc000
    0x9923a1 => SpellDB::GetGetRecord: 0x1c8e9c0
    0x9923b4 => CheckSpellAttribute: 0x1c8e960
    0x9923cd => Spell_C_CancelSpell: 0x9b8700
    Thanks for @scimmy, @air999, @ejt
    Last edited by oiramario; 05-19-2021 at 08:56 AM.

  5. #5
    _chase's Avatar Established Member
    Reputation
    96
    Join Date
    Dec 2019
    Posts
    58
    Thanks G/R
    17/50
    Trade Feedback
    0 (0%)
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by oiramario View Post
    In order to move and fight, I built a traffic network with multiple path points. During the battle, the character is allowed to leave the main path when necessary and return to the traffic network after the battle.

    From 18179, I found CGInputControl::StopMovementAndTurning and CMovementShared::StopMove maybe that's a better way to stop moving, however I dont know how to call them, so what's your suggestion?

    Do you have any experience with CancelSpellByName, CancelSpellById?

    1.13.5.36325 is not obfuscated, you can found it here GitHub - notscimmy/wow_classic_dumps: Binary dumps of World of Warcraft Classic...for educational purposes of course if you do not have it yet. Thanks for @scimmy.

    Hook Present is a bad idea because people use multi-thead renderring in moderm engine. WindProc is much better.

    I use C/S pattern for update logic like Sendmessage.
    Code:
    wow -> server
    you -> client
    client request or send command to server, and wait for response from server then to continue.
    Would you tell me how to dump vmt?
    Hm I'll investigate about your suggestion of using WndProc, I haven't had any threading issues executing in dx11's present so far.
    For dumping virtual method tables, at runtime I print an object's vmt address and then just find the address in ida and start reversing from there.
    I'm sure there is a more efficient way, but I'm only using like 5 vmt calls so I haven't invested much time into them.

  6. #6
    oiramario's Avatar Established Member
    Reputation
    85
    Join Date
    Mar 2021
    Posts
    133
    Thanks G/R
    36/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    There are too much renderer: dx9/10/11/12, ogl, ogles(arm64 now supported). And, fps of renderring(30/60/144) is different with logic(the main thread maybe is 30 locked that's enough). WndProc it's could be sure in the main thread that's why it's my chosen.
    Even you hook present, you could also respone one request per frame, that's what I mean: C/S. We should not take up too much thread time.

Similar Threads

  1. How to stop a current ClickToMove?
    By zys924 in forum WoW Memory Editing
    Replies: 7
    Last Post: 07-18-2011, 07:32 PM
  2. [Guide] How to Add Water and Add Land and Move Land
    By Demonkunga in forum WoW ME Tools & Guides
    Replies: 12
    Last Post: 04-20-2009, 10:49 PM
  3. How to Add Water and Add Land and Move Land
    By Demonkunga in forum WoW ME Tools & Guides
    Replies: 21
    Last Post: 08-15-2008, 08:03 AM
  4. How to change models and textures client side only
    By Matt in forum World of Warcraft Guides
    Replies: 9
    Last Post: 11-29-2006, 12:35 AM
  5. How to get WoW and their Patches with Hack?
    By fReAk in forum World of Warcraft General
    Replies: 0
    Last Post: 06-11-2006, 01:41 AM
All times are GMT -5. The time now is 03:44 AM. 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