Brian 10 Posted September 2, 2016 Share Posted September 2, 2016 So I am playing a class with all instants and 400 ping, so I would like my fightclass to spam the next button until it is pressed. How would I do that? Maybe not a full out spam, but start looking for next button to press a couple hundred milliseconds early. I tried : cooldownc = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Black Arrow'); return start;"); if (cooldownc == 0 && BlackArrow.IsDistanceGood && BlackArrow.KnownSpell) { BlackArrow.Launch(); return; } Instead of : if (BlackArrow.IsSpellUsable && BlackArrow.IsDistanceGood && BlackArrow.KnownSpell) { BlackArrow.Launch(); return; } But it breaks the rotation and gets out of order because there is so much spamming it backs up. I tried adding sleeps but they didn't help much, rotation was suboptimal. using System; using System.Threading; using robotManager.Helpful; using robotManager.Products; using wManager.Wow.Class; using wManager.Wow.Helpers; using wManager.Wow.ObjectManager; public class Main : ICustomClass { public float Range { get { return 30f; } } private bool _isLaunched; private WoWUnit _lastTarget; public void Initialize() { _isLaunched = true; Logging.Write("Lock1.0 Started"); Rotation(); } public void Dispose() { _isLaunched = false; Logging.Write("Lock1.0 Stop in progress."); } public void ShowConfiguration() { Logging.Write("Lock1.0 No setting for this Fight Class."); //MessageBox.Show("[My fightclass] No setting for this Fight Class."); } public Spell BlackArrow = new Spell("Black Arrow"); public Spell KillCommand = new Spell("Kill Command"); public Spell ChimShot = new Spell("Chimera Shot"); public Spell MultiShot = new Spell("Multi-Shot"); public Spell AimedShot = new Spell("Aimed Shot"); public Spell ExpShot = new Spell("Explosive Shot"); public Spell SteadyShot = new Spell("Steady Shot"); public Spell KillShot = new Spell("Kill Shot"); public Spell HunterMark = new Spell("Hunter's Mark"); public Spell SerpSting = new Spell("Serpent Sting"); public Spell BeastWrath = new Spell("Bestial Wrath"); public Spell RapidFire = new Spell("Rapid Fire"); public Spell Readiness = new Spell(23989); public Spell CallPet = new Spell("Call Pet"); public int SerpID = 49001; public int HuntID = 19423; internal void Rotation() { Logging.Write("Lock1.0 Is started."); while (_isLaunched) { try { if (!Products.InPause) { if (!ObjectManager.Me.IsDeadMe) { //buffRotation(); if (Fight.InFight && ObjectManager.Me.Target > 0 && ObjectManager.Me.SpeedMoving == 0 && !ObjectManager.Me.GetMove) { CombatRotation(); } else if (ObjectManager.Me.Target == 0) { } } } } catch (Exception e) { Logging.WriteError("[My fightclass] ERROR: " + e); } Thread.Sleep(10); // Pause 10 ms to reduce the CPU usage. } Logging.Write("[My fightclass] Is now stopped."); } Aura GetAuraByPlayer(int ID) { Aura final = new Aura(0); Aura[] TargetAuras = ObjectManager.Target.GetAllBuff().ToArray(); foreach (Aura i in TargetAuras) { if (i.IsValid() && i.Owner == wManager.Wow.ObjectManager.ObjectManager.Me.Guid && i.SpellId == ID) { final = i; return i; } } return final; } internal void CombatRotation() { Aura SerpAura = GetAuraByPlayer(SerpID); Aura HuntAura = GetAuraByPlayer(HuntID); int cooldown; int cooldownb; int cooldownc; int cooldownd; int cooldowne; int cooldownf; int cooldowng; int cooldownh; int cooldowni; int cooldownj; if (!ObjectManager.Pet.IsValid) { CallPet.Launch(); return; } if (HunterMark.IsSpellUsable && HunterMark.IsDistanceGood && HunterMark.KnownSpell) { if (!ObjectManager.Target.HaveBuff("Hunter's Mark")) { HunterMark.Launch(); return; } } cooldown = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Bestial Wrath'); return start;"); if (BeastWrath.IsSpellUsable && BeastWrath.IsDistanceGood && BeastWrath.KnownSpell) { BeastWrath.Launch(); return; } if (RapidFire.IsSpellUsable && RapidFire.KnownSpell) { if (!ObjectManager.Me.HaveBuff("Rapid Fire")) { RapidFire.Launch(); return; } } if (SerpSting.IsDistanceGood && SerpSting.KnownSpell) { if (SerpAura.SpellId == 0) { SerpSting.Launch(); return; } } cooldownc = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Black Arrow'); return start;"); if (BlackArrow.IsSpellUsable && BlackArrow.IsDistanceGood && BlackArrow.KnownSpell) { BlackArrow.Launch(); return; } cooldowni = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Explosive Shot'); return start;"); if (ExpShot.IsSpellUsable && ExpShot.IsDistanceGood && ExpShot.KnownSpell) { ExpShot.Launch(); return; } cooldownd = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Chimera Shot'); return start;"); if (ChimShot.IsSpellUsable && ChimShot.IsDistanceGood && ChimShot.KnownSpell) { ChimShot.Launch(); return; } cooldowne = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Kill Command'); return start;"); if (KillCommand.IsSpellUsable && KillCommand.IsDistanceGood && KillCommand.KnownSpell) { KillCommand.Launch(); return; } cooldownf = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Multi-Shot'); return start;"); if (MultiShot.IsSpellUsable && MultiShot.IsDistanceGood && MultiShot.KnownSpell) { MultiShot.Launch(); return; } cooldowng = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Aimed Shot'); return start;"); if (AimedShot.IsSpellUsable && AimedShot.IsDistanceGood && AimedShot.KnownSpell) { AimedShot.Launch(); return; } cooldownh = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Kill Shot'); return start;"); if (KillShot.IsSpellUsable && KillShot.IsDistanceGood && KillShot.KnownSpell && ObjectManager.Target.HealthPercent < 20) { KillShot.Launch(); return; } cooldownj = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Readiness'); return start;"); Logging.WriteDebug(cooldownj.ToString()); if (Readiness.IsSpellUsable && Readiness.KnownSpell) { Readiness.Launch(); return; } if (SteadyShot.IsSpellUsable && SteadyShot.IsDistanceGood && SteadyShot.KnownSpell) { SteadyShot.Launch(); return; } } } that is what my rotation looks like, a bunch of those if statements Link to comment https://wrobot.eu/forums/topic/3762-how-to-make-rotation-spam-next-button/ Share on other sites More sharing options...
Droidz 2738 Posted September 3, 2016 Share Posted September 3, 2016 Hello, try to change all "spellInstance.Launch();" Launch params: Spell.Launch(bool stopMove, bool waitIsCast, bool ignoreIfCast, string luaUnitId) Use params like: spell.Launch(spell.CastTime > 0, false); Link to comment https://wrobot.eu/forums/topic/3762-how-to-make-rotation-spam-next-button/#findComment-17583 Share on other sites More sharing options...
sith500 13 Posted April 24, 2019 Share Posted April 24, 2019 On 9/3/2016 at 6:20 AM, Brian said: cooldownc = Lua.LuaDoString<int>("start, duration, enabled = GetSpellCooldown('Black Arrow'); return start;"); if (cooldownc == 0 && BlackArrow.IsDistanceGood && BlackArrow.KnownSpell) Thanks for this code! Link to comment https://wrobot.eu/forums/topic/3762-how-to-make-rotation-spam-next-button/#findComment-53016 Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now