• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Pure SWTor

    Discussion in 'Archives' started by Ama, May 9, 2013.

    1. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Most of your questions can be answered by reading the thread, but I'll do my best here.

      1. Yes, it works for healing. Leveling can be a bit rough, because Pure's rotation is built for end-game stuff. Thus, the rotation may be balanced upon an ability you don't have yet. For IA Medicine, as long as you have Slow-release Medpac (whatever that's called for IAs) you should be okay.
      2. Solo questing works fine, but you MUST download and run the BotLoader plugin. Once it's selected, choose HealBot, and keep your companion targeted. It's slow, but the bot heals like a freakin champ. Solo questing without HealBot is a different animal, since the way BW and SWTOR handle companions is not functioning correctly. Several of us are trying to figure out how to make the damn bot recognize the companion, but no luck yet.
      3. Healing is working really well. I can easily heal FPs and OPs, but it'll depend on your gear and your tanks. Some of the rotations use Tank priority systems, but nothing uses Focus. You can use the menu (press F8 in game) to select your tank.

      Let me know how it runs. I don't have an Operative, so I can't test out how that rotation is working. If you see any issues with priority, just post here what needs to be done.
       
    2. tataros

      tataros New Member

      Joined:
      Dec 6, 2011
      Messages:
      268
      Likes Received:
      0
      Trophy Points:
      0
      Hello and thanks for the answer :) I tried the routine with my level 50 Sith Juggernaut and it works fine. I killed some mobs on belsavis. Then I tried to heal with my operative/medicine level 31 in a dungeon but it didn't used any skill at all :( At first I thought that it needs the group members drop under a certain % and I left them fall into 40% but still no heal and then I manually healed them. I did not loaded any plugin, just the bot, the selected the pureswtor routine and hit start.

      I did all steps required, have both run as Admin and in high priority. Also have mem cleaner, e.t.c. I upload a log file in case it helps :)

      Edit: I downloaded the botloader plugin. I run the healbot, get my companion target but it does not heal it..if I take an enemy target it does attack, but he cast the dot (corrosive dart) and then spam Overload shot which isn't good as rotation..(does not use Shiv, backstab, e.t.c.)
       

      Attached Files:

      Last edited: Jun 5, 2014
    3. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Your log shows HLL errors. Those have to do with how SWTOR moves memory around (it's super shitty). Whenever you get those dictionary errors, you'll need to shutdown and restart the bot (sometimes, I've even had to shut down and restart SWTOR to fix it).

      A bigger problem is that you're using the Lockboxes and Autoequip plugins. Get rid of them. Delete their folders completely from the Plugins folder.

      While you do all that, I'm going to take a look at Operative healing, just to make sure it's up-to-date.
       
    4. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Okay, I took a look at the Medicine file and all the healing stuff looked fine. Watch out for those HLL dictionary errors.

      I did, however, modify and improve the rotation. So when you start to DPS with your Medicine OP, you'll notice a large damage improvement.
       
      tataros likes this.
    5. tataros

      tataros New Member

      Joined:
      Dec 6, 2011
      Messages:
      268
      Likes Received:
      0
      Trophy Points:
      0
      Thanks a lot. I am going to delete them now :) Just to know, I re-spec to concealment and it works like a charm! I do run a program called Memory cleaner (I read it to the guides section) http://i.imgur.com/VEhqMxO.png. Maybe this program causes the problems to memory? Anyway I will try it more tomorrow cause now I am already sleeping on my keyboard. Thanks again for the quick answers and help :)
       
    6. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Your memory cleaner has nothing to do with it. Basically, because SWTOR is based on a shitty engine, memory is constantly being moved around. Sometimes, BW loses track of something, and then you get errors and bot crashes. I've been using BW for over a year, and I've never found a fix for this, so you're just going to have to get used to it :(
       
    7. tataros

      tataros New Member

      Joined:
      Dec 6, 2011
      Messages:
      268
      Likes Received:
      0
      Trophy Points:
      0
      I see... well played more today with my concealment and I would like to give you some feedback.

      -First thing, it would be helpful if the routine could use defensive cooldowns. I died in a fight and it could use shield, or use the tactical advantages on Kolto Infusion instead of Laceration when under % Health. I understand that this is not a leveling routine, but is way better than the other I tried. The offensive rotation is faultless. I tried to use some stuns but since they are on global cooldown I had to spam it for few seconds in order to manage to get it off (bot used abilities much faster than me :) ). It would be nice to have a hotkey as "utility" hotkey and when you press it bot uses some utility cooldowns in order (e.g. interrupt > stun > incapisitate).

      -I died in the middle of quest far inside a building and before I even have a chance to call a probe for res the bot automatically selected the other res option and had to go all the way back in (luckily I have stealth or I should fight all mobs again). Maybe this is a bot issue and not a routine one, but if in any case is a routine setting, how can I change it? I tried the BuddyWingSettings.xml in the settings folder but I cannot see any option there.

      That was my suggestion/wishlist :) but otherwise is working great and have no complaints.
       
      Last edited: Jun 6, 2014
    8. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      It should be using Defensive Cooldowns. Here's the code, tell me if I've misspelled something:
      Code:
      Spell.Buff("Adrenaline Probe", ret => Me.EnergyPercent <= 45),
                          MedPack.UseItem(ret => Me.HealthPercent <= 20),
                          Spell.Buff("Stim Boost", ret => Me.BuffCount("Tactical Advantage") <= 2),
                          Spell.Buff("Acid Blade", ret => Me.EnergyPercent >= 70),
                          Spell.Buff("Shield Probe", ret => Me.HealthPercent <= 75),
                          Spell.Buff("Evasion", ret => Me.HealthPercent <= 50)
      There is no utility hotkey, but there is a pause key for moments when you need to stun something. Hit f9 to pause the rotation, hit f9 to restart it again.

      As a default, the bot will auto-res. You can disabled this by hitting f12 and then f12 again (f12 enables/disables all automatic functions, so the first press will turn them all on, second press will turn them all off).
       
    9. tataros

      tataros New Member

      Joined:
      Dec 6, 2011
      Messages:
      268
      Likes Received:
      0
      Trophy Points:
      0
      oops that was too fast :) yea I was checking this and you have indeed these cooldowns :)

      Well it casted Evasion and Shield Probe :( sorry for that. But the 2-3 lacerations it casted at the end, could be Kolto Infusion maybe. But I understand that would not be optimal for Flashpoints and raids. So sorry, it works as intended. One last question can I tweak it somehow and add for example

      Spell.Buff("Kolto Infusion", ret => Me.BuffCount("Tactical Advantage") >= 1 && Me.HealthPercent <= 50) and then add to the Laceration and Carbine Burst the parameter that I must be above 50 Health? Like

      Spell.Cast("Laceration", ret => Me.HasBuff("Tactical Advantage") && Me.HealthPercent >= 51)
      Spell.Cast("Carbine Burst", ret => Me.HasBuff("Tactical Advantage") && Me.HealthPercent >= 51)

      Or it would mess things up a lot? Maybe I can just add Kolto Injection that does not need tactical advantage?

      eg. Spell.Buff("Kolto Injection", ret => Me.HealthPercent <= 50)

      And last edit : maybe I can add both. Kolto infusion if I have Tactical Advantage and kolto injection if I am not..

      Spell.Buff("Kolto Injection", ret => Me.HealthPercent <= 50 && Me.BuffCount("Tactical Advantage") = 0)

      Another thing I found is that when I move around in stealth sometime I must select a target either by curiocity or to use sleep dart and pass from a pack of mobs. The bot cast Stim Boost and essentially waste the cooldown. So another suggestion I have is to put into Stim boost to use when not in stealth.

      Spell.Buff("Stim Boost", ret => Me.BuffCount("Tactical Advantage") <= 2 && !Me.HasBuff("Stealth"))
       
      Last edited: Jun 6, 2014
    10. tataros

      tataros New Member

      Joined:
      Dec 6, 2011
      Messages:
      268
      Likes Received:
      0
      Trophy Points:
      0
      also how can we check if target is silver or above? You could add stun into it (Debilitate). Otherwise, if the bot don't have a way to recognize that, you can add Debilitate (stun) as a defensive cooldown Spell.Buff("Debilitate", ret => Me.HealthPercent <= 50)
       
    11. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      All of your suggestions are really good, but they're not fitting with the original mission of PureSWTOR. It's meant as an end-game FP and OP bot, which means that you won't be doing much self-healing (since you'll have healers) and you (the player) will need to time and properly control stuns.

      Here's what I would suggest: edit the file on your home computer. Make a copy of this edit, so you can update PureSWTOR without losing anything.

      As for your coding suggestions, you're on the right track, but you'll need a few tweaks to your code:

      Code:
      Spell.Buff("Kolto Infusion", ret => Me.BuffCount("Tactical Advantage") >= 1 && Me.HealthPercent <= 50)
      Change the Spell.Buff to Spell.Heal

      Code:
      Spell.Cast("Laceration", ret => Me.HasBuff("Tactical Advantage") && Me.HealthPercent >= 51)
      This works

      Code:
      Spell.Cast("Carbine Burst", ret => Me.HasBuff("Tactical Advantage") && Me.HealthPercent >= 51)
      So does this

      Code:
      Spell.Buff("Kolto Injection", ret => Me.HealthPercent <= 50)
      You need to change Spell.Buff to Spell.Heal

      Code:
      Spell.Buff("Kolto Injection", ret => Me.HealthPercent <= 50 && Me.BuffCount("Tactical Advantage") = 0)
      Again, you need to change Spell.Buff to Spell.Heal. You need == before the number, not just =

      My best suggestion would be to put this code into your HandleCooldowns section. As everything is framelocked, you won't need to make any changes to your Carbine Burst or Laceration calls.
      Code:
      Spell.Heal("Kolto Infusion", ret => Me.BuffCount("Tactical Advantage") >= 1 && Me.HealthPercent <= 50),
      Spell.Buff("Kolto Injection", ret => Me.HealthPercent <= 50 && Me.BuffCount("Tactical Advantage") == 0),
       
    12. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Debilitate isn't a buff, so it would be spell.cast. I wrote a call for silvers and golds: Me.CurrentTarget.StrongorGreater() and Me.CurrentTarget.BossorGreater()

      So your code for Debilitate could look like this:
      Code:
      Spell.Cast("Debilitate", ret => Me.HealthPercent <= 50 && Me.CurrentTarget.StrongorGreater())
       
    13. tataros

      tataros New Member

      Joined:
      Dec 6, 2011
      Messages:
      268
      Likes Received:
      0
      Trophy Points:
      0
      Thanks a lot :) I ll change that now. Should I put Debilitate on the rotation section? Also another question. If bot try to cast Kolto Infusion and I move and cancel it for a reason (need to move out of bad stuff), will it try to cast it again on the next frame/opportunity? Sorry I don't know exactly how it works thats why so many questions. I have also removed Acid Blade from rotation until I get it, cause it does not cast Backstab. Thanks again.

      PS. I fully understand the purpose of this routine and in no way I am implying that is not working as intented :) The DPS part is awesome. I am just trying to tweak it for my purpose :)

      Edit: After the tweaks I cannot load the routine :)

      This is the tweaked file. I did not had any red in the file, and I correctly used the "," on the rotations..don't know what I did wrong. I also tried to delete the Debilitate completely, but still receive the error.

      Also I see in the Sith Juggernaut file you have a sectin for Interrupts

      would be nice to have this section to concealment too and use debilitate for Interrupts instead of using it on StrongorGreater.
       

      Attached Files:

      Last edited: Jun 6, 2014
    14. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Whoops, a couple of small syntax mistakes on my part :D

      Code:
      Spell.Heal("Kolto Infusion", 50, ret => Me.BuffCount("Tactical Advantage") >= 1),
      Spell.Heal("Kolto Injection", 40, ret => !Me.HasBuff("Tactical Advantage")),
      Put that in the cooldowns section

      Code:
      //Interrupts
      Spell.Cast("Debilitate", ret => Me.CurrentTarget.StrongOrGreater()),
      Put that right under the movement section of the single target rotation.

      The interrupts "section" isn't really a section at all. It's just part of the single target rotation. I used the // to block it off and make the code easier to read, but from the bot's perspective it's all the same section. If you want to use it for interrupts, use the Me.CurrentTarget.IsCasting syntax that you saw in the Juggernaut routine.
       
    15. tataros

      tataros New Member

      Joined:
      Dec 6, 2011
      Messages:
      268
      Likes Received:
      0
      Trophy Points:
      0
      /bow :)

      Loading success :) Can't wait to try the other classes too hehe and mess with them around (don't afraid, I won't bother you :) I ll go with try and error method)

      EDIT: the Debilitate works fine, but the healing spells are not being casted. Last battle I reached down to under 40% Health and did not used the healing spells. Maybe I should move them to rotation instead of cooldowns?
      Edit2: I moved them to the rotation section under hidden strike. The bot loads successfully but still the abilities are not used :).
       

      Attached Files:

      Last edited: Jun 6, 2014
    16. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      No, I derped again. You have two choices here, either one will work fine (unless I'm derping again, it's still early here).

      1. At the very bottom of the file, you'll see a section called "public override Composite PVERotation" In that section, the routine identifies the order it selects actions. Right below "Spell.WaitforCast()," You'll want to put a new line:
      HealingManager.AcquireHealTargets
      So that the new section looks like this:
      Code:
      public override Composite PVERotation
              {
                  get
                  {
                      return new LockSelector(
                          Spell.WaitForCast(),
                          HealingManager.AcquireHealTargets,
                          HandleCoolDowns,
                          HandleAoE,
                          new Decorator(ret => Me.IsStealthed, HandleStealth),
                          new Decorator(ret => Me.EnergyPercent < 60, HandleLowEnergy),
                          new Decorator(ret => Me.EnergyPercent >= 60 && !Me.IsStealthed, HandleSingleTarget)
                      );
                  }
              }
      2. If you don't want to do that, you can instead simply change the two healing spells. Instead of Spell.Heal, you'll use Spell.Cast. This also means you'll need to re-insert the health percentage calls, so it'll look like:
      Code:
      Spell.Cast("Kolto Infusion", ret => Me.HealthPercent <= 50),
      This will always cast on yourself since your current target will be hostile.

      Although the second option takes a bit more time, I actually recommend it over the first action. It'll be cleaner, and you'll be avoiding the step of checking healing targets constantly. On top of that, the bot will never heal a teammate, only yourself. Let me know if this doesn't work.
       
    17. tataros

      tataros New Member

      Joined:
      Dec 6, 2011
      Messages:
      268
      Likes Received:
      0
      Trophy Points:
      0
      Thanks again. I added the line

      HealingManager.AcquireHealTargets,

      to the bottom as you said and I am going to try right now. I ll use 95 health percent just t ocheck if spell is casted and will inform you right away :)

      EDIT: Is working :)

      Edit2: An unexpected bonus :) It also cast heal to companion now without me having the Botloader/Healbot plugin and without take target my companion companion. Maybe it checked my target's target(companion)? Anyway this is a great thing hehe :) I ll add the logfile in case you understand how it healed the companion because reading through forums this is a "major problem" (many people complain that bot does not heal companion in the other routines). The healing happened just before I stopped the bot: [16:15:57.322 N]
       

      Attached Files:

      Last edited: Jun 6, 2014
    18. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      No, it should heal the companion. The "major problem" comes when the bot "loses" the companion and can't re-target him. Although it only happens sometimes, it can be a major issue when it does (you sit there healing yourself while the companion slowly dies).

      As a bonus, the way you've done it, he will toss group-mates a needed heal when you're running FPs and OPs
       
    19. tataros

      tataros New Member

      Joined:
      Dec 6, 2011
      Messages:
      268
      Likes Received:
      0
      Trophy Points:
      0
      Also I can see it have some work in pvp with all the healing and the stun :) I could replace the strongorgreater with Me.CurrentTarget.IsCasting for my stun and with all the self healing priority it could work somehow :)
       
    20. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Yeah, you could (and probably should) put a Me.CurrentTarget.IsCasting check in there. Otherwise it'll just stun the target right away
       

    Share This Page