• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • PureSWTOR Rotation

    Discussion in 'Buddy Wing Forum' started by lnteractive, Oct 31, 2013.

    1. lnteractive

      lnteractive New Member

      Joined:
      Oct 31, 2013
      Messages:
      4
      Likes Received:
      0
      Trophy Points:
      0
      Hello guys, I'm quite new to Wing Buddy (Bought member to test this out).

      Due to me starting to have arthritis from having to raid day and night mashing all my buttons, I resorted to using a rotational bot to go easy on my fingers. I've tried scripting using AHK but they're nowhere near as efficient as what I've tested so far.

      I do have some understanding of C++ coding and all codes usually structure the same.

      I came to a simple understanding of how rotational bot works however these are my questions, I hope somebody would be able to answer them and I do apologize for sounding noob, yes I've read through the entire thread.

      Q1: What is the difference between Pure SWTOR and Unpure SWTOR, from importing the SVN directly to my WingBuddy rotation folder, those 2 options seem to come along in the PURE SVN.
      I've only used Pure.

      Q2: I came to an understanding that all I need to do is choose a blank profile (That means it doesn't grind, it just does rotation for you), choose your CR (Combat rotation ), and target monsters you want to start performing monsters on. Anything I'm missing out?

      Q3: Currently, I'm running an annihilation marauder, the bot has specifically detected this and therefore read the file annihilation.cs. This is the file:

      Code:
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using Buddy.BehaviorTree;
      using Buddy.Swtor;
      using Buddy.Swtor.Objects;
      using PureSWTor.Helpers;
      using PureSWTor.Core;
      using PureSWTor.Managers;
      
      using Action = Buddy.BehaviorTree.Action;
      using Distance = PureSWTor.Helpers.Global.Distance;
      
      namespace PureSWTor.Classes.Marauder
      {
          class Annihilation : RotationBase
          {
              #region Overrides of RotationBase
      
              public override string Revision
              {
                  get { return ""; }
              }
      
              public override SWTorSpec KeySpec
              {
                  get { return SWTorSpec.MarauderAnnihilation; }
              }
      
              public override string Name
              {
                  get { return "Marauder Annihilation by aquintus"; }
              }
      
              public override Composite PreCombat
              {
                  get
                  {
                      return new PrioritySelector(
                          Spell.Buff("Juyo Form"),
                          Spell.Buff("Unnatural Might", ret => !LazyRaider.MovementDisabled),
                          //Scavenge.ScavengeCorpse,
                          Rest.HandleRest 
                          );
                  }
              }
      
              private Composite HandleCoolDowns
              {
                  get
                  {
                      return new PrioritySelector(
      					Spell.Buff("Unleash"),
                          Spell.Buff("Cloak of Pain", ret => Me.HealthPercent <= 50),
                          Spell.Buff("Undying Rage", ret => Me.HealthPercent <= 10),
                          Spell.Buff("Saber Ward", ret => Me.HealthPercent <= 30)
                          );
                  }
              }
      
              private Composite HandlePull
              {
                  get
                  {
                      return new Decorator(
                          ret => !Me.InCombat,
                          new PrioritySelector(
                              Spell.Cast("Force Charge"),
                              Spell.Buff("Deadly Saber"),
                              Spell.Cast("Battering Assault"),
                              Spell.Cast("Rupture"),
                              Spell.Cast("Annihilate"),
                              Spell.Cast("Ravage")
                          )
                      );
                  }
              }
      
              private Composite HandleSingleTarget
              {
                  get
                  {
                      return new PrioritySelector(
                          //Move To Range
                          CloseDistance(Distance.Melee),
                          
                          //Rotation
                          Spell.Cast("Disruption", ret => Me.CurrentTarget.IsCasting && !LazyRaider.MovementDisabled),
                          Spell.Buff("Berserk", ret => Me.HasBuff("Fury") && Me.BuffCount("Fury") > 29),
      					Spell.Buff("Frenzy", ret => Me.HasBuff("Fury") && Me.BuffCount("Fury") < 15),
                          Spell.Cast("Vicious Throw", ret => Me.CurrentTarget.HealthPercent <= 30),
                          Spell.Buff("Deadly Saber"),
                          Spell.Cast("Annihilate"),
                          Spell.Cast("Rupture"),
                          //Spell.Cast("Vicious Slash"),
                          Spell.Cast("Battering Assault", ret => Me.Energy <= 5),
                          Spell.Cast("Ravage"),
                          //Spell.Cast("Force Scream", ret => Me.ActionPoints >= 4),
                          //Spell.Cast("Force Charge"),
                          Spell.Cast("Assault", ret => Me.Energy <= 5),
                          Spell.Cast("Retaliation")
                          );
                  }
              }
              private Composite HandleAOE
              {
                  get
                  {
                      return new Decorator(ret => ShouldAOE(3, Distance.MeleeAoE),
                         new PrioritySelector(
                         Spell.Cast("Smash", ret => Me.CurrentTarget.Distance <= 0.5f),
                         Spell.Cast("Sweeping Slash")
                         )
                      );
                  }
              }
              public override Composite PVERotation
              {
                  get
                  {
                      return new PrioritySelector(
                          Spell.WaitForCast(),
                          HandleCoolDowns,
                          HandleAOE,
                          HandlePull,
                          HandleSingleTarget
                      );
                  }
              }
      
              public override Composite PVPRotation
              {
                  get { return PVERotation; }
              }
      
              #endregion
          }
      }
      
      I am guessing that the #rotation is where the skills you want rotated is placed there.

      I've played SWTOR and I have a very set way of running my rotations in priority to max out my dps (3.1k DPS) for raids. However through this I realise that it is only just randomly mashing buttons not in priority and I was wondering if I'm doing something wrong?
      Since C++ Reads from top to bottom does this code do the same and whichever skills is placed on top of the code is more of a priority?

      This is some parse.
      You need to register and have one post to see spoilers!
      Realise that it's casting tons of assault, this is not really needed as through the spec we're running, your rage should always be more than 6> with just battering assault and there's a very small window you will need to use assault however the rotational bot seems to be using assault a lot.

      Please do advice on how do i sort out the priorities.

      Q4: Is there a way to set a hotkey trigger to activate the bot, eg when I target a monster it immediately jumps and attack it, is there a way to set a hotkey, like , example, 'A', so it only triggers the rotation when i use A.
       
    2. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      My best advice would be to read the PureSwtor thread, because Q1, Q2, and Q4 are all answered in there.

      Briefly:
      Pure is an at-the-keyboard rotation bot, UnPure is an afk version
      Use the CombatBot profile included with Pure. It's just a blank profile.
      F9 pauses the rotation. F9 again to resume.

      Regarding the syntax, it all looks fine to me. SWTOR is kind of a mess of code, so I've often noticed that even though the rotation is programmed correctly it'll sometimes get stuck in a weird loop of casting stuff farther down the list. No idea how to fix it. If you're noticing it all the time, just make sure that stuff isn't misspelled and has the correct buff/debuff calls. I don't play a Maurader, and I'm not sure if aquintus is still around, so I can't check it.
       
    3. runto2006

      runto2006 New Member

      Joined:
      Mar 6, 2014
      Messages:
      12
      Likes Received:
      0
      Trophy Points:
      0
      I noticed this problem on every single class. I've done alot of testing and messing around with different classes/routines and i observed this problem on every routine/class i've tested.

      (Only to the people charging money for BW) Absolutely no excuse. Its the bots job to work with swtor, not swtors job to work with the bot.
       
    4. Dre

      Dre Member

      Joined:
      Nov 6, 2011
      Messages:
      196
      Likes Received:
      0
      Trophy Points:
      16
      As someone who also has frequent problems with gout I can tell you now.

      A. Learn to modify the bot routines for the typo's and changes that could be added later on so you can fix it yourself and not wait ages.
      B. Get use to the fact it help but your not going to be the #1 DPS/healing monster you could be without one.. or their is other hidden bots somewhere that's superior.
      C. Buddywing was never as good as the WoW counterpart. I don't know the specifics why but without proper pvp-ops support this bot has very limited use.
       
    5. 17N

      17N New Member

      Joined:
      Jan 24, 2014
      Messages:
      278
      Likes Received:
      2
      Trophy Points:
      0
      I've dealt temporarily with those loops happening down the priority list, with some conditionals.

      I also wish there was better support or documentation with buddywing.
       

    Share This Page