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!

Default Combat Discussion

Have you made an exception in your AV for both buddywing and swtor? Even if you don't think you have any installed it's likely that you have windows defender installed.

Another possible fix is running Buddywing and SWTOR as a "high" priority from your CPU. There's some guides around the forum for how to do that.
 
Another possible fix is running Buddywing and SWTOR as a "high" priority from your CPU. There's some guides around the forum for how to do that.

I have that on all clients and I use Windows Security Essentials as AV. I am only noticing this massive FPS drop with Shadow Serenity. I have other classes as well and working ok.

Guess I can try your Hatred file for FPS drop as I know I have some Sith Assassin account in preffered status laying somewhere :)
 
Does Anyone know how i can code, that a spell may only be used if another spell is ready?
Or is it possible to chain spells together?
Problem what i am facing is the following spell:
Code:
Spell.Cast("Precision", ret => Me.CurrentTarget.Distance <= 0.4f),
This may only be used if Master Strike or Dispatch is ready. Only then may it fire.
If its used everything else must be ignored which i can code in all spells only to fire if i have NOT the buff Precision, but only Master strike or dispatch.
And preferably create a group of spells to be cast in order.
Now it does way to much other spells in between which is obviously not good.
 
I think your on the right track to set "and not has buff x" at the end of each spell that it wont benefit from. Spells are cast in the order they are coded same as the way all code is read by software. When I did a dependency in the routine I fixed up I put the cast with the debuff I wanted directly above the code for the cast that needed that debuff so they were grouped and would fire one after another.
 
Does Anyone know how i can code, that a spell may only be used if another spell is ready?
Or is it possible to chain spells together?
Problem what i am facing is the following spell:
Code:
Spell.Cast("Precision", ret => Me.CurrentTarget.Distance <= 0.4f),
This may only be used if Master Strike or Dispatch is ready. Only then may it fire.
If its used everything else must be ignored which i can code in all spells only to fire if i have NOT the buff Precision, but only Master strike or dispatch.
And preferably create a group of spells to be cast in order.
Now it does way to much other spells in between which is obviously not good.

Try:
Code:
AbilityManager.CanCast("Master Strike", Me.CurrentTarget) || AbilityManager.CanCast("Dispatch", Me.CurrentTarget)

That will return true if either one of those abilities can currently be used. Hope this helps,

- Jon
 
Try:
Code:
AbilityManager.CanCast("Master Strike", Me.CurrentTarget) || AbilityManager.CanCast("Dispatch", Me.CurrentTarget)

That will return true if either one of those abilities can currently be used. Hope this helps,

- Jon
Thanks for your code, but i get error CS0103 Name AbilityManager doesnt exist in the current context.
Did i forgot a reference?
 
Thanks for your code, but i get error CS0103 Name AbilityManager doesnt exist in the current context.
Did i forgot a reference?

Yes! That's my fault. Resharper makes me LAZY!

using Buddy.CommonBot;

There is the proper reference.

- Jon
 
Thanks for your code, but i get error CS0103 Name AbilityManager doesnt exist in the current context.
Did i forgot a reference?

If you're going to get more serious about coding plugins/combat routines, you should start developing with Visual Studio Community. I wrote a short tutorial on how to add Buddywing.exe as a reference in VS earlier in this thread, so VS will let you know if your current code will compile in Buddywing or not (and automatically import references you need and all kinds of awesome stuff)
 
Yes! That's my fault. Resharper makes me LAZY!

using Buddy.CommonBot;

There is the proper reference.

- Jon
Again, big thanks!!!
Will test This later.

Problem is, I put most spells together, but the bot is still doing to much in between.
With this I can hopefully control it more.
 
If you're going to get more serious about coding plugins/combat routines, you should start developing with Visual Studio Community. I wrote a short tutorial on how to add Buddywing.exe as a reference in VS earlier in this thread, so VS will let you know if your current code will compile in Buddywing or not (and automatically import references you need and all kinds of awesome stuff)
Yeah I know. It's more I'm used to notepad++ for underway when im not home.
VS is installed on a VM, cause i had troubles with BW, every time i installed it.
Anyways I saw the guide and marked it as very interesting for learning and using soon.
Thanks again!
 
AbilityManager.CanCast("Master Strike", Me.CurrentTarget) || AbilityManager.CanCast("Dispatch", Me.CurrentTarget

Yes! That's my fault. Resharper makes me LAZY!

using Buddy.CommonBot;

There is the proper reference.
-Jon


Does it require "Me.CurrentTarget"?

There are some specs with burst windows that get energy starved quickly with the current rotation. I wonder if I can do something like...

Code:
new Decorator(ret => Me.ResourcePercent() >= 80 || AbilityManager.CanCast("Vent Heat"), 
                        new LockSelector(
                           Spell.Cast("Energy Burst", ret => Me.BuffCount("Energy Lode") == 4),
                           Spell.Cast("Rail Shot", ret => Me.CurrentTarget.HasDebuff("Bleeding (Retractable Blade)") && Me.HasBuff("Prototype Particle Accelerator")),
                           Spell.DoT("Retractable Blade", "Bleeding (Retractable Blade)"),
                           Spell.Cast("Thermal Detonator"),
                           Spell.Cast("Rocket Punch"),
                           Spell.Cast("Magnetic Blast", ret => Me.Level >= 26),
                           Spell.Cast("Flame Burst", ret => Me.Level < 26)
                            )),
 
Does it require "Me.CurrentTarget"?

There are some specs with burst windows that get energy starved quickly with the current rotation. I wonder if I can do something like...

Code:
new Decorator(ret => Me.ResourcePercent() >= 80 || AbilityManager.CanCast("Vent Heat"), 
                        new LockSelector(
                           Spell.Cast("Energy Burst", ret => Me.BuffCount("Energy Lode") == 4),
                           Spell.Cast("Rail Shot", ret => Me.CurrentTarget.HasDebuff("Bleeding (Retractable Blade)") && Me.HasBuff("Prototype Particle Accelerator")),
                           Spell.DoT("Retractable Blade", "Bleeding (Retractable Blade)"),
                           Spell.Cast("Thermal Detonator"),
                           Spell.Cast("Rocket Punch"),
                           Spell.Cast("Magnetic Blast", ret => Me.Level >= 26),
                           Spell.Cast("Flame Burst", ret => Me.Level < 26)
                            )),


It does require a TorCharacter unit to be listed there, you could however put "Me" there

So the top line would look like:
Code:
new Decorator(ret => Me.ResourcePercent() >= 80 || AbilityManager.CanCast("Vent Heat", Me),
instead of Me.CurrentTarget. I think all its doing is making sure that you have something to cast the spell on before returning true, if its a self cast or a non target spell, using Me there will have it return true if the spell is usable regardless of your targets state.

- Jon
 
Last edited:
So in reply to Jon for the code he gave, my experience with it:
Code:
AbilityManager.CanCast("Master Strike", Me.CurrentTarget)
The Me.CurrentTarget is obviously our target, if we use a buff, i changed this to Me
BUT the using Buddy.Commonbot part interferes with another part of the code (at least this was the case in sentinel combat routine).
So i changed it to this:
Code:
Buddy.Commonbot.AbilityManager.CanCast("Master Strike", Me.CurrentTarget)
This code fires perfectly, but in my case i still couldnt get the bot to fire the perfect sequence. In most cases it would fire the perfect sequence, but the difference between human interaction and the bot is still way off.
Example, for sentinel combat we want to fire Zen-Precision-Masterstrike-Clashing blast and preferably all in the 3 sec timeframe precision gives. But as the bot sees the buff different from the spells, the are fired at wrong times.
so what i get is Precision-Zen-Master strike - other ability, so my window is shorter and doesnt fire. Also spells that should fire, arent fired for some reason and the bot chooses a less effective spell that can Always fire.
Weird. So what i did is reverse to default, and the button mashing code created higher dps then the code that should be perfect ... sigh.
What i actually miss is, to group spells together, so they are sequenced. but i think thats not doable.
 
Last edited:
Why not create a new Decorator within the Single Target rotation? You could put it at the top, call it "Precision" and have the conditional be that the Precision buff is active. Then it would work through that sequence in its entirety, before reverting to the normal rotation when we no longer have the Precision buff. With Precision, you can use the CanCast stuff to make sure it only fires when Master Strike is off-CD.

As an example of what I'm talking about, look at the old Pure files and see how we handled Low Energy/High Heat.
 
Why not create a new Decorator within the Single Target rotation? You could put it at the top, call it "Precision" and have the conditional be that the Precision buff is active. Then it would work through that sequence in its entirety, before reverting to the normal rotation when we no longer have the Precision buff. With Precision, you can use the CanCast stuff to make sure it only fires when Master Strike is off-CD.

As an example of what I'm talking about, look at the old Pure files and see how we handled Low Energy/High Heat.
Thanks for the info !!
Gonna see if this works the way i want it and hope :)
 
Basically, the combat bot is simply stopping after just a few actions.

There is no error code given, it simply stops. It will work again if a new target is selected, but other that is seems as if the bot essentially goes through one rotation on each target.

This only happens on one specific character, level 17 sith carnage marauder.

I have tried deleting the compiled assemblies folder, as well as that character's folder in the settings folder.


View attachment 2015-07-18 10.23.txt



UPDATE: Deleting the Buddy monitor folder stopped the issue for a short time, but now its back.

[HIDE][08:55:39.615 N] Starting Buddy Wing v1.0.1215.699
[08:55:42.340 N] Logging in...
[08:55:43.212 N] T: 5247414083850946862 H: 3994077850
[08:55:43.212 N] Login Success!
[08:55:44.256 D] First CPU: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
[08:55:44.257 D] OS Version: Windows NT 6.2.9200.0
[08:55:44.257 D] App Path: C:\Users\Cassidy\Desktop\Buddy Wing\Buddywing.exe
[08:55:46.392 D] Current build number: 1009411
[08:55:46.393 D] Loading client.gom..
[08:55:46.505 D] Loaded client.gom!
[08:55:47.307 D] Took 796ms to get the nodes list.
[08:55:47.307 D] There are 109546 nodes.
[08:55:47.307 D] DomList has 110417/196613
[08:55:47.618 D] _BaseClient handled.
[08:55:47.618 D] utlStaticDefinitions handled.
[08:55:47.620 D] strOracle handled.
[08:55:47.621 D] ablOracle handled.
[08:55:47.621 D] gmOracle handled.
[08:55:47.621 D] Debug Draw Oracle added.
[08:55:47.621 D] dbgDrawOracle handled.
[08:55:47.621 D] mapOracle handled.
[08:55:47.622 D] chrOracle handled.
[08:55:47.622 D] qstOracle handled.
[08:55:47.642 D] spnOracle handled.
[08:55:47.643 D] cnvOracle handled.
[08:55:47.643 D] ctlOracle handled.
[08:55:47.644 D] _InputHandler handled.
[08:55:47.654 D] scSpaceCombatOracle handled.
[08:55:47.699 D] ablTrainerOracle handled.
[08:55:47.702 D] prfOracle handled.
[08:55:48.885 D] guiApiGfx handled.
[08:55:48.927 D] Adding input layer ctlInputCamera - 3C1180AF
[08:55:48.927 D] sysInputLayer handled.
[08:55:48.927 D] Adding input layer ctlInputMouse - 3C1180BC
[08:55:48.927 D] sysInputLayer handled.
[08:55:48.927 D] Adding input layer ctlInputMovement - 3C1180C0
[08:55:48.927 D] sysInputLayer handled.
[08:55:48.928 D] Adding input layer ctlInputVehicle - 3C1180D5
[08:55:48.928 D] sysInputLayer handled.
[08:55:48.928 D] Adding input layer ctlInputTargetting - 3C1180E4
[08:55:48.928 D] sysInputLayer handled.
[08:55:48.930 D] Adding input layer ctlInputGame - 3C118107
[08:55:48.930 D] sysInputLayer handled.
[08:55:48.932 D] Adding input layer ctlInputUI - 3C118167
[08:55:48.932 D] sysInputLayer handled.
[08:55:48.934 D] Adding input layer ctlInputConvo - 3C11819A
[08:55:48.934 D] sysInputLayer handled.
[08:55:48.934 D] Adding input layer ctlInputCharacterSelection - 3C1181AC
[08:55:48.934 D] sysInputLayer handled.
[08:55:48.935 D] Adding input layer ctlInputCreditsScreen - 3C1181B2
[08:55:48.935 D] sysInputLayer handled.
[08:55:48.935 D] Adding input layer ctlInputUtility - 3C1181B4
[08:55:48.935 D] sysInputLayer handled.
[08:55:48.935 D] Adding input layer ctlInputLoadingScreen - 3C1181BF
[08:55:48.935 D] sysInputLayer handled.
[08:55:48.935 D] Adding input layer ctlInputMacroBinoculars - 3C1181C1
[08:55:48.935 D] sysInputLayer handled.
[08:55:48.935 D] Adding input layer ctlInputSCFFVehicle - 3C1181CD
[08:55:48.936 D] sysInputLayer handled.
[08:55:49.473 D] Took 2166ms to process the node list
[08:55:49.987 N] User is a Warrior
[08:55:51.024 N] Advanced Class: Marauder / Discipline: Carnage
[08:55:51.024 V] Routine Path: Routines
[08:55:51.732 D] Reloading AssemblyLoader<Buddy.CommonBot.ICombat> - Initializing
[08:55:52.447 N] Medpac Created!
[08:55:52.449 D] Reloading AssemblyLoader<Buddy.CommonBot.ICombat> - RoutineManager.Reload !THROTTLED!
[08:55:52.449 D] Routines were reloaded. New routine list:
[08:55:52.449 D] DefaultCombat v0.0.0.0
[08:55:52.456 N] [DefaultCombat] Level: 22
[08:55:52.456 N] [DefaultCombat] Class: Warrior
[08:55:52.456 N] [DefaultCombat] Advanced Class: Marauder
[08:55:52.470 N] [DefaultCombat] Discipline: Carnage
[08:55:52.486 N] [DefaultCombat] [Hot Key][F7] Toggle AOE
[08:55:52.486 N] [DefaultCombat] [Hot Key][F8] Load UI
[08:55:52.486 N] [DefaultCombat] [Hot Key][F12] Set Tank
[08:55:52.486 N] [DefaultCombat] Rotation Selected : Marauder Carnage
[08:55:52.522 N] Chose DefaultCombat as your combat routine.
[08:55:52.522 N] [DefaultCombat] Level: 22
[08:55:52.522 N] [DefaultCombat] Class: Warrior
[08:55:52.522 N] [DefaultCombat] Advanced Class: Marauder
[08:55:52.536 N] [DefaultCombat] Discipline: Carnage
[08:55:52.550 N] [DefaultCombat] [Hot Key][F7] Toggle AOE
[08:55:52.550 N] [DefaultCombat] [Hot Key][F8] Load UI
[08:55:52.550 N] [DefaultCombat] [Hot Key][F12] Set Tank
[08:55:52.550 N] [DefaultCombat] Rotation Selected : Marauder Carnage
[08:55:52.568 D] Reloading AssemblyLoader<Buddy.Common.Plugins.IPlugin> - Initializing
[08:55:52.943 D] Initializing Use Lockboxes
[08:55:52.945 D] There are 1 plugins.
[08:55:53.172 N] Current bot set to Combat Bot
[08:55:53.176 N] Loaded profile
[08:55:53.188 N] Sell quality set to Cheap.
[08:55:53.193 N] Buddy Wing: The Old Robot is ready!
[08:56:11.481 D] Start/Stop Button Clicked!
[08:56:11.482 D] Forcing profile reload. -- Temporary fix for behavior cache issues during start/stop.
[08:56:11.677 N] Current bot set to Combat Bot
[08:56:11.678 N] Loaded profile
[08:56:11.678 D] Starting bot Combat Bot
[08:56:11.681 D] Added new hook [Pull] ee13d19e-697e-4692-a5fa-5b6d2e3e77d1
[08:56:11.681 D] Added new hook [RoutineCombat] 85d29555-f01e-4a82-a239-bf6c3bc5f82d
[08:56:11.682 D] Added new hook [Combat_OOC] ace25bcf-6dd0-4d42-a901-c289aae2b2a3
[08:56:11.682 D] Added new hook [Combat_Pull] ee13d19e-697e-4692-a5fa-5b6d2e3e77d1
[08:56:11.682 D] Added new hook [Combat_Combat] 85d29555-f01e-4a82-a239-bf6c3bc5f82d
[08:56:11.683 D] Replaced hook [TreeStart] 854d7ee5-8040-43d1-9883-5a4e679907d4
[08:56:11.684 D] Spooling up bot thread.
[08:56:11.684 D] Bot thread started.
[08:56:11.834 N] [DefaultCombat] >> Casting << Cloak of Pain
[08:56:12.055 N] [DefaultCombat] >> Casting << Saber Ward
[08:56:16.296 N] [DefaultCombat] >> Casting << Assault
[08:56:35.729 N] [DefaultCombat] >> Casting << Battering Assault
[08:56:36.589 N] [DefaultCombat] >> Casting << Unleash
[08:56:38.480 N] [DefaultCombat] >> Casting << Berserk
[08:56:41.480 N] [DefaultCombat] >> Casting << Assault
[/HIDE]
 
Can you list what abilities you have at 17? I'm guessing there's some issue with a proc dependency that's causing it to lock up.
 
I got the attack one target but wouldn't attack another until you tabbed to a new target, couldn't figure out the root cause either. Was with my op using combat bot. I did try removing the disable movement if using combat bot which did allow it to now run to a target I selected but in a group it only seemed to target one and kill one.

Edit: perhaps I should mention targeting and attacking work flawless when using a normal profile however when using the combat bot profile from kicks this happens.
 
Last edited:
I got the attack one target but wouldn't attack another until you tabbed to a new target, couldn't figure out the root cause either. Was with my op using combat bot. I did try removing the disable movement if using combat bot which did allow it to now run to a target I selected but in a group it only seemed to target one and kill one.

Edit: perhaps I should mention targeting and attacking work flawless when using a normal profile however when using the combat bot profile from kicks this happens.

Working as intended. You do the moving and targeting and bot only does rotations on targeted mobs. Perfect for those losers using a bot for PVP because they will never ever possess the skill set to handle pvp themselves (big teasing grin and ducking incoming missiles).
But for PVE purposes it does not work as well, since we might actually want the bot to auto target and loot esp. when we multibox and we want the bot to follow the leader as in an Isboxer environment.
Jon or Cryogenesis or one of the others might give us a better solution, but for now a really crude way for when we want something similar to the old 'Unpure" combat routine that would actually target and move and loot and make tea etc., while we handle movement, would perhaps be to make the bot believe it is questing. That is because of the way the bot now functions with the default routine. IOW write a fake questing profile similar to this:

<Profile>
<Name>Combat Bot</Name>
<ForceAlignment Type="Dark" AutoSkip="True" />

<Questing>
<If Condition="((not HasQuest(0xE000D81B7BFA4EB9)) and (not IsQuestComplete(0xE000D81B7BFA4EB9)))">
</If>
</Questing>
</Profile>]
 
Last edited:
I'll give that a whirl later today but yeah that should work in theory.

Edit: Yeah that works great thanks.
 
Last edited:
Back
Top