Jump to content

Zer0

Elite user
  • Posts

    213
  • Joined

  • Last visited

Posts posted by Zer0

  1. 21 minutes ago, brick420 said:

    I played Sunwell I had more then 1 acc farming for me at once anyone who got banned was not skilled at botting in general. Anyone who thinks they can detect the bot needs to get a clue I farmed 4x greatness cards 2x mechano hog and payed for  10+ primordial Saronite during ICC launch ❤️ wrobot thanks for still supporting private server content.

    That's great. Do you mind sharing with other users the kind of measures you take to avoid getting caught?

  2. I almost exclusively work on TBC but I think this should work in WotLK too:

            // Returns the time left on a buff in seconds, buff name is passed as string
            public static int BuffTimeLeft(string buffName)
            {
                return Lua.LuaDoString<int>
                    ($"for i=1,25 do " +
                        "local n, _, _, _, _, duration, _  = UnitBuff('player',i); " +
                        "if n == '" + buffName + "' then " +
                        "return duration " +
                        "end " +
                    "end");
            }

     

  3. Here's the method I've made to handle elevators:

        public static void AddTransportOffMesh(
            Vector3 waitForTransport,
            Vector3 stepIn,
            Vector3 objectDeparture,
            Vector3 objectArrival,
            Vector3 stepOut,
            int objectId,
            ContinentId continentId,
            string name = "",
            float precision = 0.5f)
        {
            OffMeshConnection offMeshConnection = new OffMeshConnection(new List<Vector3>
                {
                    waitForTransport,
                    new Vector3(stepIn.X, stepIn.Y, stepIn.Z, "None")
                    {
                        Action = "c#: Logging.WriteNavigator(\"Waiting for transport\"); " +
                        "while (Conditions.InGameAndConnectedAndProductStartedNotInPause) " +
                        "{ " +
                            $"var elevator = ObjectManager.GetWoWGameObjectByEntry({objectId}).OrderBy(o => o.GetDistance).FirstOrDefault(); " +
                            $"if (elevator != null && elevator.IsValid && elevator.Position.DistanceTo(new Vector3({objectDeparture.X.ToString().Replace(",", ".")}, {objectDeparture.Y.ToString().Replace(",", ".")}, {objectDeparture.Z.ToString().Replace(",", ".")})) < {precision.ToString().Replace(",", ".")}) " +
                                "break; " +
                            "Thread.Sleep(100); " +
                        "}"
                    },
                    new Vector3(stepOut.X, stepOut.Y, stepOut.Z, "None")
                    {
                        Action = "c#: Logging.WriteNavigator(\"Wait to leave Elevator\"); " +
                        "while (Conditions.InGameAndConnectedAndProductStartedNotInPause) " +
                        "{ " +
                            $"var elevator = ObjectManager.GetWoWGameObjectByEntry({objectId}).OrderBy(o => o.GetDistance).FirstOrDefault(); " +
                            $"if (elevator != null && elevator.IsValid && elevator.Position.DistanceTo(new Vector3({objectArrival.X.ToString().Replace(",", ".")}, {objectArrival.Y.ToString().Replace(",", ".")}, {objectArrival.Z.ToString().Replace(",", ".")})) < {precision.ToString().Replace(",", ".")}) " +
                                "break; " +
                            "Thread.Sleep(100); " +
                        "}"
                    },
                }, (int)continentId, OffMeshConnectionType.Unidirectional, true);
            offMeshConnection.Name = name;
            OffMeshConnections.Add(offMeshConnection, true);
        }

    And here is how I use it:

            AddTransportOffMesh(new Vector3(2865.628, 6211.75, 104.262), // wait for transport
                new Vector3(2878.712, 6224.032, 105.3798), // Step in
                new Vector3(2878.315, 6223.635, 105.3792), // Object departure
                new Vector3(2892.18, 6236.34, 208.908), // Object arrival
                new Vector3(2880.497, 6226.416, 208.7462, "None"), // Step out
                188521,
                ContinentId.Northrend,
                "Warsong Hold Elevator UP");
    
            AddTransportOffMesh(new Vector3(2880.497, 6226.416, 208.7462, "None"), // wait for transport
                new Vector3(2891.717, 6236.516, 208.9086, "None"), // Step in
                new Vector3(2892.18, 6236.34, 208.908), // Object departure
                new Vector3(2878.315, 6223.635, 105.3792), // Object arrival
                new Vector3(2865.628, 6211.75, 104.262), // Step out
                188521,
                ContinentId.Northrend,
                "Warsong Hold Elevator DOWN");

    I've used this for our FlightMaster plugin. In theory, it should also work for other transports.

  4. If you want to move to the first spot on the list, use

    GoToTask.ToPosition(path[0]);

    If you want to find nearest spot on the list, you can do it this way:

    using System.Linq;
    
    List<Vector3> closestSpots = path
    	.OrderBy(spot => spot.Position.DistanceTo(ObjectManager.Me.Position))
    	.ToList();
    
    Vector3 closestSpot = closestSpots[0];

    I haven't tested it and there's probably a more efficient way to do it, but that should work.

  5. @TheSmokie So far, it's been reported that the fix works. Thanks for that.

    @Droidz I'm sure this is not a blacklist issue. I've had this issue randomly with test characters and empty profile. Unless I'm missing something, there's no way any NPC was blacklisted in those situations.
    It seems to be a recent issue, I don't remember the bot having this problem before, but I could be wrong.
    We have several testers working on both TBC and WotLK and the problem only has been reported with TBC. Never heard or seen that issue on WotLK.
    I haven't tried to modify the interact distance. Unfortunately, the problem happens so rarely for me that it's impossible to test soundly. Also, I don't know if it helps, but when I've had this issue, I noticed the character was standing in interaction range (the NPC can be right-clicked for a gossip).
    I've implemented Smokie's fix with a bool in return and now it seems to work. You can see the code here:
    https://github.com/Wholesome-wRobot/Wholesome-TBC-FlightMaster/blob/master/Tools/WFMMoveInteract.cs

    Hope it helps

  6. Hi,

    I have noticed a problem recently with GoToTask.ToPositionAndIntecractWithNpc(...).

    Sometimes, the bot will succesfully move to the NPC, but then fail to interact with it, despite being in interaction range.

    It's very random and hard to reproduce. When that happens, GoToTask.ToPositionAndIntecractWithNpc returns false. The gossip option argument doesn't seem to make a difference. I've encountered this issue a few times on my private server, and others in the team have also encountered this issue on the Endless server. It does not happen on the WotLK expansion at all. It happens with our flightmaster plugin, but also with the quester (quests pickup for example).

    Has anyone ever encountered this issue, and has any idea where it could come from?

  7. This is how I do it (TBC).

    Although as Matenia pointed out, some mobs might only be temporary immune to a school. That being said, I'd rather handle those rare exceptions than random immunities that differ from server to server.

     

    EventsLuaWithArgs.OnEventsLuaWithArgs += LuaEventsHandler;
    
    private void LuaEventsHandler(LuaEventsId id, List<string> args)
    {
      if (args[11] == "IMMUNE"))
      {
        Logging.Write($"{ObjectManager.Target.Name} is immune to {args[9]}");
        // Your code to handle spell ban
        // args[9] is the name of the spell
      }
    }

     

  8. 1 hour ago, Matenia said:

    Simply don't account for hitbox sizes. It works, but it's useless. Real servers calculate from center to center, because that's what blizzard did too.

    Thanks for the answer but I'm not sure I understand what you mean by "Simply don't account for hitbox sizes".

    What I use to set the range of a FightClass is simply the Range property of the ICustomClass interface. For melee, I set it to 5 and let WRobot handles the rest.

    To clarify, it works perfectly on most servers. Except the Atlantiss Karazhan server. On this server, when you're 5 yards away from a large mob, it keeps backing up like in the video shown above, probably because the mob considers you're too close, and it seems like the "Calculate interact/combat distance by target size" option doesn't change anything.

  9. Line 82, you're casting a spell (wand) in a method that is only supposed to define a state.

    Line 422, you're casting wand in a method that is supposed to be a trigger for the Frost nova / Frostbite debuff.

    The Pull() method is never called anywhere.

     

    I've only had a quick glance at the FC and there seems to be a lot of issues on this one. Also, the overall structure of the code is pretty confusing and unnecessarily complicated. You should try to make it simpler and cleaner. I'd advise you check @Marsbar's tutorial on how to create a fightclass. You would most likely be better off starting from scratch instead of trying to fix this one. 

    If you need further inspiration, you can also check https://github.com/Wholesome-wRobot/Z.E.TBC_AllInOne_FightClasses/tree/master/Wrobot/Z.E.FrostMage

×
×
  • Create New...