Right now im using weakauras to display that info on my client, but i will add an option for chat output![]()
How do you do that? I would am working on my own CR and i would like to be able to set some weak auras for AoE toggles as well
Right now im using weakauras to display that info on my client, but i will add an option for chat output![]()
I'm not concerned with seeing an overlay added, framerate loss is too high for me. But I game on a multiple monitor rig in windowed mode so I can just watch the bot for information.
However between looking at that as well as getting a note from Kane about C/C# I'm realizing I'm likely not the right person to be taking things over. I'll look into how I can get a legit copy of Visual Studio and see how long it takes to bone up on it but it is a language set I've avoided for 30+ years![]()
For now I'm hoping someone with skills already defined wants to take this over. Tuanha + Enyo's DPS is becoming more adequate for my spec but Simcraft was definitely better.
It would be amazing to see the ability to modify your rotation directly in Singular using Simcraft's base as an advanced user option (a checkbox allowing us to pick a rotation file). Since the rotations can be exported from an existing tool the learning curve for users has proven to be pretty simple and it would improve Singular's DPS significantly. I'm sure there is code cleanup that the core team would want to do but the basic work is done and shown to be able to provide optimal DPS.
It could make keeping Singular updated for specs as things change in future patches easier as the Singular team wouldn't need to focus as much on rotation calcs (so long as SimulationCraft exists, and I don't see it going away). Additionally it gives each user the ability to tailor rotations so we don't all look identical.
(and yes, I realize that is a pipedream, a guy can dream, no?![]()
in which file are those lines? thanksThis
Code:1) var be = LuaGet<int>("ret,_,_ = UnitPower(\"player\", SPELL_POWER_SHADOW_ORBS); return ret;", 0); 2) return LuaGet<String>("direction = GetEclipseDirection(); return direction;", 0); 3) () => LuaGet<int>("spellDmg = GetSpellBonusDamage(3); return spellDmg;", 0)); 4) () => LuaGet<double>("mastery, coefficient = GetMasteryEffect(); return mastery/100", 0));
to
Code:1) var be = LuaGet<int>("return UnitPower(\"player\", SPELL_POWER_SHADOW_ORBS);", 0); 2) return LuaGet<String>("return GetEclipseDirection();", 0); 3) () => LuaGet<int>("return GetSpellBonusDamage(3);", 0)); 4) StyxWoW.Me.Mastery
Would be a good start.
New edited version:
- Added HB window hotkey output
- Removed HB window spam (luaavg, iltavg)
- Changed the linies proposed by wulf
- Fixed Enraged Regeneration spellid for warriors
- Removed autocast for ground target spells (i.e. Heroic Leap, Ravager,...)
- AND added overlay for Hotkeys
Explosive trap is not being used. This is due to: removed autocast is ground target spells (ie Heroic Leap, Ravager, ...)?
Overlay work fine. Great Job.
Edit: would disable the click-to-move the mouse?
if (
(StyxWoW.Me.CurrentPendingCursorSpell.Name == "Heroic Leap" )
|| (StyxWoW.Me.CurrentPendingCursorSpell.Name == "YOURSPELL1" )
|| (StyxWoW.Me.CurrentPendingCursorSpell.Name == "YOURSPELL2" )
)
{
Write("Waiting for manual targeting!");
while (StyxWoW.Me.CurrentPendingCursorSpell != null)
{
StyxWoW.Sleep(100);
}
Write("Manual targeting successful!");
}
/console SET AutoInteract False
Autoclicking for ground target spell should work again.
I removed it only for Heroic Leap. The Routine will pause until the cursor is cleared or spell is cast manually.
If you want to remove your own spells from autogroundtarget casts just change line 644 in SimcraftTop.cs:
Code:if (StyxWoW.Me.CurrentPendingCursorSpell.Name == "Heroic Leap") to if (StyxWoW.Me.CurrentPendingCursorSpell.Name == ("Heroic Leap" || "YOURSPELL1"|| "YOURSPELL2"))
i wont add disable clicktomove. just make a ingame macro and drop it on yout hotbar
Code:/console SET AutoInteract False
Thanks. do you think is risky, I keep the explosive trap automatic ?
Edit:
changed to
if (StyxWoW.Me.CurrentPendingCursorSpell.Name == ("Heroic Leap" || "Explosive Trap"))
and the bot is not listed. Not appear Simcraft Impl.
if (
(StyxWoW.Me.CurrentPendingCursorSpell.Name == "Heroic Leap" )
|| (StyxWoW.Me.CurrentPendingCursorSpell.Name == "YOURSPELL1" )
|| (StyxWoW.Me.CurrentPendingCursorSpell.Name == "YOURSPELL2" )
)
{
Write("Waiting for manual targeting!");
while (StyxWoW.Me.CurrentPendingCursorSpell != null)
{
StyxWoW.Sleep(100);
}
Write("Manual targeting successful!");
}
got it wrong, this is correct:
Code:if ( (StyxWoW.Me.CurrentPendingCursorSpell.Name == "Heroic Leap" ) || (StyxWoW.Me.CurrentPendingCursorSpell.Name == "YOURSPELL1" ) || (StyxWoW.Me.CurrentPendingCursorSpell.Name == "YOURSPELL2" ) ) { Write("Waiting for manual targeting!"); while (StyxWoW.Me.CurrentPendingCursorSpell != null) { StyxWoW.Sleep(100); } Write("Manual targeting successful!"); }
But i would not add explosive trap there. i would just add movement spells or cc spells.
Ok. Thanks again. But do you think Blizzard could catch me, for I add this line with explosive trap?
actions+=/focus_fire,five_stacks=1
actions+=/focus_fire,if=buff.bestial_wrath.remains>3&buff.frenzy.up
actions+=/focus_fire,if=buff.frenzy.remains<3&buff.frenzy.up
actions+=/focus_fire,if=cooldown.stampede.remains>260&buff.frenzy.up
actions+=/focus_fire,if=cooldown.bestial_wrath.remains<2&buff.frenzy.up
Heads up to the Author.
You may want to remove the following global variables in your Lua calls as they are considered a big no no.
Code:1) var be = LuaGet<int>("ret,_,_ = UnitPower(\"player\", SPELL_POWER_SHADOW_ORBS); return ret;", 0); 2) return LuaGet<String>("direction = GetEclipseDirection(); return direction;", 0); 3) () => LuaGet<int>("spellDmg = GetSpellBonusDamage(3); return spellDmg;", 0)); 4) () => LuaGet<double>("mastery, coefficient = GetMasteryEffect(); return mastery/100", 0));
And any of the Chat output stuff![]()
This
Code:1) var be = LuaGet<int>("ret,_,_ = UnitPower(\"player\", SPELL_POWER_SHADOW_ORBS); return ret;", 0); 2) return LuaGet<String>("direction = GetEclipseDirection(); return direction;", 0); 3) () => LuaGet<int>("spellDmg = GetSpellBonusDamage(3); return spellDmg;", 0)); 4) () => LuaGet<double>("mastery, coefficient = GetMasteryEffect(); return mastery/100", 0));
to
Code:1) var be = LuaGet<int>("return UnitPower(\"player\", SPELL_POWER_SHADOW_ORBS);", 0); 2) return LuaGet<String>("return GetEclipseDirection();", 0); 3) () => LuaGet<int>("return GetSpellBonusDamage(3);", 0)); 4) StyxWoW.Me.Mastery
Would be a good start.
hunter="Hunter_BM_Custom"
level=100
race=
role=attack
position=ranged_back
talents=0001333
spec=beast_mastery
summon_pet=spirit_beast
hotkeys+=/hotkey_barrage,none,X
actions+=/mend_pet,if=(pet.health.pct<=50)&!pet.buff.mend_pet.up
actions+=/spirit_mend,if=(health.pct<=50)
actions+=/tranquilizing_shot,if=debuff.savage_howl.up
actions+=/tranquilizing_shot,if=debuff.reactive_earth_shield.up
actions+=/tranquilizing_shot,if=debuff.cauterizing_bolt.up
actions+=/tranquilizing_shot,if=debuff.earthen_barrier.up
actions+=/cobra_shot,if=(buff.steady_focus.down&prev_gcd.cobra_shot)&talent.steady_focus.enabled
actions+=/focus_fire,five_stacks=1
actions+=/stampede,if=(buff.bloodlust.up|buff.focus_fire.up)&cooldowns_enabled
actions+=/use_item,name=[COLOR="#FF0000"]YOUR_TRINKET_HERE[/COLOR],if=cooldowns_enabled
actions+=/focus_fire,if=buff.focus_fire.down&(((cooldown.bestial_wrath.remains<gcd)&buff.frenzy.up)|(buff.stampede.up&buff.frenzy.up)|(buff.bestial_wrath.up&buff.frenzy.up))
actions+=/bestial_wrath,if=(focus>30)&buff.bestial_wrath.down
actions+=/dire_beast
actions+=/call_action_list,name=single,if=(active_enemies=1)|!aoe_enabled
actions+=/call_action_list,name=aoe,if=active_enemies>1&aoe_enabled
actions.single+=/kill_command
actions.single+=/a_murder_of_crows
actions.single+=/kill_shot,if=(target.health.pct<=20)
actions.single+=/barrage,if=hotkey_barrage
actions.single+=/cobra_shot,if=(buff.steady_focus.down)&((14+cast_regen)<=focus.deficit)&talent.steady_focus.enabled
actions.single+=/arcane_shot,if=(buff.thrill_of_the_hunt.react&focus>35)|buff.bestial_wrath.up
actions.single+=/arcane_shot,if=(focus>=75)
actions.single+=/aspect_of_the_cheetah,if=(buff.aspect_of_the_cheetah.down)&moving
actions.single+=/cobra_shot
actions.aoe+=/multishot,if=(active_enemies>2)&(pet.buff.beast_cleave.down)
actions.aoe+=/barrage,if=hotkey_barrage
actions.aoe+=/cobra_shot,if=(buff.steady_focus.down)&((14+cast_regen)<=focus.deficit)&talent.steady_focus.enabled
actions.aoe+=/explosive_trap
actions.aoe+=/kill_command
actions.aoe+=/multishot,if=(active_enemies=2)&(pet.buff.beast_cleave.down)
actions.aoe+=/a_murder_of_crows
actions.aoe+=/kill_shot,if=(target.health.pct<=20)
actions.aoe+=/kill_shot,cycle_targets=1,max_cycle_targets=3,if=(target.health.pct<=20)
actions.aoe+=/arcane_shot,if=(buff.thrill_of_the_hunt.react&focus>35)|buff.bestial_wrath.up
actions.aoe+=/arcane_shot,if=(focus>=75)
actions.aoe+=/aspect_of_the_cheetah,if=(buff.aspect_of_the_cheetah.down)&moving
actions.aoe+=/cobra_shot
trinket[COLOR="#FF0000"]X[/COLOR]=[COLOR="#FF0000"]YOUR_TRINKET_HERE[/COLOR],id=[COLOR="#FF0000"]XXXXXX[/COLOR]
I use this BM Hunter Profile:
Code:hunter="Hunter_BM_Custom" level=100 race= role=attack position=ranged_back talents=0001333 spec=beast_mastery summon_pet=spirit_beast hotkeys+=/hotkey_barrage,none,X actions+=/mend_pet,if=(pet.health.pct<=50)&!pet.buff.mend_pet.up actions+=/spirit_mend,if=(health.pct<=50) actions+=/tranquilizing_shot,if=debuff.savage_howl.up actions+=/tranquilizing_shot,if=debuff.reactive_earth_shield.up actions+=/tranquilizing_shot,if=debuff.cauterizing_bolt.up actions+=/tranquilizing_shot,if=debuff.earthen_barrier.up actions+=/cobra_shot,if=(buff.steady_focus.down&prev_gcd.cobra_shot)&talent.steady_focus.enabled actions+=/focus_fire,five_stacks=1 actions+=/stampede,if=(buff.bloodlust.up|buff.focus_fire.up)&cooldowns_enabled actions+=/use_item,name=[COLOR="#FF0000"]YOUR_TRINKET_HERE[/COLOR],if=cooldowns_enabled actions+=/focus_fire,if=buff.focus_fire.down&(((cooldown.bestial_wrath.remains<gcd)&buff.frenzy.up)|(buff.stampede.up&buff.frenzy.up)|(buff.bestial_wrath.up&buff.frenzy.up)) actions+=/bestial_wrath,if=(focus>30)&buff.bestial_wrath.down actions+=/dire_beast actions+=/call_action_list,name=single,if=(active_enemies=1)|!aoe_enabled actions+=/call_action_list,name=aoe,if=active_enemies>1&aoe_enabled actions.single+=/kill_command actions.single+=/a_murder_of_crows actions.single+=/kill_shot,if=(target.health.pct<=20) actions.single+=/barrage,if=hotkey_barrage actions.single+=/cobra_shot,if=(buff.steady_focus.down)&((14+cast_regen)<=focus.deficit)&talent.steady_focus.enabled actions.single+=/arcane_shot,if=(buff.thrill_of_the_hunt.react&focus>35)|buff.bestial_wrath.up actions.single+=/arcane_shot,if=(focus>=75) actions.single+=/aspect_of_the_cheetah,if=(buff.aspect_of_the_cheetah.down)&moving actions.single+=/cobra_shot actions.aoe+=/multishot,if=(active_enemies>2)&(pet.buff.beast_cleave.down) actions.aoe+=/barrage,if=hotkey_barrage actions.aoe+=/cobra_shot,if=(buff.steady_focus.down)&((14+cast_regen)<=focus.deficit)&talent.steady_focus.enabled actions.aoe+=/explosive_trap actions.aoe+=/kill_command actions.aoe+=/multishot,if=(active_enemies=2)&(pet.buff.beast_cleave.down) actions.aoe+=/a_murder_of_crows actions.aoe+=/kill_shot,if=(target.health.pct<=20) actions.aoe+=/kill_shot,cycle_targets=1,max_cycle_targets=3,if=(target.health.pct<=20) actions.aoe+=/arcane_shot,if=(buff.thrill_of_the_hunt.react&focus>35)|buff.bestial_wrath.up actions.aoe+=/arcane_shot,if=(focus>=75) actions.aoe+=/aspect_of_the_cheetah,if=(buff.aspect_of_the_cheetah.down)&moving actions.aoe+=/cobra_shot trinket[COLOR="#FF0000"]X[/COLOR]=[COLOR="#FF0000"]YOUR_TRINKET_HERE[/COLOR],id=[COLOR="#FF0000"]XXXXXX[/COLOR]
actions+=/tranquilizing_shot,if=debuff.savage_howl.up
actions+=/tranquilizing_shot,if=debuff.reactive_earth_shield.up
actions+=/tranquilizing_shot,if=debuff.cauterizing_bolt.up
actions+=/tranquilizing_shot,if=debuff.earthen_barrier.up
actions+=/focus_fire,if=buff.focus_fire.down&(((cooldown.bestial_wrath.remains<gcd)&buff.frenzy.up)|(buff.stampede.up&buff.frenzy.up)|(buff.bestial_wrath.up&buff.frenzy.up))
actions.single+=/aspect_of_the_cheetah,if=(buff.aspect_of_the_cheetah.down)&moving
actions.aoe+=/aspect_of_the_cheetah,if=(buff.aspect_of_the_cheetah.down)&moving
Code:actions+=/tranquilizing_shot,if=debuff.savage_howl.up actions+=/tranquilizing_shot,if=debuff.reactive_earth_shield.up actions+=/tranquilizing_shot,if=debuff.cauterizing_bolt.up actions+=/tranquilizing_shot,if=debuff.earthen_barrier.up
Dont work. "Invalid Spell: tranquilizing_shot, skipping."
Thanks.For the invalid spells, you probably need to add them in the Spells list in "SimcNames.cs".
Code:actions+=/focus_fire,if=buff.focus_fire.down&(((cooldown.bestial_wrath.remains<2)&buff.frenzy.up)|(buff.stampede.up&buff.frenzy.up))
Please try this.
And i attached the SimcNames.cs with the missing spells.
hunter="Hunter_BM_Custom"
level=100
race=
role=attack
position=ranged_back
talents=0001333
spec=beast_mastery
summon_pet=spirit_beast
hotkeys+=/hotkey_barrage,none,X
actions+=/mend_pet,if=(pet.health.pct<=50)&!pet.buff.mend_pet.up
actions+=/spirit_mend,if=(health.pct<=50)
actions+=/tranquilizing_shot,if=debuff.savage_howl.up
actions+=/tranquilizing_shot,if=debuff.reactive_earth_shield.up
actions+=/tranquilizing_shot,if=debuff.cauterizing_bolt.up
actions+=/tranquilizing_shot,if=debuff.earthen_barrier.up
actions+=/cobra_shot,if=(buff.steady_focus.down&prev_gcd.cobra_shot)&talent.steady_focus.enabled
actions+=/focus_fire,five_stacks=1
actions+=/stampede,if=(buff.bloodlust.up|buff.focus_fire.up)&cooldowns_enabled
actions+=/use_item,name=XXXXXXXXXXXXXX,if=cooldowns_enabled
actions+=/focus_fire,if=buff.focus_fire.down&(((cooldown.bestial_wrath.remains<2)&buff.frenzy.up)|(buff.stampede.up&buff.frenzy.up))
actions+=/bestial_wrath,if=(focus>30)&buff.bestial_wrath.down
actions+=/dire_beast
actions+=/call_action_list,name=single,if=(active_enemies=1)|!aoe_enabled
actions+=/call_action_list,name=aoe,if=active_enemies>1&aoe_enabled
actions.single+=/kill_command
actions.single+=/a_murder_of_crows
actions.single+=/kill_shot,if=(target.health.pct<=20)
actions.single+=/barrage,if=hotkey_barrage
actions.single+=/cobra_shot,if=(buff.steady_focus.down)&((14+cast_regen)<=focus.deficit)&talent.steady_focus.enabled
actions.single+=/arcane_shot,if=(buff.thrill_of_the_hunt.react&focus>35)
actions.single+=/arcane_shot,if=(focus>=75)
actions.single+=/aspect_of_the_cheetah,moving=1,if=buff.aspect_of_the_cheetah.down
actions.single+=/cobra_shot
actions.aoe+=/multishot,if=(active_enemies>2)&(pet.buff.beast_cleave.down)
actions.aoe+=/barrage,if=hotkey_barrage
actions.aoe+=/cobra_shot,if=(buff.steady_focus.down)&((14+cast_regen)<=focus.deficit)&talent.steady_focus.enabled
actions.aoe+=/explosive_trap
actions.aoe+=/kill_command
actions.aoe+=/multishot,if=(active_enemies=2)&(pet.buff.beast_cleave.down)
actions.aoe+=/a_murder_of_crows
actions.aoe+=/kill_shot,if=(target.health.pct<=20)
actions.aoe+=/kill_shot,cycle_targets=1,max_cycle_targets=3,if=(target.health.pct<=20)
actions.aoe+=/arcane_shot,if=(buff.thrill_of_the_hunt.react&focus>35)
actions.aoe+=/arcane_shot,if=(focus>=75)
actions.aoe+=/aspect_of_the_cheetah,moving=1,if=buff.aspect_of_the_cheetah.down
actions.aoe+=/cobra_shot
trinketX=XXXXXXXXXXXXXXX,id=XXXXXXXXX
<02:00>:Styx.InvalidObjectPointerException: Cannot read a descriptor on an invalid object.
at Styx.WoWInternals.WoWObjects.WoWObject.[](UInt32 )
at Styx.WoWInternals.WoWObjects.WoWUnit.GetCurrentPower(WoWPowerType type)
at Styx.WoWInternals.WoWObjects.WoWUnit.get_CurrentHealth()
at Simcraft.SimcraftImpl.HealthProxy.get_GetCurrent() in c:\HB\Bots\simpl-master\SimcraftProxies.cs:line 1703
at Simcraft.SimcraftImpl.HealthProxy.get_TimeToDie() in c:\HB\Bots\simpl-master\SimcraftProxies.cs:line 1720
at Simcraft.SimcraftImpl.TargetProxy.get_time_to_die() in c:\HB\Bots\simpl-master\SimcraftProxies.cs:line 1092
at Simcraft.URBRHOIORQ.<GenerateRogueAssassinationPvEBehavior>b__ce(Object _if)
at Styx.TreeSharp.Decorator.CanRun(Object context)
at Styx.TreeSharp.Decorator..()
at Styx.TreeSharp.Composite.Tick(Object context)
at Styx.TreeSharp.PrioritySelector..()
at Styx.TreeSharp.Composite.Tick(Object context)
at Styx.TreeSharp.PrioritySelector..()
at Styx.TreeSharp.Composite.Tick(Object context)
at Simcraft.SimcraftImpl.ActionProxy.ActionImpl.Tick(Object context) in c:\HB\Bots\simpl-master\SimcraftProxies.cs:line 301
<02:01>:Styx.InvalidObjectPointerException: Cannot read a descriptor on an invalid object.
at Styx.WoWInternals.WoWObjects.WoWObject.[](UInt32 )
at Styx.WoWInternals.WoWObjects.WoWUnit.GetCurrentPower(WoWPowerType type)
at Styx.WoWInternals.WoWObjects.WoWUnit.get_CurrentHealth()
at Simcraft.SimcraftImpl.HealthProxy.get_GetCurrent() in c:\HB\Bots\simpl-master\SimcraftProxies.cs:line 1703
at Simcraft.SimcraftImpl.HealthProxy.get_TimeToDie() in c:\HB\Bots\simpl-master\SimcraftProxies.cs:line 1720
at Simcraft.SimcraftImpl.TargetProxy.get_time_to_die() in c:\HB\Bots\simpl-master\SimcraftProxies.cs:line 1092
at Simcraft.URBRHOIORQ.<GenerateRogueAssassinationPvEBehavior>b__ce(Object _if)
at Styx.TreeSharp.Decorator.CanRun(Object context)
at Styx.TreeSharp.Decorator..()
at Styx.TreeSharp.Composite.Tick(Object context)
at Styx.TreeSharp.PrioritySelector..()
at Styx.TreeSharp.Composite.Tick(Object context)
at Styx.TreeSharp.PrioritySelector..()
at Styx.TreeSharp.Composite.Tick(Object context)
at Simcraft.SimcraftImpl.ActionProxy.ActionImpl.Tick(Object context) in c:\HB\Bots\simpl-master\SimcraftProxies.cs:line 301