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 && CT.HealthPercent > .2f)
{
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 <= 50)) 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", TC)) 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 (MercCast("Pulse Cannon", TD >= .01f && TD <= .8f)) return;
}
//if (RS <= 40))
{
if (MercCast("High Impact Bolt", MyBuffs.Contains("Charged Barrel"))) 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("Electro Net", RS >=8)) 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);
}
}
the wait for heals class need to be reworked i will fix itHere's what I've got so far. I didn't touch anything that I didn't understand what it was. It takes a little longer than I'd like for it to decide what move to use next but other than that it's running pretty well. I'm also trying to get it to only use plasma grenade if the target isn't in combat, or if tech override is up but for some reason it's just only using it when tech override is up... not when it opens. Still, that's a nit pick and that doesn't bother me that much.
Outside of that... in my estimation it doesn't crash and it runs a pretty strong dps rotation.
I'm also thinking about removing pulse cannon... the bot isn't good at aiming 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 && CT.HealthPercent > .2f) { 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 <= 50)) 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", TC)) 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 (MercCast("Pulse Cannon", TD >= .01f && TD <= .8f)) return; } //if (RS <= 40)) { if (MercCast("High Impact Bolt", MyBuffs.Contains("Charged Barrel"))) 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("Electro Net", RS >=8)) 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); } }
Here's what I've got so far. I didn't touch anything that I didn't understand what it was. It takes a little longer than I'd like for it to decide what move to use next but other than that it's running pretty well. I'm also trying to get it to only use plasma grenade if the target isn't in combat, or if tech override is up but for some reason it's just only using it when tech override is up... not when it opens. Still, that's a nit pick and that doesn't bother me that much.
Outside of that... in my estimation it doesn't crash and it runs a pretty strong dps rotation.
I'm also thinking about removing pulse cannon... the bot isn't good at aiming 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 && CT.HealthPercent > .2f) { 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 <= 50)) 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", TC)) 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 (MercCast("Pulse Cannon", TD >= .01f && TD <= .8f)) return; } //if (RS <= 40)) { if (MercCast("High Impact Bolt", MyBuffs.Contains("Charged Barrel"))) 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("Electro Net", RS >=8)) 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); } }
the wait for heals class need to be reworked i will fix it
if (MercCast("Plasma Grenade", TD <= .1f && RS >= 10)) return;
Just put before
if (!TargetInCombat()) return;
and I think that should do it. Should attack before in combat. There is another command just dont know it.
if (!CT.InCombat)
{
while (CT.Distance > 2.8f) MoveTo(CT, 2.8f);
MercCast("Plasma Grenade");
MercCast("Grav Round");
}
PS: Jest tell me what class you want next to play with? Since going to start reworking a few classes so it know what abilities you have at certain levels. Thus keeping it super efficient and less deaths. Less deaths = less restarting bot if it fails!
I've got a telekinesis counselor in the works right now. I'll try to get something for that optimized, though at such a low level it's pretty straight forward.
Good stuff![]()
I actually modified a bit of code I got from my operative and it works well:
Code:if (!CT.InCombat) { while (CT.Distance > 2.8f) MoveTo(CT, 2.8f); MercCast("Plasma Grenade"); MercCast("Grav Round"); }
This makes it move in range, cast plasma if it's off CD and grav round otherwise.![]()