Powertech Shield spec doesnt work, just shoots auto attack and flamethrower, jugger rage spec only uses charge and shuddering
Some more updates:
Code:public static void SniperMarksmanshipCombat() { WaitForCast(); datLCL = DateTime.Now; Thread.Sleep(200); LoadVars(); MercBuffSelf("Coordination", true); MoveTo(CT, 2.80f); //if (!IG) if (CTT >= CombatToughness.Boss1) MoveIfNec(9.90f); else MoveIfNec(); if (!IG && BuddyTor.Me.IsMoving) StopMoving(); if (CT == null && Me.CurrentTarget != null) CT = Me.CurrentTarget; if (CT == null) { Logging.Write("No target. Exiting."); return; } if (!TargetInCombat()) return; MercCast("Crouch", Me, !MyBuffs.Contains("Crouch")); if (!CT.InCombat) { Thread.Sleep(200); if (MercCast("Ambush", !CT.InCombat || CT.IsStunned)) return; } //**Defensive** if (HP <= 30) UseMedPackInInventory(); if (MercCastOnGround("Orbital Strike", CTT >= CombatToughness.Boss1 && THP >= 30f, CT)) return; if (MercCast("Takedown")) return; // execute if (MercCast("Followthrough")) return; // Followthrough shot if (MercCast("Debilitate", TC)) return; if (MercCast("Distraction", TC && StrongOrGreater(CT))) return; if (MercCast("Adrenaline Probe", RS <= 40)) return; if (MercCast("Rifle Shot", RS <= 59)) return; // keep energy up if (MercCast("Shield Probe", !MyBuffs.Contains("Shield Probe"))) return; if (MercCast("Entrench", HP <= 70f)) return; if (MercCast("Ballistic Shield", HP <= 50)) return; if (MercCast("Diversion", HP <= 50 && CT.Toughness != CombatToughness.Player)) return; if (MercCast("Laze Target", StrongOrGreater(CT) && THP >= 50f)) return; if (MercCast("Target Acquired", StrongOrGreater(CT) && THP >= 50f)) return; if (MercCast("Fragmentation Grenade", UseAOE && RS > 69 && TWR30 > 2)) return; if (TD <= .50f) { if (MercCast("Cover Pulse")) { MercCast("Leg Shot"); return;} // knockback; need to add leg shot here. if (MercCast("Flash Bang")) return; // or aoe mezz if (MercCast("Debilitate")) return; // single target stun } if (MercCast("Explosive Probe")) return; if (MercCast("Ambush", HaveBuffStacks("Zeroing Shots", 2))) return; // we need to put name of ambush charges here if (MercCast("Snipe", CTDebuffs.Contains("Smuggler's Luck"))) return; if (MercCast("Shatter Shot", StrongOrGreater(CT) && !CTDebuffs.Contains("Armor Reduced (Physical)"))) return; // armor debuff if (MercCast("Series of Shots")) return; // series of shots if (MercCast("Sniper Volley", HP <= 50 || RS <= 20)) return; //if (MercCast("Leg Shot")) return; if (MercCast("Snipe")) return; // snipe if (MercCast("Rifle Shot")) return; //if (MercCast("Vital Shot", !CTDebuffs.Contains("Bleeding (Tech)"))) return; ////Logging.Write(RS.ToString("0.0") + " Forced Cast: Rifle Shot"); ////Buddy.CommonBot.AbilityManager.Cast("Flurry of Bolts", CT); } public static void SharpshooterCombat() { WaitForCast(); datLCL = DateTime.Now; Thread.Sleep(200); LoadVars(); MercBuffSelf("Lucky Shots", true); MoveTo(CT, 2.80f); //if (!IG) if (CTT >= CombatToughness.Boss1) MoveIfNec(9.90f); else MoveIfNec(); if (!IG && BuddyTor.Me.IsMoving) StopMoving(); if (CT == null && Me.CurrentTarget != null) CT = Me.CurrentTarget; if (CT == null) { Logging.Write("No target. Exiting."); return; } if (!TargetInCombat()) return; MercCast("Crouch", Me, !MyBuffs.Contains("Crouch")); if (!CT.InCombat) { Thread.Sleep(200); if (MercCast("Aimed Shot", !CT.InCombat || CT.IsStunned)) return; } //**Defensive** if (HP <= 30) UseMedPackInInventory(); if (MercCastOnGround("XS Freighter Flyby", CTT >= CombatToughness.Boss1 && THP >= 30f, CT)) return; if (MercCast("Quickdraw")) return; // execute if (MercCast("Trickshot")) return; // Followthrough shot if (MercCast("Dirty Kick", TC)) return; if (MercCast("Distraction", TC && StrongOrGreater(CT))) return; if (MercCast("Cool Head", RS <= 40)) return; if (MercCast("Flurry of Bolts", RS <= 59)) return; if (MercCast("Defense Screen", !MyBuffs.Contains("Defense Screen"))) return; if (MercCast("Hunker Down", HP <= 70f)) return; if (MercCast("Scrambling Field", HP <= 50)) return; if (MercCast("Diversion", HP <= 50 && CT.Toughness != CombatToughness.Player)) return; if (MercCast("Smuggler's Luck", StrongOrGreater(CT) && THP >= 50f)) return; if (MercCast("Illegal Mods", StrongOrGreater(CT) && THP >= 50f)) return; if (MercCast("Thermal Grenade", UseAOE && RS > 69 && TWR30 > 2)) return; if (TD <= .50f) { if (MercCast("Pulse Detonator")) {MercCast("Leg Shot");return;} // knockback; need to add leg shot here. if (MercCast("Flash Grenade")) return; // or aoe mezz if (MercCast("Dirty Kick")) return; // single target stun } if (MercCast("Sabotage Charge")) return; if (MercCast("Aimed Shot", HaveBuffStacks("Charged Aim", 2))) return; if (MercCast("Charged Burst", CTDebuffs.Contains("Smuggler's Luck"))) return; if (MercCast("Flourish Shot", StrongOrGreater(CT) && !CTDebuffs.Contains("Armor Reduced (Physical)"))) return; // armor debuff if (MercCast("Speed Shot")) return; // series of shots if (MercCast("Burst Volley", HP <= 50 || RS <= 20)) return; //if (MercCast("Leg Shot")) return; if (MercCast("Charged Burst")) return; // snipe if (MercCast("Flurry of Bolts")) return; //if (MercCast("Vital Shot", !CTDebuffs.Contains("Bleeding (Tech)"))) return; ////Logging.Write(RS.ToString("0.0") + " Forced Cast: Rifle Shot"); ////Buddy.CommonBot.AbilityManager.Cast("Flurry of Bolts", CT); }
public static void TelekineticsCombat()
{
WaitForCast();
datLCL = DateTime.Now;
Thread.Sleep(200);
LoadVars();
if (!TargetInCombat()) return;
if (MercCast("Force Valor", !MyBuffs.Contains("Force Valor"))) return;
if (!IG) if (Me.Level > 10) MoveTo(CT, 2.8f, "Force Speed"); else MoveTo(CT, .50f);
if (!CT.InCombat)
{
while (CT.Distance > 2.8f) MoveTo(CT, 2.8f);
if (MercCast("Mind Crush", StrongOrGreater(CT))) return;
MercCast("Disturbance");
}
MoveTo(CT, 2.8f);
if (MercCast("Force Mend", HP <= 80)) return;
if (MercCast("Benevolence", HP <= 60)) return;
if (MercCast("Mental Alacrity", HP <= 60)) return;
if (MercCast("Deliverance", MyBuffs.Contains("Mental Alacrity") && HP <= 60)) return;
if (MedicineCheckCompHealth()) return;
//if (BGHeals(85f)) return;
if (BGCheckCompHealth()) return;
Thread.Sleep(100);
if (MercCast("Force Armor", !BuddyTor.Me.HasDebuff("Force-imbalance"))) return;
if (MercCast("Force of Will", BuddyTor.Me.IsStunned)) return;
if (!TargetInCombat()) return;
if (MercCast("Mind Snap", TC)) return;
if (MercCast("Force Stun", StrongOrGreater(CT))) return;
if (MercCast("Force Potency")) return;
if (MercCast("Noble Sacrafice", RS >= 20)) return;
{
if (MercCast("Weaken Mind", StrongOrGreater(CT) && !CTDebuffs.Contains("Weaken Mind"))) return;
if (MercCast("Force Wave", TD <= .6f)) return;
if (MercCast("Telekinetic Wave", MyBuffs.Contains("Tidal Force"))) return;
if (MercCast("Telekinetic Throw", MyBuffs.Contains("Psychic Projection"))) return;
if (MercCast("Project")) return;
if (MercCast("Telekinetic Throw")) return;
if (MercCast("Disturbance")) return;
}
if (SeerCheckCompHealth()) return;
if (!IG && BuddyTor.Me.IsMoving) StopMoving();
}
I got some unexpected and much appreciated free time today, so I took the time to write out some TK Sage routine. Keep in mind that this routine is only for a level 30 sage, so I'm not using the top tier talents yet.
Code:public static void TelekineticsCombat() { WaitForCast(); datLCL = DateTime.Now; Thread.Sleep(200); LoadVars(); if (!TargetInCombat()) return; if (MercCast("Force Valor", !MyBuffs.Contains("Force Valor"))) return; if (!IG) if (Me.Level > 10) MoveTo(CT, 2.8f, "Force Speed"); else MoveTo(CT, .50f); if (!CT.InCombat) { while (CT.Distance > 2.8f) MoveTo(CT, 2.8f); if (MercCast("Mind Crush", StrongOrGreater(CT))) return; MercCast("Disturbance"); } MoveTo(CT, 2.8f); if (MercCast("Force Mend", HP <= 80)) return; if (MercCast("Benevolence", HP <= 60)) return; if (MercCast("Mental Alacrity", HP <= 60)) return; if (MercCast("Deliverance", MyBuffs.Contains("Mental Alacrity") && HP <= 60)) return; if (MedicineCheckCompHealth()) return; //if (BGHeals(85f)) return; if (BGCheckCompHealth()) return; Thread.Sleep(100); if (MercCast("Force Armor", !BuddyTor.Me.HasDebuff("Force-imbalance"))) return; if (MercCast("Force of Will", BuddyTor.Me.IsStunned)) return; if (!TargetInCombat()) return; if (MercCast("Mind Snap", TC)) return; if (MercCast("Force Stun", StrongOrGreater(CT))) return; if (MercCast("Force Potency")) return; if (MercCast("Noble Sacrafice", RS >= 20)) return; { if (MercCast("Weaken Mind", StrongOrGreater(CT) && !CTDebuffs.Contains("Weaken Mind"))) return; if (MercCast("Force Wave", TD <= .6f)) return; if (MercCast("Telekinetic Wave", MyBuffs.Contains("Tidal Force"))) return; if (MercCast("Telekinetic Throw", MyBuffs.Contains("Psychic Projection"))) return; if (MercCast("Project")) return; if (MercCast("Telekinetic Throw")) return; if (MercCast("Disturbance")) return; } if (SeerCheckCompHealth()) return; if (!IG && BuddyTor.Me.IsMoving) StopMoving(); }
Things I'd like to fix:
- Stun isn't working for some reason
- Couldn't get Companion shielding to work... Ideally I'd like to shield him when he's below 80% hp and doesn't have the debuff.
- There was something else but I forget
All in all, though, this is already way more efficient than the default sage combat routine, or that crappy one I put in this thread earlier. I'll keep working on this as I level up. Thanks for opening that spot up Walter!!!
I took this line out if (MedicineCheckCompHealth()) return; that is for operative heals. Seer heals were already listed and I moved up. I updated svn.
Thanks, I think that might be in my Gunnery profile too lewl. See if you can guess which class I used as a template to create my routines. I'll give you 3 guesses![]()
I have a bad feeling about the bot casting buffs on just any guy running past them.
Tried out the concealment operative class and it says "initiating combat" and gets just out of aggro range but never actually initiates. Lvl 16 operative, maybe too low of level? I can get some logs up later if u need them. Thx!
public static void DarknessCombat()
{
WaitForCast();
datLCL = DateTime.Now;
Thread.Sleep(200);
LoadVars();
if (!IG && BuddyTor.Me.IsMoving) StopMoving();
if (CT == null && Me.CurrentTarget != null) CT = Me.CurrentTarget;
if (CT == null) { Logging.Write("No target. Exiting."); return; }
if (CT == Comp) { BuddyTor.Me.ClearTarget(); return; }
if (MercCast("Mark of Power", !MyBuffs.Contains("Mark of Power"))) return;
if (MercCast("Dark Charge", !MyBuffs.Contains("Dark Charge"))) return;
if (!CT.InCombat && CT.HealthPercent > .2f)
{
MercCast("Stealth");
while (CT.Distance > .15f) MoveTo(CT, .15f);
if (MercCast("Maul", CT.Distance <= .20f)) if (MercCast("Thrash")) return;
}
//if (!TargetInCombat()) return;
if (!CT.InCombat && Me.IsStealthed) return;
if (MercCast("Unbreakable Will", Me.IsStunned)) return;
if (TC)
{
if (MercCast("Jolt")) return;
if (MercCast("Electrocute")) return;
if (MercCast("Shock")) return;
if (MercCast("Overload", TD <= .50f)) return;
}
if (!IG) MoveTo(CT, .490f, "Shock");
//**Defensive**
if (MercCast("Dark Ward", HP <= 90f)) return;
if (MercCast("Deflection", HP <= 50f)) return;
if (MercCast("Force Shroud", HP <= 40f)) return;
if (MercCast("Overcharge Saber", HP <= 30f)) return;
if (HP <= 30) UseMedPackInInventory();
//**Offensive**
if (MercCast("Saber Strike", RS <= 20f)) return; //conserve energy
if (MercCast("Force Lightning", HaveBuffStacks("Harnessed Darkness", 3))) return;
if (MercCast("Recklessness", StrongOrGreater(CT))) return;
if (MercCast("Wither", TWR10 >= 2)) return;
if (MercCast("Discharge", TWR10 >= 2)) return;
if (MercCast("Shock", MyBuffs.Contains("Energize"))) return;
if (MercCast("Assassinate", THP <= 30f)) return;
if (MercCast("Maul", MyBuffs.Contains("Conspirator's Cloak"))) return;
if (MercCast("Thrash")) return;
if (MercCast("Saber Strike")) return;
if (!IG && BuddyTor.Me.IsMoving) StopMoving();
}
Walter, I found Darkness sin horrible. Rewrote it. Let me know what you think.
Code:public static void DarknessCombat() { WaitForCast(); datLCL = DateTime.Now; Thread.Sleep(200); LoadVars(); if (!IG && BuddyTor.Me.IsMoving) StopMoving(); if (CT == null && Me.CurrentTarget != null) CT = Me.CurrentTarget; if (CT == null) { Logging.Write("No target. Exiting."); return; } if (CT == Comp) { BuddyTor.Me.ClearTarget(); return; } if (MercCast("Mark of Power", !MyBuffs.Contains("Mark of Power"))) return; if (MercCast("Dark Charge", !MyBuffs.Contains("Dark Charge"))) return; if (!CT.InCombat && CT.HealthPercent > .2f) { MercCast("Stealth"); while (CT.Distance > .15f) MoveTo(CT, .15f); if (MercCast("Maul", CT.Distance <= .20f)) if (MercCast("Thrash")) return; } //if (!TargetInCombat()) return; if (!CT.InCombat && Me.IsStealthed) return; if (MercCast("Unbreakable Will", Me.IsStunned)) return; if (TC) { if (MercCast("Jolt")) return; if (MercCast("Electrocute")) return; if (MercCast("Shock")) return; if (MercCast("Overload", TD <= .50f)) return; } if (!IG) MoveTo(CT, .490f, "Shock"); //**Defensive** if (MercCast("Dark Ward", HP <= 90f)) return; if (MercCast("Deflection", HP <= 50f)) return; if (MercCast("Force Shroud", HP <= 40f)) return; if (MercCast("Overcharge Saber", HP <= 30f)) return; if (HP <= 30) UseMedPackInInventory(); //**Offensive** if (MercCast("Saber Strike", RS <= 20f)) return; //conserve energy if (MercCast("Force Lightning", HaveBuffStacks("Harnessed Darkness", 3))) return; if (MercCast("Recklessness", StrongOrGreater(CT))) return; if (MercCast("Wither", TWR10 >= 2)) return; if (MercCast("Discharge", TWR10 >= 2)) return; if (MercCast("Shock", MyBuffs.Contains("Energize"))) return; if (MercCast("Assassinate", THP <= 30f)) return; if (MercCast("Maul", MyBuffs.Contains("Conspirator's Cloak"))) return; if (MercCast("Thrash")) return; if (MercCast("Saber Strike")) return; if (!IG && BuddyTor.Me.IsMoving) StopMoving(); }