What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

FightThisWay

kamilche said:
Many dungeon party members were harmed in the creation of FightThisWay.
That was a funny line. It made me lol a little bit in my mouth. \o/ :D
 
Oof, you're right! Lowbie hunters were totally messed up. I fixed them, they should work well now. I watched the char bot to level 7 before I grew bored.

The link on the first page of this thread has the latest download.

Thanks for reporting that!
 
I have developed a custom class called 'FightThisWay'. Like Singular and CLU, this is an 'all things to all people' class that handles combat, pulling, etc.

The code is small, clean (all code in 1 file), and unlike CLU and Singular, uses text files to handle the rotations. This keeps the rotations easy to understand, so you don't have to be a rocket scientist to change it.

All classes and specs are handled, including the latest class - Monks. A full help file containing instructions plus questions/answers is bundled with the product, and can be found here: ReadMe.html

Here's what's great about it:

  1. Easily customizable - simply change the data file to change your play style. Like to open with Rain of Fire? No problem! Like to heal as soon at you get below 100, instead of below 70? Piece of cake. Do you want to never EVER use a certain spell? Just remove those lines.
  2. Change combat style at runtime. After making your changes and saving them, FightThisWay automatically notices the file has changed, and reload it at runtime. There's no need to stop and restart HonorBuddy, to preview changes.
  3. Access spells that aren't currently available in HonorBuddy's Spell Manager. All the missing druid and warlock spells are here, and ready to rock!
  4. Customizing it makes you play different than everyone else, so it's less obvious that you're playing with a bot.
  5. Innovative use of the scroll key to handle automatic movement and facing. When the scroll lock key is on, no movement, targeting, or facing is performed, so you can control it yourself. When the scroll lock key is off, everything's automatic. This comes in handy when you want to do dungeons with others, and want it to handle the rotation, while you handle the movement and game mechanics. With scroll lock on, you can 'steer' the bot, and make target choices yourself. If nature calls and you need a quick bio break, turn scroll lock off and let it do its thing.
  6. Works in all dungeons! For the lower level dungeons, you can pretty much ignore it and assume good stuff's happening. For the higher level trickier dungeons, there are large stretches where it can play unattended, but you will eventually need to come back to manually steer out of Mannoroth's fel flames.
  7. When in party, it automatically follows the tank when out of combat, and your current target when in combat.
  8. When in a party in combat, it automatically rezzes any dead tank or healers, if it can - Death Knight 'Raise Ally', warlock 'Soulstone', druid 'Rebirth', etc. It happens so fast you often don't notice someone went down before they've popped back up again.
  9. In party out of combat, it does the 'cheap' rez on everyone, regardless of whether they're a tank or healer - 'Revive' for druids, 'Redemption' for paladins, etc.
  10. It uses a weighting system during combat, and will stop what it's doing and go save the healer, if it must. If it's a tank and it's losing aggro, it will drop the current mob and target the mob he lost aggro on. When things get wild during combat, I just hit 'scroll lock' and let the bot handle it. My bear runs around like he's rabid, regaining aggro on the things he lost it on, far faster than I could have.
  11. It uses a weighting system to pick who to heal, as well. Some classes should never off-heal - feral druid comes to mind, because it breaks form. But for some classes, it's appropriate - tanks can occasionally toss a heal to the worst hurt player, to take the load off the healer, for instance. The worst hurt player pops to the top, with an extra 10 points given if they're a tank or healer, so they're prioritized first in healing.
  12. It can optionally pull only groups of monsters, ignoring onesie-twosies. This is great when farming for cloth, such as the trogg packs in Deepholm.

I use this a lot when in dungeons. It takes all the 'reflex' work out of partying with others, and let's me concentrate on game mechanics, steering, and chat. However, it's also useful for leveling - when out of party, it will do it all.

The data files end up being a 'laundry list' of how to play your class. The first action that has all the conditions met and executes successfully, wins this round - it stops there, and starts at the top of the file again.

  • Lines that start with two dashes are comments.
  • The commands are broken up into three sections - @COMBAT, @PULL, and @REST. @COMBAT contains what to do when fighting a mob. @PULL contains what to do when pulling a mob. @REST contains what to do when you're otherwise idle.
  • Every line that starts in column 1 on the left, is a command to be executed. All the lines that are indented under that, are conditions that must be true, for that command to be executed.
  • All the conditions indented under a command must be true, for the command to be executed. If the conditions aren't all true, the command will be skipped, and FightThisWay starts looking at the next command in the list.
  • If all the conditions are true, the command is executed. If the command executed successfully, FightThisWay stops there, and starts again at the top.
  • If all the conditions are true, but the command didn't execute (spell on cooldown, for instance), FightThisWay will continue looking down the list for a command to execute.
  • If there are no conditions listed, the command will be executed, but may still return false, causing FightThisWay to continue looking down the list for the next command to execute.

Every condition starts with one of the following prefixes. If a condition doesn't start with one of these prefixes, 'Target' is assumed.
  • Me - the player
  • Tank - the tank when in party, the player when not in a party.
  • Healer - the healer when in party.
  • Target - the mob you're targeting
  • Heal - the party member most in need of healing
  • Pet - your pet
  • Revive - a dead person
  • Cleanse - a diseased person

Here's a sample data file - the ever-popular Paladin tank, coded up as a FightThisWay text file.
Let's go over the '@COMBAT' section of the Paladin Tank in more detail.

  1. It will heal the player ('Me'), if his health is getting too low.
  2. With Heal.Cast Flash of Light, we're casting flash of light on the player whose most in need of healing, only if their health is under 50%. This is the 'take the load off the healer' method I mentioned earlier.
  3. Next, it will remove diseases from the player, if applicable.
  4. Paladin tanks don't have a 'rebirth during combat', so that section is empty.
  5. Next comes targeting - the 'GrabAggro' line causes it to target any mobs it may be losing aggro on. This should only be used for tank classes, when scroll lock is off. For everyone else, 'FindBetterTarget' will find a new target if the current target is dead, or a pet, etc.
  6. Ranged spells that should be cast while running to the target - in this case 'Speed of Light', to increase your run speed towards the target.
  7. Movement - Me.FollowTarget causes you to move to within melee range if you're a melee class, or 20 yards if you're a ranged class.
  8. Stuns are next - disable the current target, if you're fighting a bunch of 'em.
  9. Now, come all the spells that go against target. Notice most of them say just the spellname, such as 'Judgment', instead of 'Target.Cast Judgment.' If you ever see a condition without a prefix, 'Target' is assumed.
  10. If we're fighting more than 1 mob, the target is in melee range, and I'm not running, cast 'Consecration.'
  11. Also cast 'Reckoning' if we have loose or no aggro.
  12. Perform combat buffs such as Blessing of Kings, if we don't already have it, and get the right seals up depending on the situation.
  13. Then come the interrupts, if the target is casting a spell, and that spell is interruptable.
  14. Then comes the normal damage dealers, prioritized in the order you want to see them. If one is on cooldown, it will just fall through to the next, as you'll recall.

Code:
--====================================================================
@COMBAT
--====================================================================

-----------------------------------------------------------------------
-- Healing spells 
-----------------------------------------------------------------------
--Divine Protection
--	Me.Health < 70
Flash of Light
	Me.StackCount("Selfless Healer") >= 3
	Me.Health < 80
Word of Glory
	Me.Health < 70
	Me.StackCount("Bastion of Glory") = 1
Eternal Flame
	Me.Health < 70
	Me.HasAura("Bastion of Glory") = 1
Flash of Light
	Me.HasAura("Supplication") = 1
	Me.Health < 70
Word of Glory
	Me.Health < 60
Guardian of Ancient Kings
	Me.Health < 60
Ardent Defender
	Me.Health < 50
Heal.Cast Flash of Light
	Heal.Health < 50
Me.Cast Lay on Hands
	Me.Health < 40
Divine Shield
	Me.Health < 40

Me.Cleanse
	Me.IsDiseased = 1

-----------------------------------------------------------------------
-- Rebirth
-----------------------------------------------------------------------

-----------------------------------------------------------------------
-- Targeting
-----------------------------------------------------------------------
Me.GrabAggro
	Me.InParty = 1
	Me.ScrollLock = 0

Me.FindBetterTarget
	Me.InParty = 0

Me.FindBetterTarget
	Me.InParty = 0

-----------------------------------------------------------------------
-- Ranged spells (cast while running)
-----------------------------------------------------------------------
Judgment
	Target.Distance > 10
Speed of Light
	Target.Distance > 10

-----------------------------------------------------------------------
-- Movement
-----------------------------------------------------------------------
Me.FollowTarget

-----------------------------------------------------------------------
-- Stuns
-----------------------------------------------------------------------
Fist of Justice
	Target.AddsCount > 1
Rebuke
	Target.Health > 35
	Target.IsCasting = 1
	Target.Interruptable = 1
	Target.Distance < 5

-----------------------------------------------------------------------
-- AOE
-----------------------------------------------------------------------
Consecration
	Target.AddsCount > 1
	Target.Distance < 5
	Me.IsMoving = 0


-----------------------------------------------------------------------
-- Combat Debuffs
-----------------------------------------------------------------------
Reckoning
	Target.Aggro < 4

-----------------------------------------------------------------------
-- Combat buffs
-----------------------------------------------------------------------
Me.Cast Blessing of Kings
	Me.HasAura("Legacy of the Emperor") = 0
	Me.HasAura("Mark of the Wild") = 0
	Me.HasAura("Blessing of Kings") = 0

Me.Cast Righteous Fury
	Me.HasAura("Righteous Fury") = 0

Me.Cast Seal of Righteousness
	Me.HasAura("Seal of Righteousness") = 0
	Target.AddsCount > 1

Me.Cast Seal of Truth
	Me.HasAura("Seal of Truth") = 0
	Target.AddsCount <= 1

Avenging Wrath

-----------------------------------------------------------------------
-- Runners
-----------------------------------------------------------------------

-----------------------------------------------------------------------
-- Interrupts
-----------------------------------------------------------------------
Rebuke
	Target.Distance < 5
	Target.IsCasting = 1
	Target.Interruptable = 1

-----------------------------------------------------------------------
-- Freebies
-----------------------------------------------------------------------

-----------------------------------------------------------------------
-- Normal attack rotation
-----------------------------------------------------------------------
Shield of the Righteous
	Me.HasAura("Divine Purpose") = 1
Crusader Strike
	Target.AddsCount = 1
Hammer of the Righteous
	Target.AddsCount > 1
Judgment
Avenger's Shield
	Me.HasAura("Grand Crusader") = 1
Hammer of the Righteous
	Target.HasAura("Weakened Blows") = 0
Avenger's Shield
--Shield of the Righteous
--	Me.HolyPower >= 3
Hammer of Wrath
Consecration
	Target.Distance < 5
	Me.IsMoving = 0
Holy Wrath
	Target.AddsCount > 1

Me.AutoAttack

--====================================================================
@PULL
--====================================================================

Avenger's Shield
Judgment
Exorcism

Me.FollowTarget

Me.AutoAttack

--====================================================================
@REST
--====================================================================

Me.Eat
	Me.Health < 50
--Divine Protection
--	Me.Health < 70
Guardian of Ancient Kings
	Me.Health < 60
Word of Glory
	Me.Health < 50
	Me.HasAura("Bastion of Glory") = 1
Eternal Flame
	Me.Health < 50
	Me.HasAura("Bastion of Glory") = 1
Ardent Defender
	Me.Health < 30
Me.Cast Flash of Light
	Me.Health < 30
Me.Cast Lay on Hands
	Me.Health < 30
Divine Shield
	Me.Health < 20
Heal.Cast Flash of Light
	Heal.Health < 50

Me.Cleanse
	Me.IsDiseased = 1

Revive.CastOnce Redemption
	Revive.Dead = 1

Me.FollowTarget

Download Link:
FTW

Donation Link:
Um... Any particular reason this is sending me to adfly.com? I just updated about 2 hours ago with no issue at all, now after you said you have another update up, it's sending me directly to adfly.com instead of to a file.
 
My daughter's suggestion - if you wait 5 seconds then click 'skip ad' you will get to the file.
 
My daughter's suggestion - if you wait 5 seconds then click 'skip ad' you will get to the file.
I get a blank screen. Nothing about skipping ads, which is why I asked. I'm familiar with how it works. I've had to do that before. This time, nothing. Just a blank page with a blue banner at the top. Nothing on it though.

Anyway, I'm using the version before the one you just posted. Is it supposed to grind all the time between quests, or is this thing even supposed to be used to run with Quest bot? Just curious because that's what I'm using it with. Leveling my warlock right now, and I just started The Jade Forest. It pulls anything within about a 10 yd range, maybe 15 yds.
 
why Clease.Cast Purify or
Tank.Cast Cleanse
Tank.IsDiseased = 1
they won't cast to clean disease or magic?
and Me.Cast Every Man for Himself it will cast it when you are getting off the mount
and i want to add to use insignia of season 12,is that like
Me.Use Dreadful Gladiator's Medallion of Meditation
Me.IsIncapacitated = 1
but it won't use it,need help
 
I get a blank screen. Nothing about skipping ads, which is why I asked. I'm familiar with how it works. I've had to do that before. This time, nothing. Just a blank page with a blue banner at the top. Nothing on it though.

Anyway, I'm using the version before the one you just posted. Is it supposed to grind all the time between quests, or is this thing even supposed to be used to run with Quest bot? Just curious because that's what I'm using it with. Leveling my warlock right now, and I just started The Jade Forest. It pulls anything within about a 10 yd range, maybe 15 yds.

You might have an adblock of some sort turned on. The old link still works:

FTW.zip
 
why Clease.Cast Purify or
Tank.Cast Cleanse
Tank.IsDiseased = 1
they won't cast to clean disease or magic?
and Me.Cast Every Man for Himself it will cast it when you are getting off the mount
and i want to add to use insignia of season 12,is that like
Me.Use Dreadful Gladiator's Medallion of Meditation
Me.IsIncapacitated = 1
but it won't use it,need help

Make sure you have a tab instead of spaces there in front of the incapacitated check, and have no spaces at the end of that medallion of meditation line. It's a little picky that way.
 
Make sure you have a tab instead of spaces there in front of the incapacitated check, and have no spaces at the end of that medallion of meditation line. It's a little picky that way.
yes, i'm sure that's tab not space

Me.Use Dreadful Gladiator's Medallion of Tenacity
Me.Health < 75
Me.IsIncapacitated = 1
Clease.Cast Purify

won't use Dreadful Gladiator's Medallion of Tenacity, and won't cast Purify
 
OK, I don't have that item so I can't test it. Try doing Me.Use Trinket1 or Me.Use Trinket2 instead.
That 'clease' should be 'cleanse' instead. And it will only check you and the tank - I took it out for others, because checking the auras on 40 people took too long.
 
There is a problem with balance druids shifting to and from moonkin while mounting to go somewhere. It seems like the problem is that the Rest section ticks while mounted. I solved it by removing the following 2 lines from the rest section. Works fine now.

Me.Cast Moonkin Form
Me.MoonkinForm = 0

The class also seems to have trouble pulling any flying creatures, like the birds in kea krak of krasarang wilds. It runs underneath them, and follows them closely, but doesnt attack even though its in range. I'm guessing this has to do with Me.FollowTarget not resolving unless you actually get in melee range?
 
Last edited:
I must say, i love this cc. The fact that it multi dots (shadow priest) when grinding is pure win.
The sad thing is, when i quest i only need to run around and do some looting once in a while, makes me fall asleep in the early morning hours :p

The best thing about this AIO cc is that even I can code a profile to fit my needs, and it only takes like 5 mins.

Keep up the great work :)
 
Last edited:
Mm, wait 5 seconds then click 'Skip Ad.' It's a 'pay you for your clicks' website that routes you to the actual file after 5 seconds.
I'm beginning to think that's not a good idea. :-D
 
OK, I updated it so it's compatible with Auto Angler. So - if you fish, get the latest update.
 
There is a problem with balance druids shifting to and from moonkin while mounting to go somewhere. It seems like the problem is that the Rest section ticks while mounted. I solved it by removing the following 2 lines from the rest section. Works fine now.

Me.Cast Moonkin Form
Me.MoonkinForm = 0

The class also seems to have trouble pulling any flying creatures, like the birds in kea krak of krasarang wilds. It runs underneath them, and follows them closely, but doesnt attack even though its in range. I'm guessing this has to do with Me.FollowTarget not resolving unless you actually get in melee range?

Hm, thanks for the feedback! I've removed Moonkin form from the Rest section, and added the ability to pull flying creatures. Let me know how it works for you. Basically - if I try to walk to the creature and it's in the air, HonorBuddy blacklists it - I have no control over that. So, I do a navigator check first - if it can navigate to the creature, it does, but if it can't, it walks to the highest spot UNDERNEATH the creature. Then, it tries to casts spells.

It it did pull a couple mobs from the sky, but HonorBuddy still blacklisted some mobs, too. I tested with the diseased vultures in Uldum, because I didn't know what birds you were targeting.
 
Target.Cast Mass Dispel
Target.HasAura("Divine Shield") = 1
Target.Cast Mass Dispel
Target.HasAura("Ice Block") = 1
can i use as it?
 
Target.Cast Mass Dispel
Target.HasAura("Divine Shield") = 1
Target.Cast Mass Dispel
Target.HasAura("Ice Block") = 1
can i use as it?

I would make that 'CastOnce' instead of 'Cast', in case the dispel fails. Some spells, such as dispels and dismantle, will return true even if it failed - if you use 'CastOnce', it will only cast it once on that mob in a 2 minute period, and not eat your rotation.
 
Back
Top