Jump to content
  • STUCK ObjectManager.Me.IsCast


    camelot10
    • Version: All Product: WRobot General Type: Bug Status: Fixed

    sometime wrobot stuck with "ObjectManager.Me.IsCast = true" even if nothing casing, character just stay in place and stop responding to attacks and others actions.

    this happens sometimes on other classes/fightclasses/quests.

    but i found quest when this happend often. this quest have 4 objectives, http://www.wowhead.com/quest=38015/on-the-brink

    each objective to cast long spell from item http://www.wowhead.com/item=138146/radiant-ley-crystal

    its 50% of time wrobot stuck on cast. after stuck, "stop" button not responding. only closing wrobot helps.

    attached log and screenshot. dev tool code

    Logging.Write("## TEST " + wManager.Wow.ObjectManager.ObjectManager.Me.IsCast );
    // wManager.DevelopmentTools.OutPutCSharp= 
    // Execute time: 547

     

    just in case, quest code:

    #if VISUAL_STUDIO
    using robotManager.Helpful;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    using wManager.Wow.Bot.Tasks;
    using wManager.Wow.Class;
    using wManager.Wow.Helpers;
    using wManager.Wow.ObjectManager;
    using wManager.Wow.Enums;
    #endif
    
    public class OntheBrink : QuestClass
    {
    	uint _itemID = 138146;
    	float _minDist = 9;
    	List<Vector3> _hotspots = new List<Vector3>()
    	{
    		new Vector3(),
    		new Vector3(580.2465, 6624.608, 57.83238),
    		new Vector3(648.5121, 6717.858, 57.89808),
    		new Vector3(614.2483, 6668.945, 60.23647),
    		new Vector3(708.4583, 6554.415, 63.7892),
    	};
    	List<int> _mobs = new List<int>()
    	{
    		0,
    		107962,
    		107963,
    		107961,
    		107964,
    	};
    	public OntheBrink()
    	{
    		Name = "On the Brink";
    		QuestId.Add(38015);
    		Step.AddRange(new[] { 1, 1, 1, 1, 0 });
    	}
    	public override bool Pulse()
    	{
    		//4-1-3-2
    		RunObjective(4);
    		RunObjective(1);
    		RunObjective(3);
    		RunObjective(2);
    		return true;
    	}
    	void RunObjective(int num)
    	{
    		if (Questing.ObjectiveComplete(this, num))
    			return;
    
    		if (GoToTask.ToPosition(_hotspots[num], _minDist))
    		{
    			var mob = ObjectManager.GetNearestWoWUnit(ObjectManager.GetWoWUnitByEntry( _mobs[num]));
    			if (mob != null && mob.IsValid)
    			{
    				Interact.InteractGameObject(mob.GetBaseAddress);
    				MovementManager.Face(mob);
    				Thread.Sleep(Usefuls.Latency);
    				ItemsManager.UseItem(_itemID);
    				Usefuls.WaitIsCasting();
    			}
    		}
    	}
    
    }

     



    User Feedback

    Recommended Comments

    camelot10

    Posted

    main problem: character is not casting. but wrobot report 

    Me.IsCast = true

     

    UPDATE #1

    wrobot restarted. this wont help. Me.IsCast return true

    fMmJbC5.jpg

     

    UPDATE #2

    casting other spells wont break this. equiping items, using consumables items - wont break this.

    only one thing what i found that break isCast, its a using items whats add artifact powers.

    how it looks:

    character go to objective npc, start use item and wait long cast. when cast is done - wrobot hung until i use any item what add artifact power.

    after using such item, wrobot start run to next objective

    camelot10

    Posted

    UPDATE #3

    long time casting like hearthstone or dalaran hearthstone break isCast stuck but bot stops responding start/stop buttons

    UPDATE #4

    pause play, and then stop - allows to stop bot

    Droidz

    Posted

    Hello,

    What is values of :

    Me.CastingSpellId
    Me.CastingTimeLeft
    Me.CanInterruptCasting

     

    camelot10

    Posted

    38 minutes ago, Droidz said:

    Hello,

    What is values of :

    
    Me.CastingSpellId
    Me.CastingTimeLeft
    Me.CanInterruptCasting

     

    sended video with result to pm

    Droidz

    Posted

    Try to run this code (after "pickup" step)

            Thread t = new Thread(() =>
            {
                uint spellId = 214482; // http://www.wowhead.com/spell=214482/radiant-ley-crystal
                int questId = 38015;
                while (robotManager.Products.Products.IsStarted)
                {
                    if (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause)
                    {
                        if (!Quest.HasQuest(questId))
                            break;
                        if (ObjectManager.Me.IsValid && 
                            ObjectManager.Me.IsAlive && 
                            ObjectManager.Me.IsCast &&
                            ObjectManager.Me.CastingSpellId == spellId &&
                            ObjectManager.Me.CastingTimeLeft <= 0)
                        {
                            Lua.LuaDoString("SpellStopCasting()");
                        }
                    }
                    Thread.Sleep(1000);
                }
            });
            t.Start();

     

    camelot10

    Posted

    1 hour ago, Droidz said:

    Try to run this code (after "pickup" step)

    
            Thread t = new Thread(() =>
            {
                uint spellId = 214482; // http://www.wowhead.com/spell=214482/radiant-ley-crystal
                int questId = 38015;
                while (robotManager.Products.Products.IsStarted)
                {
                    if (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause)
                    {
                        if (!Quest.HasQuest(questId))
                            break;
                        if (ObjectManager.Me.IsValid && 
                            ObjectManager.Me.IsAlive && 
                            ObjectManager.Me.IsCast &&
                            ObjectManager.Me.CastingSpellId == spellId &&
                            ObjectManager.Me.CastingTimeLeft <= 0)
                        {
                            Lua.LuaDoString("SpellStopCasting()");
                        }
                    }
                    Thread.Sleep(1000);
                }
            });
            t.Start();

     

    this works, but cast canceled in 0.5s after start. after all its not stuck and quest get completed.

    BUT! this is temporary solution. Im encountered this stuck once per 2-3 day when running my world quests with warlock. he have long casts soulstone/healthstone/summon demons and sometimes it get stuck.

    can't figure out what cause this stucks

    only this quest (38015) where i catch this situation.

     

    Droidz

    Posted

    13 hours ago, camelot10 said:

    this works, but cast canceled in 0.5s after start. after all its not stuck and quest get completed.

    BUT! this is temporary solution. Im encountered this stuck once per 2-3 day when running my world quests with warlock. he have long casts soulstone/healthstone/summon demons and sometimes it get stuck.

    can't figure out what cause this stucks

    only this quest (38015) where i catch this situation.

     

    I'll check if "CastingTimeLeft > 0" in "IsCast", I hope that will not create new bug. If you can wait next update

    camelot10

    Posted

    On 12.05.2017 at 3:40 PM, Droidz said:

    I'll check if "CastingTimeLeft > 0" in "IsCast", I hope that will not create new bug. If you can wait next update

    here. found that suck

    vD25jvu.jpg

     

    log attached 13 май 2017 15H05.log.html

    Logging.Write("## TEST ### Me.IsCast=" + wManager.Wow.ObjectManager.ObjectManager.Me.IsCast + " Me.CastingSpellId=" + wManager.Wow.ObjectManager.ObjectManager.Me.CastingSpellId + " Me.CastingTimeLeft=" + wManager.Wow.ObjectManager.ObjectManager.Me.CastingTimeLeft + " Me.CanInterruptCasting=" + wManager.Wow.ObjectManager.ObjectManager.Me.CanInterruptCasting);

    gives:

    18:51:03 - ## TEST ### Me.IsCast=True Me.CastingSpellId=198590 Me.CastingTimeLeft=0 Me.CanInterruptCasting=True

    Droidz

    Posted

    49 minutes ago, camelot10 said:

    here. found that suck

    vD25jvu.jpg

     

    log attached 13 май 2017 15H05.log.html

    
    Logging.Write("## TEST ### Me.IsCast=" + wManager.Wow.ObjectManager.ObjectManager.Me.IsCast + " Me.CastingSpellId=" + wManager.Wow.ObjectManager.ObjectManager.Me.CastingSpellId + " Me.CastingTimeLeft=" + wManager.Wow.ObjectManager.ObjectManager.Me.CastingTimeLeft + " Me.CanInterruptCasting=" + wManager.Wow.ObjectManager.ObjectManager.Me.CanInterruptCasting);

    gives:

    18:51:03 - ## TEST ### Me.IsCast=True Me.CastingSpellId=198590 Me.CastingTimeLeft=0 Me.CanInterruptCasting=True

    I think than it is wow bug, but next wrobot update will resolve this problem

    Droidz

    Posted

    Last update have added bug https://wrobot.eu/bugtracker/fish-bot-is-not-working-r699/
    I have try to fix again this problem, now, when IsCast seem to stuck, wrobot continue to run after 30 secondes. If you get this problem again do not hesitate to repport this here.

    camelot10

    Posted

    1 minute ago, Droidz said:

    Last update have added bug https://wrobot.eu/bugtracker/fish-bot-is-not-working-r699/
    I have try to fix again this problem, now, when IsCast seem to stuck, wrobot continue to run after 30 secondes. If you get this problem again do not hesitate to repport this here.

    ok. at this moment, everything run fine. didnt noticed that bug



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...