-
Posts
438 -
Joined
-
Last visited
Content Type
Forums
Articles
Bug Tracker
Downloads
Store
Posts posted by Bugreporter
-
-
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...
-
There is no way to pause. you have to find a workaraound. i.e. stop all if shadow dance is ready
-
If I credit you when I release my profile are you alright with me using this as an optional spell to run alongside my rotation?
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.
-
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
-
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.
-
Which one is to prefer ?
XML for publishing.
But is there any reason to prefer cs or xml in other cases ?
-
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 ?
-
Here are two of my AoE spells. Maybe it help
<FightClassSpell> <SpellName>Crimson Tempest</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>ComboPoint</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>Bigger</Type> <Value>4</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>HostileUnitNear</ContionType> <Param xsi:type="FightClassConditionUnitNear"> <Number>4</Number> <Type>Bigger</Type> <Radius>8</Radius> </Param> </FightClassCondition> <FightClassCondition> <ContionType>Buff</ContionType> <Param xsi:type="FightClassConditionStringBool"> <Name>Stealth</Name> </Param> </FightClassCondition> </FightClassConditions> <Priority>34</Priority> <CombatOnly>false</CombatOnly> <CheckIfView>false</CheckIfView> <AddToSettings>true</AddToSettings> <AOESpellMePos>true</AOESpellMePos> <DescriptionSpell>AoE. Used on 4 or more hostile. Disabled in Groups</DescriptionSpell> </FightClassSpell> <FightClassSpell> <SpellName>Blade Flurry</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>Buff</ContionType> <Param xsi:type="FightClassConditionStringBool"> <Name>Blade Flurry</Name> <Need>true</Need> </Param> </FightClassCondition> <FightClassCondition> <ContionType>HostileUnitNear</ContionType> <Param xsi:type="FightClassConditionUnitNear"> <Number>7</Number> <Type>Bigger</Type> <Radius>10</Radius> </Param> </FightClassCondition> <FightClassCondition> <ContionType>IsSpellUsable</ContionType> <Param xsi:type="FightClassConditionStringBool"> <Name>13877</Name> <Need>true</Need> </Param> </FightClassCondition> </FightClassConditions> <Priority>33</Priority> <CombatOnly>false</CombatOnly> <CheckIfKnowUsableDistance>false</CheckIfKnowUsableDistance> <CheckIfView>false</CheckIfView> <AddToSettings>true</AddToSettings> <DescriptionSpell>AoE. Off if more then 7 hostile. Disabled in Group</DescriptionSpell> </FightClassSpell>
-
Great ! if blizzard read this, they must only look in there logs, who has "A." wispered at xx:yy:uu. and they know who you are.
-
I 've solved the problem simpler. i Just case Ambush and after them Carrote . One if them will work. Ambush preferred.
-
I have removed all Hostile Unit Near Options from my Profile (no AOE at the moment) and with this it looks a little better, More tests needed....
... not really... the only spell that work and work and work is Feint (I dont know why)
<FightClassSpell> <SpellName>Feint</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>Buff</ContionType> <Param xsi:type="FightClassConditionStringBool"> <Name>Feint</Name> </Param> </FightClassCondition> <FightClassCondition> <ContionType>LuaScript</ContionType> <Param xsi:type="FightClassConditionLua"> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <VarRet>retV</VarRet> <ValueRet>0</ValueRet> </Param> </FightClassCondition> <FightClassCondition> <ContionType>MeInCombat</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>MeInGroup</ContionType> <Param xsi:type="FightClassConditionBool" /> </FightClassCondition> </FightClassConditions> <Priority>11</Priority> <AddToSettings>true</AddToSettings> <DescriptionSpell>Heal. Trust your Healer, Use it only solo ore manual</DescriptionSpell> </FightClassSpell>
Tested on timeless island with the bosses
all the same problems....
-
-
Do you think you could it handle without waits if you are playing without a bot ?
You have to wait before you use Shadow Dance for the energy (you coudn't realise this with a bot. WoW doesnt have a wait spell). Or you use Killing Spree before Shadow Dance to save/get Energie (this could be done by the bot.
Or you use Shadow Dance, Ambush, Killing Spree (don't know if this work) and Ambush again to get the missing energy. As Rogue there are not really much spells, that dont use energy.
-
start, duration, enabled = GetSpellCooldown(spellName or spellID or slotID, "bookType");
http://www.wowwiki.com/API_GetSpellCooldown
I think you need a lua script to realise that. With start and duration you could check if its time to cast and if CP is 5, but ... if its time to cast AND cp is not 5 and another spell needs less the 5 CP (Slice and dice i.e.), your combo point are gone.
Your cant wait "Oh, only 3 sec, and I only need 2 more CP".
-
Because of the cd you have to check, if the Spell is Useable.
Its not able to do a pause. And the energy could be low. Shadow Dance dont need energy. Which is the next spell do you want cast after shadow dance is activated ?
Dont think linear. wrobot use the spells depends on its Priority and the conditions you set. So, after shadow dance you could forbit some spells with "Buff: Shadow Dance = false", you can have spells that you needed in shadow dance and without (dont use Buff-Condition) and you have spells that you only want cast after Shadow Dance (Condition "Buff: Shadow Dance = true")
You can also use the same spell more then once, if you have more conditions. i.e.
Blade Flurry off if only one target
Blade Flurry on if target >1 and <=7
Bladeflurry off if target >=8 (to save energy for Fan of knives and Crimson)
in this case you need 3x the same spell with different conditions, because wrobot can't handle OR-operations
-
Because Hacked player are self fault by default.
1.) they dont use the Authenticator
2.) and they have shared there Login Data. (or they used 123456 as password, but where should the hacker know there mail adress ?)
3.) if hacked player would recive erverything back, who can prevent that the same user are "hacked" every 2 weeks and get the resource back and so on. This was an open door for abuse.
-
Rupture needs a lot of combo points to be useful, do you want cast rupture with 1 CP just because its runing out ?
-
My Idea (i dont play Sub)
1. Shadow Dance with a high priority (high in the list)
2. Energy not as option. Shadow Dance remain 8 sec, so it should take long enough to build enough energy for the next spell
3. Check if Spell is availaby.
4. cast.
5. optional you can use it only in PvP
6. Set "Buff: Shadow Dance" option for the next spell you want to use after shadow step
-
Its not a range problem....but I think i could isolate the problem:
[Ohren]Combat Rouge ....works fine
[Ohren BR]Combat Rouge (V1) works fine
Only my next Version of [Ohren BR]Combat Rouge (v2) has this problem. I will do a few tests more, but I think either the Fight Class profile is to large (to much to handle) for the input in a boss fight or there is a bug in one of the conditions which will add and add and add errors until nothing work anymore or there is a bug in wrobot to handle some setting (or all together).
However, I will check, if my observatins are right.(v1 ok, v2 bad) and if so, I have to analyse a lot of xml-code....(45 spells, some double because of other conditions, 1515 lines)
on the 1. view the luas are looking good (snippet).
<ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV=UnitIsPVP("player")</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV=UnitIsPVP("player")</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV=UnitIsPVP("player")</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>if UnitIsPVP("player") or (UnitInParty("player")==nil) then retV=1; end</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>start, duration, enabled = GetSpellCooldown("1784"); </LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>if UnitIsPVP("player") or (UnitInParty("player")==nil) then retV=1; end</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>if UnitIsPVP("player") or (UnitInParty("player")==nil) then retV=1; end</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV = 0 if UnitExists("target") and UnitIsFriend("player", "target") then retV = 1 end</LuaScript> <ContionType>LuaScript</ContionType> <LuaScript>retV=UnitIsEnemy("player","target")</LuaScript>
Snippets of LUA codes (for FightClass)
in Lua programming
Posted
For Rogue (mostly Combat Rogue) :
(Discussions about the snippets in the correspondending Threads)
How to use the snippets: (looks more then it is)
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