-
Posts
216 -
Joined
-
Last visited
Content Type
Forums
Articles
Bug Tracker
Downloads
Store
Everything posted by Zer0
-
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.cs Hope it helps
-
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?
-
Version 1.0.0
1698 downloads
Overview Hi guys, The Wholesome team is proud to present the Wholesome WotLK FlightMaster plugin. Inspired by FNV's VanillaFlightMaster - Alliance, we have rebuilt a plugin from the ground up that makes full use of WRobot's FSM Engine. The Wholesome WotLK FlightMaster plugin overrides WRobot's default Taxi logic and has been designed to make optimal decisions in terms of Taxi discovery and flight routes for both Horde and Alliance. How to install Copy the .dll file into WRobot's Plugin folder and enable it in the Plugins tab of WRobot. Autoupdater This plugin comes with an autoupdater. Every time you press play, it checks if a new version is available. If it finds one, it automatically installs it and restarts the product. Compatibility Wholesome FlightMaster is only compatible with the Grinder and Quester products of TBC and WotLK. As usual, you must use the English client of the game. Settings Discovery distance: Sets the maximum radius for FlightMaster dicovery. Please note that if an undiscovered FlightMaster is detected in your discovery radius, the plugin will also calculate the real walking distance to them and only allow discovery if they are under Discovery distance * 1.2, in order to avoid unwanted detours (ex: East side of Nagrand to Shattrath). Minimum distance saving: Only allow a flight to be taken if it saves more distance than this value (in yards). Pause length (in seconds): The plugin can pause itself or disable a FlightMaster for a set duration in different situations (unreachable NPC, dead NPC...). 600 seconds is the default value. Take undiscovered taxi: Enabling this option will let the plugin choose the closest FlightMaster even if you haven't discovered it yet. Be aware that it can take you to unwanted or dangerous territory. Trigger distance: The plugin will run a check every time WRobot starts a new path. Distance calculations by the plugin can take a few seconds but will be skipped entirely if your current path length is under this value (600 by default). Minimum Follow Path distance: Some questers use Follow Path steps to force a specific route. The plugin will not consider Flights if you're on a Follow Path step with a distance lower than this value. Blacklisted nodes: A custom list you can modify if you want to ignore a Flight node entirely. The name can be partial (ex : mojach for Camp Mojache). Project Wholesome – A quick word The goal of Project Wholesome is to develop, test, and freely share wRobot products. All the code created under the project is transparent, open-source, and then released in the store for free. Nothing released under Project Wholesome is sold for profit, although individual donations are welcome. We are always looking for more testers and developers. If you want to participate, please join our Discord channel. Project Wholesome Discord: https://discord.gg/NEq4VA6 Wholesome team Club: https://wrobot.eu/clubs/9-wholesome-team/ Special thanks Special thanks to the entire Wholesome team. Especially @BlobIAmAFish for his contribution. @Energia, @Talamin, @Kamogli for their precious help. Enjoy! -
Version 1.0.0
310 downloads
Overview Hi guys, The Wholesome team is proud to present the Wholesome TBC FlightMaster plugin. Inspired by FNV's VanillaFlightMaster - Alliance, we have rebuilt a plugin from the ground up that makes full use of WRobot's FSM Engine. The Wholesome TBC FlightMaster plugin overrides WRobot's default Taxi logic and has been designed to make optimal decisions in terms of Taxi discovery and flight routes for both Horde and Alliance. How to install Copy the .dll file into WRobot's Plugin folder and enable it in the Plugins tab of WRobot. Autoupdater This plugin comes with an autoupdater. Every time you press play, it checks if a new version is available. If it finds one, it automatically installs it and restarts the product. Compatibility Wholesome - TBC FlightMaster is only compatible with the Grinder and Quester products of TBC. As usual, you must use the English client of the game. Settings Discovery distance: Sets the maximum radius for FlightMaster dicovery. Please note that if an undiscovered FlightMaster is detected in your discovery radius, the plugin will also calculate the real walking distance to them and only allow discovery if they are under Discovery distance * 1.2, in order to avoid unwanted detours (ex: East side of Nagrand to Shattrath). Minimum distance saving: Only allow a flight to be taken if it saves more distance than this value (in yards). Pause length (in seconds): The plugin can pause itself or disable a FlightMaster for a set duration in different situations (unreachable NPC, dead NPC...). 600 seconds is the default value. Take undiscovered taxi: Enabling this option will let the plugin choose the closest FlightMaster even if you haven't discovered it yet. Be aware that it can take you to unwanted or dangerous territory. Trigger distance: The plugin will run a check every time WRobot starts a new path. Distance calculations by the plugin can take a few seconds but will be skipped entirely if your current path length is under this value (600 by default). Minimum Follow Path distance: Some questers use Follow Path steps to force a specific route. The plugin will not consider Flights if you're on a Follow Path step with a distance lower than this value. Blacklisted nodes: A custom list you can modify if you want to ignore a Flight node entirely. The name can be partial (ex : mojach for Camp Mojache). Project Wholesome – A quick word The goal of Project Wholesome is to develop, test, and freely share wRobot products. All the code created under the project is transparent, open-source, and then released in the store for free. Nothing released under Project Wholesome is sold for profit, although individual donations are welcome. We are always looking for more testers and developers. If you want to participate, please join our Discord channel. Project Wholesome Discord: https://discord.gg/NEq4VA6 Special thanks Special thanks to the entire Wholesome team. Especially @BlobIAmAFish for his contribution. @Energia, @Talamin, @Kamogli for their precious help. Enjoy! -
Detect Target Immunities (ie: Immune to Diseases)
Zer0 replied to Apexx's topic in Developers assistance
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 } } -
Spams pummel when off cd - after 1 missed interrupt(bug?)
Zer0 replied to vodkalol's topic in Fight Classes assistance
Hi, can you show us the code? -
Bot jumps into action and dies immediately after ressurrection
Zer0 replied to keke's topic in Grinder assistance
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. -
Hi, if you want to check if your target has a debuff, you can use ObjectManager.Target.HaveBuff("buff name""). In your situation, you simply could use. if (!ObjectManager.Target.HaveBuff("Rend")) { // Cast rend } This will ensure that Rend is always up on your target.
-
You need a fightclass
-
does not work "Calculate interact/combat distance by target size"
Zer0 replied to drusangus's topic in General assistance
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. -
does not work "Calculate interact/combat distance by target size"
Zer0 replied to drusangus's topic in General assistance
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.
-
What do you mean by "caster check" exactly?
-
Mage adding wand and condition for use
Zer0 replied to Gunneremil's topic in Fight Classes assistance
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 -
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");
-
How do I impliment Fight Class Settings
Zer0 replied to quasimodo's topic in Fight Classes assistance
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 -
How do I impliment Fight Class Settings
Zer0 replied to quasimodo's topic in Fight Classes assistance
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();