• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Default Combat Discussion

    Discussion in 'Combat Routines' started by Ama, Jan 5, 2015.

    1. ShinobiAoshi

      ShinobiAoshi Member

      Joined:
      Jul 21, 2010
      Messages:
      143
      Likes Received:
      2
      Trophy Points:
      18
      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.
       
    2. pindleskin

      pindleskin Community Developer

      Joined:
      Oct 24, 2012
      Messages:
      1,124
      Likes Received:
      2
      Trophy Points:
      38
      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 :)
       
    3. Cryogenesis

      Cryogenesis Moderator Moderator

      Joined:
      Jul 13, 2010
      Messages:
      2,128
      Likes Received:
      13
      Trophy Points:
      38
      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.
       
    4. wired203

      wired203 Community Developer

      Joined:
      Jan 22, 2015
      Messages:
      391
      Likes Received:
      1
      Trophy Points:
      18
      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.
       
    5. Jon310

      Jon310 Member

      Joined:
      Jan 15, 2010
      Messages:
      368
      Likes Received:
      8
      Trophy Points:
      18
      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
       
    6. Cryogenesis

      Cryogenesis Moderator Moderator

      Joined:
      Jul 13, 2010
      Messages:
      2,128
      Likes Received:
      13
      Trophy Points:
      38
      Thanks for your code, but i get error CS0103 Name AbilityManager doesnt exist in the current context.
      Did i forgot a reference?
       
    7. Jon310

      Jon310 Member

      Joined:
      Jan 15, 2010
      Messages:
      368
      Likes Received:
      8
      Trophy Points:
      18
      Yes! That's my fault. Resharper makes me LAZY!

      using Buddy.CommonBot;

      There is the proper reference.

      - Jon
       
    8. ShinobiAoshi

      ShinobiAoshi Member

      Joined:
      Jul 21, 2010
      Messages:
      143
      Likes Received:
      2
      Trophy Points:
      18
      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)
       
    9. Cryogenesis

      Cryogenesis Moderator Moderator

      Joined:
      Jul 13, 2010
      Messages:
      2,128
      Likes Received:
      13
      Trophy Points:
      38
      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.
       
    10. Cryogenesis

      Cryogenesis Moderator Moderator

      Joined:
      Jul 13, 2010
      Messages:
      2,128
      Likes Received:
      13
      Trophy Points:
      38
      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!
       
    11. 056

      056 New Member

      Joined:
      May 21, 2014
      Messages:
      67
      Likes Received:
      1
      Trophy Points:
      0

      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)
                                  )),
      
      
       
    12. Jon310

      Jon310 Member

      Joined:
      Jan 15, 2010
      Messages:
      368
      Likes Received:
      8
      Trophy Points:
      18

      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: Jul 16, 2015
    13. Cryogenesis

      Cryogenesis Moderator Moderator

      Joined:
      Jul 13, 2010
      Messages:
      2,128
      Likes Received:
      13
      Trophy Points:
      38
      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: Jul 17, 2015
    14. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      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.
       
    15. Cryogenesis

      Cryogenesis Moderator Moderator

      Joined:
      Jul 13, 2010
      Messages:
      2,128
      Likes Received:
      13
      Trophy Points:
      38
      Thanks for the info !!
      Gonna see if this works the way i want it and hope :)
       
    16. Threadsoffate

      Threadsoffate Member

      Joined:
      Jul 28, 2014
      Messages:
      67
      Likes Received:
      0
      Trophy Points:
      6
      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]
       
    17. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      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.
       
    18. wired203

      wired203 Community Developer

      Joined:
      Jan 22, 2015
      Messages:
      391
      Likes Received:
      1
      Trophy Points:
      18
      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: Jul 18, 2015
    19. strepie

      strepie New Member

      Joined:
      Jun 11, 2012
      Messages:
      290
      Likes Received:
      2
      Trophy Points:
      0
      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: Jul 18, 2015
    20. wired203

      wired203 Community Developer

      Joined:
      Jan 22, 2015
      Messages:
      391
      Likes Received:
      1
      Trophy Points:
      18
      I'll give that a whirl later today but yeah that should work in theory.

      Edit: Yeah that works great thanks.
       
      Last edited: Jul 19, 2015

    Share This Page