I thought the exclamation point meant the opposite or "not"? So !CT.InCombat would mean not in combat... right? This has been working for me so far anyway. I've been doing the same thing with "StrongOrGreater" and if I don "!StrongOrGreater" it does weak only mobs.
I have a ignoramus type question regarding this merchelpers.cs thingy. Trying to play my Shadow (Infiltration lvl 55) using Joe's 2. The biggest issue I had/have with the rotation in default and Wingit fo rthis spec is that it will cast "force cloak" while in combat, so I always edited that line out in the infiltration.cs file, and everything was okay....BUT with this merchelper thingy I am lost and do not know WHERE to edit or change the rotation (which kinda sucks tbh)
If there was/is a way to for instance steal the rotation from "PURESWTOR" - Altruist's version works great - and just copy that routine to work with Joe?
Also, won't it be leaner and meaner and less bulky if you use subroutines instead of that one HUGE merchelpers file? I am clueless about programming, but it just feels as if such a big file will consume a lot more memory and system resources than 1 file pointing to the sub-routine for each class...like Adude did before?
Don't laugh at my ignorance...![]()
PS I will fix infiltration. When does it us force cloak? Close to death or what? LOGS?
Thanks, Walt!I seriously do not want or expect you to try and fix everything...you guys are already spending soooo much time on this, and sometimes I feel all we do is complain or ask for more and being utterly selfish. Pity there is so few of us using BW or/and even playing SWTOR.
Thanks for the explanation, and I will try and grab a log next time I play on the Shadow....sorry about not attaching a log before. Basically, it cloaks while in combat when health is around 30-40% thinking it needs to escape, but instead of escaping it will just start fighting again in a while and so on...this is an irritating issue with long boss fights or even elites. If it could actually escape and find a safe spot to meditate in, it would be better..but alas...![]()
public static void CommandoGunnery()
{
if (Me.IsDead || Me.HealthPercent <= .40f) return;
//Thread.Sleep(500);
try
{
datLCL = DateTime.Now;
WaitForCast();
Thread.Sleep(300);
LoadVars();
if (CT == null) { Logging.Write("No target. Exiting."); return; }
if (MercCast("Fortification", !MyBuffs.Contains("Fortification"))) return;
if (!CT.InCombat)
{
while (CT.Distance > 2.8f) MoveTo(CT, 2.8f);
MercCast("Plasma Grenade");
MercCast("Grav Round");
}
MoveTo(CT, 2.8f);
if (MercCast("Heroic Moment: No Retreat", HP <= 40)) return;
if (MercCast("Advanced Medical Prob", HP <= 60)) return;
if (MercCast("Medical Probe", HP <= 40)) return;
if (MercCast("Adrenaline Rush", HP <= 30)) return;
if (MercCast("Reactive Shield", HP <= 70)) return;
//if (BGHeals(85f)) return;
if (BGCheckCompHealth()) return;
Thread.Sleep(100);
if (MercCast("Armor-piercing Cell", !MyBuffs.Contains("Armor-piercing Cell"))) return;
if (MercCast("Tenacity", BuddyTor.Me.IsStunned)) return;
if (!TargetInCombat()) return;
if (MercCast("Disabling Shot", TC)) return;
if (MercCast("Cyro Grenade", StrongOrGreater(CT))) return;
if (MercCast("Tech Override")) return;
if (MercCast("Plasma Grenade", MyBuffs.Contains("Tech Override"))) return;
if (MercCast("Concussion Charge", TD <= .6f)) return;
if (MercCast("Stock Strike", TD <= .7f)) return;
if (MercCast("Thermal Sensor Override", RS >= 23)) return;
if (MercCast("Recharge Cells", RS >= 80)) return;
//if (RS <= 70))
if (UseAOE)
{
if (MercCastOnGround("Mortar Volley", TD >= .6f && RS <= 70, CT)) return;
}
//if (RS <= 40))
{
if (MercCast("High Impact Bolt", HaveBuffStacks("Charged Barrel", 4))) return;
if (MercCast("Full Auto", MyBuffs.Contains("Curtain of Fire"))) return;
if (MercCast("Demolition Round", CTDebuffs.Contains("Gravity Vortex"))) return;
if (MercCast("Sticky Grenade", !StrongOrGreater(CT))) return;
if (MercCast("Grav Round")) return;
if (MercCast("Grav Round")) return;
if (MercCast("Hammer Shot")) return;
}
//Buddy.Navigation.Navigator.MoveTo(BuddyTor.Me.CurrentTarget.Position);
if (MercCast("Hammer Shot")) return;
//Buddy.CommonBot.AbilityManager.Cast("Hammer Shot", CT); // Forced Cast
}
catch
{
//Buddy.CommonBot.AbilityManager.Cast("Hammer Shot", Me.CurrentTarget);
}
}
Walter, you wanted me to post my final rotation for Gunnery and I think this is it:
Code:public static void CommandoGunnery() { if (Me.IsDead || Me.HealthPercent <= .40f) return; //Thread.Sleep(500); try { datLCL = DateTime.Now; WaitForCast(); Thread.Sleep(300); LoadVars(); if (CT == null) { Logging.Write("No target. Exiting."); return; } if (MercCast("Fortification", !MyBuffs.Contains("Fortification"))) return; if (!CT.InCombat) { while (CT.Distance > 2.8f) MoveTo(CT, 2.8f); MercCast("Plasma Grenade"); MercCast("Grav Round"); } MoveTo(CT, 2.8f); if (MercCast("Heroic Moment: No Retreat", HP <= 40)) return; if (MercCast("Advanced Medical Prob", HP <= 60)) return; if (MercCast("Medical Probe", HP <= 40)) return; if (MercCast("Adrenaline Rush", HP <= 30)) return; if (MercCast("Reactive Shield", HP <= 70)) return; //if (BGHeals(85f)) return; if (BGCheckCompHealth()) return; Thread.Sleep(100); if (MercCast("Armor-piercing Cell", !MyBuffs.Contains("Armor-piercing Cell"))) return; if (MercCast("Tenacity", BuddyTor.Me.IsStunned)) return; if (!TargetInCombat()) return; if (MercCast("Disabling Shot", TC)) return; if (MercCast("Cyro Grenade", StrongOrGreater(CT))) return; if (MercCast("Tech Override")) return; if (MercCast("Plasma Grenade", MyBuffs.Contains("Tech Override"))) return; if (MercCast("Concussion Charge", TD <= .6f)) return; if (MercCast("Stock Strike", TD <= .7f)) return; if (MercCast("Thermal Sensor Override", RS >= 23)) return; if (MercCast("Recharge Cells", RS >= 80)) return; //if (RS <= 70)) if (UseAOE) { if (MercCastOnGround("Mortar Volley", TD >= .6f && RS <= 70, CT)) return; } //if (RS <= 40)) { if (MercCast("High Impact Bolt", HaveBuffStacks("Charged Barrel", 4))) return; if (MercCast("Full Auto", MyBuffs.Contains("Curtain of Fire"))) return; if (MercCast("Demolition Round", CTDebuffs.Contains("Gravity Vortex"))) return; if (MercCast("Sticky Grenade", !StrongOrGreater(CT))) return; if (MercCast("Grav Round")) return; if (MercCast("Grav Round")) return; if (MercCast("Hammer Shot")) return; } //Buddy.Navigation.Navigator.MoveTo(BuddyTor.Me.CurrentTarget.Position); if (MercCast("Hammer Shot")) return; //Buddy.CommonBot.AbilityManager.Cast("Hammer Shot", CT); // Forced Cast } catch { //Buddy.CommonBot.AbilityManager.Cast("Hammer Shot", Me.CurrentTarget); } }
I'm pretty content with this... still not perfect but I could probably tweak with this for days![]()
Two things about the commando routine that iwll need to be updated:
Need to remove the check to use the heroic ability... That can only be used if your companion is alive... if it's not it keeps trying to use heroic moment and just stands there not doing anything until it's dead. I recommend removing heroic moments from all routines as they're a liability.
Added a companion medicine check right underneath reactive shield:
"if (MercCast("Reactive Shield", HP <= 70)) return;
if (MedicineCheckCompHealth()) return;"
Currently I am only running the test file for Fight at Joe's. Is there any reason I should not run those instead of the "Stable" build? The test build from an uneducated sort such as myself is working very well for those I have tested it on: Immortal Juggernaut, Marauder, and my Bounty Hunter but of those only my Jugger is over level 50. The other are in their twenties and I do see it pause in the rotation ever so often for lower levels but still gets the job done. I downloaded PureSWTOR tonight, going to test it on early Flashpoints tomorrow.
how do you turn off the auto crew skills like slicing and the auto movement so its more like lazyraider?
ok people stop asking us to turn things off in the bot, we are ONLY adding all classes and some functionality what needs to be therei know you all want the best but this project is not a small task i ma lvling other toons now do i can help with the rotations
. i would like them to be perfect
.
also we need more people helping us. the rest of you lazy know-it-all coders give a hand man and stop standing on the sidelines. you all annoy me so much at times. "Coders standing around that is!"![]()