Jump to content
This site uses cookies! Learn More

This site uses cookies!

By continuing to use this site, you agree to allow us to store cookies on your computer. :)

  • What can cause this error?


    Matenia
    • Product: WRobot General Type: Bug Status: Unconfirmed
    [F] 08:21:05 - Casting Dampen Magic on player with guid 30
    [N] 08:22:39 - [Path-Finding] FindPath from -9525,382 ; -13,91835 ; 55,99067 ; "None" to -9471,67 ; 34,451 ; 63,82216 ; "None" (Azeroth)
    [N] 08:22:39 - [Path-Finding] Path Count: 21 (202,2812y, 130ms)
    [E] 08:22:56 - Error injection: Cannot launch it, skipped.

    What can cause this error?
    I am writing my own project at the moment from scratch. Ever since I started building my own Fight.cs (still using customclass, but slightly differently), this happens once in a while.
    As far as I can tell here, while running (GoToTask) this happened. The game was completely frozen. 

    Calling via devtools:

    wManager.Wow.Memory.WowMemory.UnlockFrame();

    did not help to unfreeze the game. So maybe some deadlock inside the game? I'm not using anything special, just movement and Interact.InteractGameObject.
    I just need to understand what causes this error to better debug this.




    User Feedback

    Recommended Comments

    Idk if there is a limit but it could be to many injections at a single time. (Idk, just throwing the idea out there.)

    Share this comment


    Link to comment
    Share on other sites

    Similar issue:
    Wow stays unfrozen, but wRobot (interface too) is frozen.
    When I force-kill wRobot.exe process, WoW throws this error:

    ERROR #132 (0x85100084) Fatal Exception
    Program:	F:\Games\WoW 3.3.5\Wow.exe
    Exception:	0x80000004 (SINGLE_STEP) at 0023:66D54590

    I think it happens when wRobot targets itself (or others) using Interact.InteractGameObject

    Share this comment


    Link to comment
    Share on other sites

    I think it has do to with me suspending CustomClass.Thread, like this:

    
    private void FightClassWaitForRegen()
    {
      List<Thread> threadsToSleep = new List<Thread>();
      threadsToSleep.Add(CustomClass.CustomClassThread);
    
      var fightClassSleepThread = SleepFightClassThread(threadsToSleep);
      WaitUntilRegenerated(threadsToSleep);
      fightClassSleepThread.Abort();
    }
    
    private Thread SleepFightClassThread(List<Thread> threadsToSleep)
    		{
    			Thread fightClassSleepThread = new Thread(() =>
    			{
    				try
    				{
    					foreach (var thread in threadsToSleep)
    					{
    						thread.Suspend();
    					}
    
    					while (Conditions.InGameAndConnectedAndAliveAndProductStarted && !Common.IsAttackedByNpc)
    					{
    						Thread.Sleep(500);
    					}
    				}
    				finally
    				{
    					foreach (var thread in threadsToSleep)
    					{
    						thread.Resume();
    					}
    				}
    			});
    			fightClassSleepThread.Start();
    			return fightClassSleepThread;
    		}

     

    Share this comment


    Link to comment
    Share on other sites

    I don't really know the code, but FightClassWaitForRegen is run by a wow thread, afaik it is actually run by directx by a hardware break and you sleep this thread -> while (Conditions.InGameAndConnectedAndAliveAndProductStarted && !Common.IsAttackedByNpc), so assuming that the first condition is true, it will sleep the thread updating your code until Common.IsAttackedByNpc becomes true, thisway stopping the originally directx thread from doing it's original job. Guessing from the variable's name it isn't constantly true, rather occasionally. I wouldn't sleep the thread based on that.

    Edit: the single step exception is actually caused by killing wrobot (the handler for the SEH exception from the hardware bp gets lost)
    Edit2: Even if that code is run outside of the client, the cause of the problem might be similar.

    Share this comment


    Link to comment
    Share on other sites

    Yeah, I figured if I'm suspending the CustomClassThread while it's writing to client memory (not allowing it finish whatever work it was doing) it would either deadlock wRobot or the wow client itself (through directx endscene), while I was testing some things.

    I decided it's time I write my own customclass implementation that allows me to properly pause it from an outside thread and provides more customizability than what wRobot currently offers. 

    Thanks for the insight though, that was very helpful.

    Share this comment


    Link to comment
    Share on other sites


    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...