Jump to content

Bugreporter

WRobot user
  • Posts

    438
  • Joined

  • Last visited

Posts posted by Bugreporter

  1. 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

  2. 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...

  3. 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 &gt; Gouge &gt; Kidney Shot for interruptable spells</DescriptionSpell>
        </FightClassSpell>
    
    
    

    based on WoW 5.4.2.

     

  4. 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 &gt; 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&gt;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.

  5. 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>
    
    
  6. 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

    Chi-Ji

    Xuen
    Niuzao
    Yu'lon

    all the same problems....

  7. wrobot can only do, what you can do in game too (without wait).

     

    But I have another Idea:

     

    Disable all instant spells that costs energy, if Shadow Dance is available. Maybe combined with Combat readiness, Adrenalin Rush, and Shadow Blades (only once a time) you couldt get, what you want.

  8. 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.

  9. 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".

  10. 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

  11. 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.

  12. 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

  13. 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>
    
    
    
×
×
  • Create New...