-
Posts
213 -
Joined
-
Last visited
Content Type
Forums
Articles
Bug Tracker
Downloads
Store
Posts posted by Zer0
-
-
-
https://wrobot.eu/clients/purchases/
Then click on your purchase.
-
-
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"); }
-
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.
-
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.
-
@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.csHope it helps
-
Thanks, I'll give it a try.
-
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?
-
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 } }
-
Hi, can you show us the code?
-
Try increasing the eat/drink threshold to at least 50 %-> 95%. Depending on your expansion, class and level, 35% can be way too low.
Double check if you have drink/food in your bags.
Turn all your plugins off.
If nothing works, try reinstalling WRobot.
-
-
3 hours ago, Xelandia said:
ty alot rly ? . Now i have a other question . i Take a priest and he only starts doing melee attacks . how can i say the bot that he plays a priest ?
You need a fightclass
-
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.
-
I'm confirming that issue.
It occurs with my TBC AIO and It seems to be server dependant. I've tested on my private Trinity server against the exact same mob and the exact same character (male orc) and the issue did not occur.
The combat range is set to 5.
Does anyone have an idea how we can fix this issue?
-
Everything indicates that you shouldn't be botting at all.
I think you should ask for a refund and walk away.
-
I believe you need to make a "Grinder" profile for skinning, not a Gatherer one. And then just make sure Skinning is ON in the options when you use it.
-
11 hours ago, chickengod said:
Is it possible to set a caster check in these functions? UnitDebuff("target","spellname",nil,"player") dont work in TBC.
What do you mean by "caster check" exactly?
-
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
-
Private servers only.
-
Hi
To my knowledge, the only way to add an item to the Do Not Sell List is with its name.
wManagerSetting.CurrentSetting.DoNotSellList.Add("Hearthstone");
-
No worries ?
If you need further inspiration, feel free to check out my github
https://github.com/Wholesome-wRobot/Z.E.TBC_AllInOne_FightClasses/tree/master/Wrobot -
Looks good to me at first sight.
Maybe you forgot to declare the following method?
public static void ShowConfiguration() { TestingSettings.Load(); TestingSettings.CurrentSetting.ToForm(); TestingSettings.CurrentSetting.Save(); }
You also need to load the settings in the Initialize() method of the FC:
TestingSettings.Load();
[SUNWELL] Insane detection system/incredibly active GMs?
in WRobot for Wow Wrath of the Lich King - Help and support
Posted
That's great. Do you mind sharing with other users the kind of measures you take to avoid getting caught?