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!

Pure SWTor

Quick question regarding UNPURE and Lethality Operative. Everything is working great, but I do run into a small issue and I am not sure if it is me doing something stupid. The rotation works great, until he decides to stealth. Then he would sit in stealth and spams the fact that he cannot rest while in stealth. It is no biggie, because I mainly use PURE anyway, but I wanted to try UNPURE again for a bit and do some Dailies on this toon. :)

I know I should post a log, but believe it or not, it is not doing it now and I deleted the other log . Duh I am such a retard....don't even know how to delete this, so...ho hum..<throws a virtual rotten stinky apple at my blue man operative>:)

So hes going into stealth before resting? I went ahead a put a check for resting into the stealth. It wont stealth for lazyraiding now, as it shouldnt.
 
So hes going into stealth before resting? I went ahead a put a check for resting into the stealth. It wont stealth for lazyraiding now, as it shouldnt.

Thank you, Ama. Using UNPURE again and doing Ilum Dailies. It seems the problem is when he casts " cloaking screen" which will put him in stealth. Everything ends after that and he will just stand there looking dumb :)
I removed this line from the lethality.cs file and it seems fine now. I mean...now he just plain dies instead of cloaking when using unpure...I left that in for Pure cause it is nice to have. :)
//Spell.Cast("Cloaking Screen", ret => Me.InCombat && !Me.HasBuff("Stealth")),


16:27:54.992 V] [UseObject] Moving to interact with: Crane
[16:27:58.804 D] [POI Set] Type: Kill
[16:27:58.832 N] Killing Talz Rifleman with 100% health at 22.09 meters
[16:27:59.028 N] >> Casting << Stealth
[16:27:59.088 D] Object reference not set to an instance of an object.
[16:27:59.088 D] at Buddy.Swtor.Objects.TorObject.()
at ..()
at ..[](UInt64 , HeroType )
at Buddy.Swtor.Objects.TorObject.GetField[T](DomFieldIds field, HeroType forcedType)
at Buddy.Swtor.Objects.TorCharacter.get_Health()
at Buddy.Swtor.Objects.TorCharacter.get_IsDead()
at Buddy.Swtor.Objects.TorNpc.get_IsLootable()
at Buddy.CommonBot.DefaultLootTargetingProvider.(TorNpc )
at System.Linq.Enumerable.<>c__DisplayClassf`1.<CombinePredicates>b__e(TSource x)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Buddy.CommonBot.DefaultLootTargetingProvider.GetObjectsByWeight()
at Buddy.CommonBot.Targeting.Pulse()
at Buddy.CommonBot.Logic.BrainBehavior.()
[16:28:00.325 D] Object reference not set to an instance of an object.
[16:28:00.325 D] at Buddy.Swtor.Objects.TorObject.()
at ..()
at ..[](UInt64 , HeroType )
at Buddy.Swtor.Objects.TorObject.GetField[T](DomFieldIds field, HeroType forcedType)
at Buddy.Swtor.Objects.TorCharacter.get_InCombat()
at PureSWTor.Classes.RotationBase.<>c__DisplayClass1.<ShouldAOE>b__0(TorCharacter mob)
at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source, Func`2 predicate)
at PureSWTor.Classes.RotationBase.ShouldAOE(Int32 minMobs, Single distance)
at PureSWTor.Classes.Operative.Lethality.<get_HandleAoE>b__18(Object ret)
at Buddy.BehaviorTree.Decorator.CanRun(Object context)
at Buddy.BehaviorTree.Decorator..()
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.PrioritySelector..()
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.PrioritySelector..()
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.Decorator..()
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.PrioritySelector..()
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.Decorator..()
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.PrioritySelector..()
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.Decorator..()
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.PrioritySelector..()
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.CommonBot.BotMain.()
[16:28:00.558 N] >> Casting << Corrosive Grenade
[16:28:02.038 N] >> Casting << Rifle Shot
[16:28:02.705 D] [POI Set] Type: Kill
[16:28:04.143 N] >> Casting << Corrosive Grenade
[16:28:07.301 N] >> Casting << Rifle Shot
[16:28:07.430 N] >> Casting << Cloaking Screen
 
Last edited:
Thank you, Ama. Using UNPURE again and doing Ilum Dailies. It seems the problem is when he casts " cloaking screen" which will put him in stealth. Everything ends after that and he will just stand there looking dumb :)
I removed this line from the lethality.cs file and it seems fine now. I mean...now he just plain dies instead of cloaking when using unpure...I left that in for Pure cause it is nice to have. :)
//Spell.Cast("Cloaking Screen", ret => Me.InCombat && !Me.HasBuff("Stealth")),

ok, That should aoe crap will always be there, so dont worry about that. Does cloaking screen successfully cast? If not, I would say the issue is just that we need to specify that is cast on "Me". If he goes full retard after that, I would need to do some testing. My op is only lvl 17 right now, so I havent gotten to that spell yet.
 
ok, That should aoe crap will always be there, so dont worry about that. Does cloaking screen successfully cast? If not, I would say the issue is just that we need to specify that is cast on "Me". If he goes full retard after that, I would need to do some testing. My op is only lvl 17 right now, so I havent gotten to that spell yet.

yeah it casts successfully - sorry :) Put it on the backburner, since it really works well with that line commented out for now. Unless someone else has similar issues? Besides, he fights better with that routine than I can do myself even without casting cloaking screen :)
 
I need some confirmation on Spell.DoT. I'm trying to add this to my Commando/Gunnery routine, but I've not seen anyone else use it. Basically, I need to know if I still need to keep the regular Spell.Cast in there, or does Spell.DoT handle all the normal functions plus the check for the delayed debuff?

Here's my line of code:
Spell.DoT("Grav Round", "Gravity Vortex", 1, ret => !Me.CurrentTarget.HasDebuff("Gravity Vortex") || Me.BuffCount("Charged Barrel") < 5),

Is that right, or should I just have:
Spell.DoT("Grav Round", "Gravity Vortex", 1),
Spell.Cast("Grav Round", ret => !Me.CurrentTarget.HasDebuff("Gravity Vortex") || Me.BuffCount("Charged Barrel") < 5),

Does my question even make sense?
 
Code:
        public static Composite Cast(string spell, UnitSelectionDelegate onUnit, Selection<bool> reqs = null)
        {
            return
                new Decorator(
                    ret => (onUnit != null && onUnit(ret) != null && (reqs == null || reqs(ret)) && AbilityManager.CanCast(spell, onUnit(ret))),
                    new PrioritySelector(
                        new Action(delegate {
                            Logging.Write(">> Casting <<   " + spell); 
                            return RunStatus.Failure; }),
                        new Action(ret => AbilityManager.Cast(spell, onUnit(ret))))

                );
        }
Calls AbilityManager.Cast

Code:
        public static Composite DoT(string spell, UnitSelectionDelegate onUnit, string debuff, float time,  Selection<bool> reqs = null)
        {
            return
                new Decorator(
                    ret => (onUnit != null && onUnit(ret) != null && (reqs == null || reqs(ret)) && AbilityManager.CanCast(spell, onUnit(ret)))
                        && !SpellBlackListed(spell)
                        && !onUnit(ret).HasDebuff(debuff),
                    new PrioritySelector(
                        new Action(delegate {
                            PruneBlackList();
                            BlackListedSpells.Add(new ExpiringItem(spell, GetCastTime(spell) + 25 + time));
                            Logging.Write(">> Casting <<   " + spell);
                            return RunStatus.Failure;}),
                        new Action(ret => AbilityManager.Cast(spell, onUnit(ret)))));
        }

Also ends up calling AbilityManager.Cast. So you only need to use Spell.DoT();
 
I need some confirmation on Spell.DoT. I'm trying to add this to my Commando/Gunnery routine, but I've not seen anyone else use it. Basically, I need to know if I still need to keep the regular Spell.Cast in there, or does Spell.DoT handle all the normal functions plus the check for the delayed debuff?

Here's my line of code:
Spell.DoT("Grav Round", "Gravity Vortex", 1, ret => !Me.CurrentTarget.HasDebuff("Gravity Vortex") || Me.BuffCount("Charged Barrel") < 5),

Is that right, or should I just have:
Spell.DoT("Grav Round", "Gravity Vortex", 1),
Spell.Cast("Grav Round", ret => !Me.CurrentTarget.HasDebuff("Gravity Vortex") || Me.BuffCount("Charged Barrel") < 5),

Does my question even make sense?

I wrote it for just single stacking on the current target. I'll write something for getting buffs pretty soon, but its not high on my priority list.
 
FrameLock

I would, but think my next step will be looking at framelock stuff. I'm sure these rotations need a bit of work too, I just cant test them all.

Ama, I started looking at this for inclusion in our CC and just wondered if you made any progress.

I set it up like this (from modified singularly)
using GreyMagic;

#region Nested type: LockSelector

/// <summary>
/// This behavior wraps the child behaviors in a 'FrameLock' which can provide a big performance improvement
/// if the child behaviors makes multiple api calls that internally run off a frame in SWTOR in one CC pulse.
/// </summary>
private class LockSelector : PrioritySelector
{
public LockSelector(params Composite[] children)
: base(children)
{
}

public override RunStatus Tick(object context)
{
using (GreyMagic.ExternalProcessMemory.AcquireFrame())
{
return base.Tick(context);
}
}
}

But unfortunately, I am getting compile errors: error CS0120: An object reference is required for the non-static field, method, or property 'GreyMagic.ExternalProcessMemory.AcquireFrame()'.

Setting it to static obviously wouldn't work. Any ideas? Should GreyMagic.ExternalProcessMemory be an instance?

I can't imagine doing something like this would work properly:
public override RunStatus Tick(object context)
{
FrameLock GMAF = new GreyMagic.ExternalProcessMemory.AcquireFrame();
using (GMAF)
{
return base.Tick(context);
}
}
 
Ama, I started looking at this for inclusion in our CC and just wondered if you made any progress.

Nah, haven't started yet. Currently leveling a Merc and working lots of hours.
 
Hello, sorry but i don't understand how to use this app, plugin ? I have a error on compil with Visual Studio Ultimate 2012. Sorry for my english i am french.
 
Just put it in your buddywing/routines folder. Don't compile it. Buddywing.exe compiles it for you at execution.
 
Had a go at playing combat sentinel last night, the general rotation looks ok but it doesnt seem to use dispatch with hand of justice proc, or twin saber throw.
Valorous call seems to ignore if you have 30 centering stacks or not as well. Other than that the dps parse well enough for hm ops.
 
Had a go at playing combat sentinel last night, the general rotation looks ok but it doesnt seem to use dispatch with hand of justice proc, or twin saber throw.
Valorous call seems to ignore if you have 30 centering stacks or not as well. Other than that the dps parse well enough for hm ops.

Is combat the analogue for carnage? i'm not sure if anyone copied my updates to carnage over to combat yet... i can check later today, as some of those issues should be fixed. twin saber throw can be put in the aoe section, but we usually leave pull (ranged) moves up to the user. should twin saber throw be a part of the single-target rotation? i don't play a sent.
 
Is combat the analogue for carnage? i'm not sure if anyone copied my updates to carnage over to combat yet... i can check later today, as some of those issues should be fixed. twin saber throw can be put in the aoe section, but we usually leave pull (ranged) moves up to the user. should twin saber throw be a part of the single-target rotation? i don't play a sent.
I would throw in Twinsaber in Pull before you force leap in.
 
Just updated to SVN:

Fixed Sentinel/Combat: now uses Dispatch when Hand of Justice procs. Now uses Rebuke more frequently. Valorous Call should only be used when <5 stacks of Centering. Twin Saber throw is enabled when using UnPure (Pure still leaves pull moves up to the user.

Let me know if there are any problems with the routine.
 
how can i commit some small changes to the SVN? I've used it before just not on assembla.
 
twin saber throw is pretty much a filler in single-target rotation, for when everything else is on cd and you already have high focus so dont have a need for zealous strike or strike
 
Back
Top