The default ExampleRoutine bugs out a lot with Cyclone, but I made a couple of modifications that seem to make it work alright that people might be interested in. It could be improved massively as the 'best' way to use cyclone now is to right click as close to your character as possible - each time the cyclone starts it damages enemies, so using it at minimum range increases DPS massively. I'm too lazy to code that right now, though, so this'll have to do. In ExampleRoutine.cs: Find: Code: weight -= entity.Distance/2; var m = entity as Monster; if (m == null) return; Replace with: Code: if(entity.Distance < ExampleRoutineSettings.Instance.MaxMeleeRange) weight += entity.Distance/2; else weight -= entity.Distance/2; var m = entity as Monster; if (m == null) return; Find: Code: // Do not consider inactive/dead mobs. if (!m.IsActive) return false; // Ignore any mob that cannot die. if (m.CannotDie) return false; Replace with: Code: // Do not consider inactive/dead mobs. if (!m.IsActive) return false; // Ignore mobs that are too close to cyclone. if (m.Distance < 5) return false; // Ignore any mob that cannot die. if (m.CannotDie) return false; You also need to set Max Melee Range to 40.
No problem After some testing, I'd suggest setting Max Melee Range to 40 rather than 50 as I said before, since sometimes the bot mouses over potions otherwise if you are using a small game window.
Found a bug while using. The CR will ignore anything under 5 and occasionally get stuck. Just watched a yellow hit at my character while he did nothing until he logged out. I'm not a programmer so I can't really do much to fix this besides tweak what you gave me. I'll set 5 to 1 or 2 and see how it works. EDIT: Maybe it's not related to that part, still did it when I took that section out.
krone6, pepper the code with: Log.InfoFormat("Something like 1.. and continue with 2 and 3.. basically you are setting some points to dump variables."); If you are interested in what a value is doing, you can likely use Log.InfoFormat("I am interested in this value: {0}", objectName); // for instance objectName can be skill.Name or in your case perhaps m.distance? Reading your bug report, I expect the skill cannot target within that close a range, that being 5, thus the routine should be changed to attack a point 10 from your current location, that travels through the mob. wimm
I have noticed this too. The code above takes care of this issue in almost all cases by ignoring the mobs that are too close, which is great until there is only 1 left. However, as long as the toon is in motion (I've seen it move back and forth over the same rare). I've only seen the above occur when cyclone has finished its pathing too close the mob and so cannot target it. The only solution I can think of is to put a logic in to go into some ignoreception and ignore the ignoring of mobs when only one is in melee range. Like yourself I am not a coder so cannot help, but hopefully this will help the OP who can do some tweaks with this observation.
Hey All, Use Code: Utility.NumberOfMobsNear(m, 30) <= 2 where 30 is range, so you can use Code: Utility.NumberOfMobsNear(m, ExampleRoutineSettings.Instance.CombatRange) < 2 or whatever you need, add it to
I never had this problem. When all the enemies but one died, the bot leap slammed away from it to continue exploring, at which point it was outside of the ignore range and the bot cycloned back towards it and killed it. I'd try to work something out, but my cycloner is retired as I'm playing HC now and the beta comes out in a week anyway. I'll probably be playing a cycloner at some point in the beta or after release of the expansion, in which case I'll make a more complete and effective cyclone routine. For now, this and the modifications suggested by darkbluefirefly will have to do, sorry! e: This code doesn't seem like it would make a difference except to break my changes. The point of ignoring mobs closer than 5 is that cyclone doesn't work on mobs at extremely close range - clicking the button does nothing as the skill effectively has a minimum range. My solution was to ignore those mobs, meaning that if there was an alternate target they'd be attacked and if there was no alternate target the bot would try to explore, get further away from the enemy, stop ignoring it and re-engage. Your change retains the behaviour of attacking other enemies if they are within combat range but further away than 5 units (which my modification already did). However, it means that if a mob is the last one remaining and closer than 5 units, the bot will get stuck trying to attack it which is exactly the behaviour that I added this change to prevent. I'm not sure why the bot didn't explore away for krone6, but I don't believe this is a solution.
if(m.Distance <5) return null; This is what is bugging the bot out with single mobs. The first code snippet is a great fix, but this portion causes it to ignore single mobs unless you're using something like leap.
No, it ignores mobs too "close" somehow, I don't get why since it'll just search for a better target in this case a raise the %usage.
Man. I wonder if this will be effected by beta at all. I am hoping on making a cyclone for farming. Have to test it out in July I guess.
First of all thanks for code replacement, it really helped me alot...... but i still got stucked. So to fix the stuck problem, your Single Target Melee Skill Slot should be Flickerstrike..... problem solved. Been watching the bot for 1 hour now, and not one single stuck. Edit. Do the same thing for AOE Melee skill Slot.
You're a genius! I saw my character flicker twice which would have meant he'd have been stuck twice. I was also in a very narrow hallway which would make it more likely to get stuck. I will post back if I get stuck though it doesn't seem so.
Got stuck in Lunaris near a pillar. Had flicker on both melee and single target melee skill and also tried setting it to fallback. The only reason the bot is still going is due to random mobs coming near me to get me out.
Yeah Flicker will only work with mobs around you. If you have problem getting stucked without any mobs around you, just use the plugin "StuckDetection".
That's the thing, a yellow was right near me and the character did nothing until other mobs showed up.