-
Posts
438 -
Joined
-
Last visited
Content Type
Forums
Articles
Bug Tracker
Downloads
Store
Everything posted by Bugreporter
-
And here is a very simple solution that use the focus target as target. If you dont use a english WoW Version you have to change "Tricks of the Trades" into your language spell <FightClassSpell> <SpellName>RunMacroText("/cast [combat][@focus] Tricks of the Trades")</SpellName> <FightClassConditions /> <Priority>1</Priority> <CheckIfKnowUsableDistance>false</CheckIfKnowUsableDistance> <CheckIfView>false</CheckIfView> <Timer>30000</Timer> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <DescriptionSpell>Simplest solution. You need someone in Focus</DescriptionSpell> </FightClassSpell>
-
This is the PvE code (without PvP) . untestet. just a proof of concept. Tank will be the target if UnitExists("target") and not UnitIsFriend("player", "target") then local idTotT=57934 local spellname=GetSpellInfo(idTotT) if (UnitClassification("target")=="worldboss")) then if not (UnitIsUnit("targettarget","player")) then if (IsSpellInRange(spellname, "targettarget")==1)then TargetUnit("targettarget") CastSpellByName(spellname) TargetUnit("playertarget") end end else if (UnitGroupRolesAssigned("targettarget")=="TANK") then if (IsSpellInRange(spellname, "targettarget")==1)then TargetUnit("targettarget") CastSpellByName(spellname) TargetUnit("playertarget") end end end end
-
Sorry, i didnt post a lua-script, it was only an example/idea. I make the real code. and will post it, if it is ready.
-
Focus target work, if you use your macro and if you have selected the focus before, but the challange is to select the TotT-target by script. A solution could be (simple to code) if not pvp then if target == worldboss (all bosses with skulls are worldbosses) then if targettarget != me then cast TotT on targettarget. end else if targettarget == tank then cast TotT on targettarget end end else find a member that is not a healer: cast TotD on member end This should work and will give the Tank the aggro in the most cases. in PvP you will get the first nonHealer. But... is TotT against Tanks really useful at the moment ? They didn't have a aggro problem and rogue are also most aggro-free (a vanish would help, if not). And 15% more damage for a single person in a 25 raid for 6 sec every 30 sec are less then 0,12 % for the raid. 15/(30/6) = 3% for a single person 3 / 25 ... 0,12% for the raid. and this only, if we dont have the TotT Glyphe. bzw. is TotT stackable? Means, if a tank has already TotT from another rogue is our TotT helpful ? And at last: Did someone ever heared that a tank said :" Where is my TotT ?"
-
The problem is not Tricks of the Trades. The problem is to find the right target. Do you want TotT of the tank ? Or on another rogue? (without Glyphe TotT) and than maybe mutualy? And if there are more tanks in the raid: Which tank should get TotT? The Boss-tank or the Adds-tank? And if they both tank the boss (spotting), how do the script select the right tank ? Or just on a Healer ? *fg*
-
This snippet needs the snippet or another solution to handle Cheap Shot What do we do ? We check, if the target is stuned. If not, we try a Kidney Shot, If Kidney Shot not ready AND we are in PvP OR in a Group AND attack the same Mob AND Vanish and Cheapshot are ready we vanish. ...(and now?)... Your (or my ()) Cheap Shot solution do its best to stun again. We remember Preparation...and use it. And we start at point 3. again After this Kidney Shot should be ready again. (20 sek cd) I use Kidney Shot with 4 or more Combo Points. If you want it faster, change the value after GetComboPoints (btw: do you know Nerve Strike ?) <FightClassSpell> <SpellName>--Stun</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>LuaScript</ContionType> <Param xsi:type="FightClassConditionLua"> <LuaScript>local spell="nothing" if UnitExists("target") and not UnitIsFriend("player", "target") and not (UnitLevel("target")==-1) then local stunId = { 1833, --[[ Cheap Shot ]] 408, --[[ Kidney Shot ]] 47481, --[[ Gnaw ]] 5211, --[[ Bash ]] 22570, --[[ Maim ]] 9005, --[[ Pounce ]] 24394, --[[ Intimidation ]] 91797, --[[ Monstrous Blow ]] 50519, --[[ Sonic Blast ]] 44572, --[[ Deep Freeze ]] 118271, --[[ Impact ]] 853, --[[ Hammer of Justice ]] 89766, --[[ Axe Toss ]] 54786, --[[ Demon Leap ]] 30283, --[[ Shadowfury ]] 7922, --[[ Charge Stun ]] 46968, --[[ Shockwave ]] 56, --[[ Stun ]] 20549 --[[ War Stomp ]] } local function isStunned(unit) for i=1,#stunId do local spellname=GetSpellInfo(stunId[i]) if UnitAura(unit,spellname) then return true end end return false end if not isStunned("target") then --[[ not stunned? maybe I can help... ]] if not IsStealthed() then local idKidneyShot=408 local start, duration, enabled = GetSpellCooldown(idKidneyShot) if (duration==0) then --[[ Combo Points > 3 ? Gooood...night ]] if (GetComboPoints("player", "target") > 3) then local spellname=GetSpellInfo(idKidneyShot) if (IsSpellInRange(spellname, "target")==1) then spell=spellname end end; else --[[ Vanish only in PvP or if another group-member attack this target test: set "tryVanish=1" at training dummys ]] local tryVanish=0 if UnitIsPVP("player") and UnitIsPVP("target") then tryVanish=1; else local group="party" if IsInRaid() then group = "raid" end for i=1,GetNumGroupMembers() do local member=group..i if not (UnitIsUnit(member,"player")) then if (UnitIsUnit(member.."target","target")) then tryVanish=1 break end end end end if (tryVanish==1) then local idVanish=1856 local idPreparation=14185 local idCheapShot=1833 local start, duration, enabled = GetSpellCooldown(idVanish) local CSstart, CSduration, CSenabled = GetSpellCooldown(idCheapShot) --[[ Vanish AND CheapShot ready? And Target in CS-range ? ]] if (duration==0) and (CSduration==0) then local spellname=GetSpellInfo(idCheapShot) if (IsSpellInRange(spellname, "target")==1) then spell=GetSpellInfo(idVanish) end else local start, duration, enabled = GetSpellCooldown(idPreparation) if (duration==0) then spell=GetSpellInfo(idPreparation) end end end end end end end if not (spell=="nothing") then CastSpellByName(spell) print("stun: "..spell) result=true end;</LuaScript> <VarRet>result</VarRet> <ValueRet>true</ValueRet> </Param> </FightClassCondition> </FightClassConditions> <Priority>18</Priority> <CombatOnly>false</CombatOnly> <CheckIfKnowUsableDistance>false</CheckIfKnowUsableDistance> <CheckIfView>false</CheckIfView> <AddToSettings>true</AddToSettings> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <DescriptionSpell>Stun it, whenever you can</DescriptionSpell> </FightClassSpell> based on WoW 5.4.2.
-
"--[[break Stealth]]" as spellname (as a lua-script)doesnt work. Array error. but "--Break Stealth" works (?!?) as spellname. I can open the settings window and it looks good. *happy again* [F] 00:34:51 - Cast Redirect [F] 00:34:52 - Cast Marked for Death [F] 00:34:52 - Launch LUA script: --Break Stealth [F] 00:34:52 - Launch LUA script: RunMacroText("/startattack") [F] 00:34:53 - Cast Slice and Dice [F] 00:35:55 - Cast Stealth
-
Why do you don't remove the comments while the converting in C# ? They are only needed in the source-code (in this case XML) My special need: I want to use a matching return code in my lua scripts, to get an entry in the debug log. Because auf this, the "Spellname" must be a running lua script. My plan was to use "--Kick it" as the Spellname and a regular return code at the moment I use "Kick it" as spellname without a matching return code. "--[[Kick it]]" will also work, (i think), so its just a very nice to have
-
-- is not support as one-line-comment try this code in the debugger ret=1 -- ret=2 ret=3 //ret=1 is the result ret=1 --[[ ret=2 ]] ret=3 //ret=3 is the result But both should be work http://en.wikibooks.org/wiki/Lua_Programming/How_to_Lua/comment
-
Same usage of a LUA-Script as described "I want to break free" (Queen). In this case we want to break out of stealth. In PvP this will be most done with Cheap Shot , in PvE with Ambush . Ambush will only work, if you are behind the target. Because we couldn't not really be sure, that we are behind the target, I use a shadowstep before, (and a pickpocket. We have it, we should use it ;-) ). If Ambush is not usable (not more behind or spell not known), I try Cheap Shot, Garrote, Revealing Strike and at last Sinister Strike to get out of Stealth into combat. <FightClassSpell> <SpellName>--Break Stealth</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>LuaScript</ContionType> <Param xsi:type="FightClassConditionLua"> <LuaScript>local attack=0 if IsStealthed() and UnitExists("target") and not UnitIsFriend("player", "target") then if not (UnitIsPVP("target")) and (((UnitHealth("target") / UnitHealthMax("target") * 100) > 97) or (UnitLevel("target")==-1)) then --[[ Ambush only if target is not in PVP and only as Opener OR target is a boss (they are not stuneable, so we prefere Ambush) ]] local idShadowStep=36554 local idPickPocket=921 local idAmbush=8676 local start, duration, enabled = GetSpellCooldown(idShadowStep) local nameAmbush=GetSpellInfo(idAmbush) local timeleft=GetTime()-start if (duration==0) then local nameShadowStep=GetSpellInfo(idShadowStep) if (IsSpellInRange(nameShadowStep, "target")==1) then CastSpellByName(nameShadowStep) end elseif (timeleft < 2) then local spellname=GetSpellInfo(idPickPocket) CastSpellByName(spellname) CastSpellByName(nameAmbush) attack=nameAmbush end end if (attack==0) then --[[ 1. try Ambush (failed if you are not behind the target or you dont now the spell) 2. try Cheap Shot (failed if unknown) 3. try Garrote (failed if unknown) 4. try Revealing Strike (we want to break steal, right ?) 5. try ( Fifth try? You are not level 20 ????) okay, a simple sinister will do the work --]] local idSpells={1833,703,84617,1752} for i=1,#idSpells do local start, duration, enabled = GetSpellCooldown(idSpells[i]) if (duration==0) then local spellname=GetSpellInfo(idSpells[i]) if IsStealthed() and (IsSpellInRange(spellname, "target")==1) then CastSpellByName(spellname) attack=spellname end end end --[[ no more try. get near to the target !!! You'are a melee !!! ]] end end if (attack~=0) then print(attack) result=true end </LuaScript> <VarRet>result</VarRet> <ValueRet>true</ValueRet> </Param> </FightClassCondition> </FightClassConditions> <Priority>19</Priority> <CombatOnly>false</CombatOnly> <CheckIfKnowUsableDistance>false</CheckIfKnowUsableDistance> <CheckIfView>false</CheckIfView> <AddToSettings>true</AddToSettings> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <DescriptionSpell>Break stealth with ambush, Cheap shot or Garrote</DescriptionSpell> </FightClassSpell> based on WoW 5.4.2.
-
For Rogue (mostly Combat Rogue) : (Discussions about the snippets in the correspondending Threads) Set your poisons out of combat. Manage Redirect and Marked for Death : Use all 4 abilitys to kick a spell. Kick, Blind, Gouge, Kidney Shot. (and Feint, if it is not kickable) : All buffs at once : From Stealth to Combat. Cheap Shot / Ambush, Garotte, Revealing Strike, Sinister (one of them do the job) needs . Cheap Shot (stun), Kidney Shot (stun), Vanish, Cheap Shot (stun), Preparation, Vanish, Cheap Shot (stun), Kidney Shot (stun). I'am sure, your opponent will love you for this ;-) 10 /use 13 and /use 14 . 30 Yards ! and no step closer...bye! How to use the snippets: (looks more then it is) click on the snippet you want mark the whole code (from <FightClassSpell> to </FightClassSpell>) CTRL-C (copy the marked code) . Go to your mrobot directory open the fight class folder right click on the file do you want to edit Edit (or Edit with Notepad++, if you use Notepad++) Go to the last line CTRL-V (append the code to your fight class) Save the new code . start the Fight Class editor open the changed fightclass move the new spell to the right place in the priority list The Codes above are mostly LUA-Scripts without a LUA-Script with a LUA-Condition that needs never to be true. And they work fine! :-) 1.) Lua Script Spell. With a Lua Script we can use our own fantasy Spell name, instead of a real script, because Lua Scripts are bad to be supported (insert,delete,insert) and they are very ugly in the settings window. So we use only a "--Short Description" as lua script. Because we don't have a real LUA script here, we use the comment signs "--" . 2.) Lua Script Condition. The script here do the whole work. The local variable result is only needed to get a log-file entry. See also. A description for the snippets are in the correspondending Threads
-
Energy Pool Version Of SND Lua Code (Read Me)
Bugreporter replied to Womble's topic in Fight Classes assistance
instantspell condition: Is Spell Usable: ShadowDance = false anotherSpell condition: Is Spell Usable: ShadowDance = false instantspell and anotherSpell won't be casted, if shadowdance is available. Again: You have to wait in wrobot like you have wait in WoW. Do nothing until you have enough energy to do shadowdance. If you want to do your rotation, you will never have enough energy... -
Its ,much better then before, but under some cirrcumstances I see only one target in Raid but he will switch to AoE (means, wrobot "see" more then one target). I search a situation, which is simple to adjust.
-
Energy Pool Version Of SND Lua Code (Read Me)
Bugreporter replied to Womble's topic in Fight Classes assistance
There is no way to pause. you have to find a workaraound. i.e. stop all if shadow dance is ready -
Kick it (a solution for Rogue)
Bugreporter replied to Bugreporter's topic in Fight Classes assistance
Use it. Thats the reason why it is posted -
Same usage of a LUA-Script as described A (Combat) Rogue has at last 4 spells to interrupt spells: Kick, Blind, Gouge, Kidney Shot. Not all are usable in all situations, but all have the same conditions to try a try: the target must not be friendly its cast must be a interruptable spell our spell must be ready to use and the target must be in range. (added) If the spell not interruptable, cast feint (and hope the best) Kick need a high priority, feint a low, so I removed it with this information we could combine this 4 spells to one cast, which make our fight class profile smaller, make the settings clearer gives a info of the spell, which is interrupted allow us to do changes in the source once, not four times Hint: With the talent "Dirty Tricks" the cost of blind and gouge are 0 energie (like Kick) <FightClassSpell> <SpellName>--Kick Spells</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>LuaScript</ContionType> <Param xsi:type="FightClassConditionLua"> <LuaScript>local kicked=0 if UnitExists("target") and not UnitIsFriend("player", "target") then local spell, rank, displayName, icon, startTime, endTime, isTradeSkill, castID, interrupt = UnitCastingInfo("target"); if (interrupt==false) then --[[ (cheapest first) Kick,Blind,Gouge, Kidney Shot --]] local idSpells={1766,2094,1776,408} local now=GetTime() for i=1, 4 do if (kicked==0) then local start, duration, enabled = GetSpellCooldown(idSpells[i]) if (duration==0) then local spellname=GetSpellInfo(idSpells[i]) if (IsSpellInRange(spellname, "target")==1) then CastSpellByName(spellname) kicked=idSpells[i] print(spell.." kicked by "..spellname) end end end end end end result=(kicked~=0)</LuaScript> <VarRet>result</VarRet> <ValueRet>true</ValueRet> </Param> </FightClassCondition> </FightClassConditions> <Priority>29</Priority> <CheckIfKnowUsableDistance>false</CheckIfKnowUsableDistance> <AddToSettings>true</AddToSettings> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <DescriptionSpell>Kick > Gouge > Kidney Shot for interruptable spells</DescriptionSpell> </FightClassSpell> based on WoW 5.4.2.
-
Oh, and if Dustin has used his real Name for Battle.net and YouTube/Google, it's not the best idea for those videos with his real-name-account
-
The bads on VideoTutorials is a) the cant be examine for term b) they are not really editable, if something have changed. I prefer text-based documentation like pdf or html.
-
2 reasons: 1. Key X has not the sit/down function 2. There is a window open which is awaiting an input.
-
All Buffs at once (a solution)
Bugreporter replied to Bugreporter's topic in Fight Classes assistance
I use the spell option "Not a spell, is lua script" to use a fantasy spell name. A timer wouldn't work because the duration/cd could be changed, because of items (i.e http://ptr.wowhead.com/item=102292) or other buffs the buffs have CD the buffs should be available at fight start. And the solution above do a good job- 7 replies
-
- Buffs
- Instant Spells
-
(and 1 more)
Tagged with:
-
LuaScript VarRet (a public question @ Droidz)
Bugreporter replied to Bugreporter's topic in Fight Classes assistance
Ok, that means Blizzard must only analyse the fight classes in the download section (grep VarRet *) for unique return variables and check them while playing to get an indication who use wrobot fight profiles ? Right ? -
The following Code is a LUA-Script without a LUA-Script with a LUA-Condition that never wil be true. And it works fine! :-) 1.) Lua Script Spell. With a Lua Script we can use our own fantasy Spell name, instead of a real script, because Lua Scripts are bad to be supported (insert,delete,insert) and they are very ugly in the settings window. So we use only the Word "--Buffs" as lua script. Because we don't have a real LUA script here, we use the comment signs "--" . (see note below the code) 2.) Lua Script Condition. This do the work. The script do all needed checks for the buffs. It checks, if we are in combat (at least 1 Combo Point at a living and exiting target.) and then it check if the buffs (idBuffs) are known and cast them if they needed. The local variable buffed is only needed for debugging. <FightClassSpell> <SpellName>--Buffs</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>LuaScript</ContionType> <Param xsi:type="FightClassConditionLua"> <LuaScript>local buffed=0 if UnitExists("target") and not UnitIsFriend("player", "target") and not (UnitIsDead("target")) then comboPoints = GetComboPoints("player", "target") if (comboPoints > 0) then --[[ Adrenalin,Combat Readiness,Shadow Blades,Berserking,lifeblood,Blood Flurry ]] local idBuffs={13750,74001,121471,26297,121279,20572} local idStealth=1784 local spellname=GetSpellInfo(idStealth) local start, duration, enabled = GetSpellCooldown(spellname) if (enabled==1) then for i=1, 6 do if (IsPlayerSpell(idBuffs[i])) then local start, duration, enabled = GetSpellCooldown(idBuffs[i]) if (duration==0) then local spellname=GetSpellInfo(idBuffs[i]) CastSpellByName(spellname) print("buff: "..spellname) buffed=buffed+1 end end end end end end result=(buffed>0) </LuaScript> <VarRet>result</VarRet> <ValueRet>true</ValueRet> </Param> </FightClassCondition> </FightClassConditions> <Priority>23</Priority> <AddToSettings>true</AddToSettings> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <DescriptionSpell>Set all known buffs</DescriptionSpell> </FightClassSpell> based on WoW 5.4.2. Note: In a previous version I use "Buffs" instead of "--Buffs". I changed this to get an entry in the log-file. If you dont like "--Buffs" in the settings window, you can change it back to "Buffs" (or what ever you want). But then you have also change "<ValueRet>true</ValueRet>" to "<ValueRet>notNeeded</ValueRet>". You don't get any logfile entrys in this case, but the script works fine.
- 7 replies
-
- Buffs
- Instant Spells
-
(and 1 more)
Tagged with:
-
I will use parts of this. I think i will do my own code, because for rouges I have only to check 7 spells/poisons, and I know which one I want to reuse. so i dont have to check all 40 possible buffs. My solution:
-
Which one is to prefer ? XML for publishing. But is there any reason to prefer cs or xml in other cases ?
-
LuaScript VarRet (a public question @ Droidz)
Bugreporter posted a topic in Fight Classes assistance
Is the variable ,that I define as return value, defined as a local or a global variable ? <LuaScript>local start, duration, enabled = GetSpellCooldown("1784"); retV=duration</LuaScript> <VarRet>retV</VarRet> <ValueRet>0</ValueRet> retV = local or global ?