Jump to content

Bugreporter

WRobot user
  • Posts

    438
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Bugreporter reacted to Droidz in Skull marked ?   
    Hello,
     
    You have lua functions GetRaidTargetIndex and SetRaidTarget (or SetRaidTargetIcon)
     
    Samples:
     
    Launch the spell id 109259 on the first boss with skull icon:

    local SpellName = GetSpellInfo(109259) for i = 1, 4, 1 do local UnitIdString = "boss" .. i if UnitExists(UnitIdString) then if GetRaidTargetIndex(UnitIdString) == 8 then CastSpellByName(SpellName, UnitIdString) return end end end Launch the spell id 109259 on the first raid target with skull icon (this code check the target of raid members):
    local SpellName = GetSpellInfo(109259) for i = 1, 40, 1 do local UnitIdString = "raid" .. i .. "target" if UnitExists(UnitIdString) then if GetRaidTargetIndex(UnitIdString) == 8 then CastSpellByName(SpellName, UnitIdString) return end end end Launch the spell id 109259 on the first party target with skull icon (this code check the target of party members):
    local SpellName = GetSpellInfo(109259) for i = 1, 4, 1 do local UnitIdString = "party" .. i .. "target" if UnitExists(UnitIdString) then if GetRaidTargetIndex(UnitIdString) == 8 then CastSpellByName(SpellName, UnitIdString) return end end end ps: Replace 109259 by your spell id and add conditions to launch the spell, to launch the spell if mob health is lower than 50%:

    local SpellName = GetSpellInfo(109259) for i = 1, 4, 1 do local UnitIdString = "party" .. i .. "target" if UnitExists(UnitIdString) then if GetRaidTargetIndex(UnitIdString) == 8 then if UnitHealth(UnitIdString)/UnitHealthMax(UnitIdString)*100 < 50 then CastSpellByName(SpellName, UnitIdString) return end end end end ps2: Code no tested, do not hesitate to tell me if this don't works
  2. Like
    Bugreporter reacted to Droidz in Condition "Hostile Unit Near (Target)" never true   
    Hello,   Wait next update, the problem has been caused probably because this condition counted only mobs in combat with your character and not in combat (mobs in combat with party members are ignored). I have fixed it, now all hostile mobs are count.   Tell me if you problem is resolved with next update. 
  3. Like
    Bugreporter got a reaction from Krack3n in Iron Trap (How to use it)   
    It works fine in wrotation, but not in grinder, because the mobs mostly doesn't stand still in the trap (i.e. Talbuks) You need the barn in your Garrison It's optional and off by default You need to add the ID of the mobs you want to catch to the Variable KillBeast. (wowhead.com and the Development tools/Target Info will help)  
    This  code enable the Iron Trap in your Fightclass. Happy farming
    <FightClassSpell> <SpellName>--Iron Trap</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>LuaScript</ContionType> <Param xsi:type="FightClassConditionLua"> <LuaScript> local function UseContainerItemByName(search) --[[ needed below ]] local found=nil; for bag = 0,4 do for slot = 1,GetContainerNumSlots(bag) do local item = GetContainerItemLink(bag,slot) if (item and item:find(search)) then if (GetContainerItemCooldown(bag,slot)==0) then UseContainerItem(bag,slot) found=1; end end end end return found; end if not (IsStealthed()) and UnitExists("target") and not UnitIsFriend("player", "target") then local guid=UnitGUID("target"); local type, zero, serverId, instanceId, zoneId, npcId, spawnUid = strsplit("-",guid); npcId=tonumber(npcId); --[[ Add your Mob-IDs to the list ]] local KillBeast="87021,87020" --[[ list of ID's of Mobs to trap, comma seperated ]] local maxHealth=95; --[[ start Trap at 95% of health for non-elite Mobs ]] if (UnitClassification("target") == "elite") then maxHealth=55 --[[ start Trap at 55% of health if it is an Elite Mob ]] end if not (UnitIsPVP("target")) and ((UnitHealth("target") / UnitHealthMax("target") * 100) &lt; maxHealth ) and (string.find(','..KillBeast..',',','..npcId..',')) then if (UnitName("player")==UnitName("targettarget")) then --[[ no Ninjaing, my Mob, my target, my trap ]] result=true if not (UseContainerItemByName(":115010:")) then --[[ Level 3 Trap must be equiped and ready]] if not (UseContainerItemByName(":115009:")) then --[[ Level 2 Trap .. ]] if not (UseContainerItemByName(":113991:")) then --[[ Level 1 Trap .. ]] result=false end end end else --[[ the fight is over, or another User Fight to them ]] ClearTarget(); end end end </LuaScript> <VarRet>result</VarRet> <ValueRet>true</ValueRet> </Param> </FightClassCondition> </FightClassConditions> <Priority>99</Priority> <CheckIfKnowUsableDistance>false</CheckIfKnowUsableDistance> <CheckIfView>false</CheckIfView> <AddToSettings>true</AddToSettings> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> </FightClassSpell>
  4. Like
    Bugreporter got a reaction from Droidz in Iron Trap (How to use it)   
    It works fine in wrotation, but not in grinder, because the mobs mostly doesn't stand still in the trap (i.e. Talbuks) You need the barn in your Garrison It's optional and off by default You need to add the ID of the mobs you want to catch to the Variable KillBeast. (wowhead.com and the Development tools/Target Info will help)  
    This  code enable the Iron Trap in your Fightclass. Happy farming
    <FightClassSpell> <SpellName>--Iron Trap</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>LuaScript</ContionType> <Param xsi:type="FightClassConditionLua"> <LuaScript> local function UseContainerItemByName(search) --[[ needed below ]] local found=nil; for bag = 0,4 do for slot = 1,GetContainerNumSlots(bag) do local item = GetContainerItemLink(bag,slot) if (item and item:find(search)) then if (GetContainerItemCooldown(bag,slot)==0) then UseContainerItem(bag,slot) found=1; end end end end return found; end if not (IsStealthed()) and UnitExists("target") and not UnitIsFriend("player", "target") then local guid=UnitGUID("target"); local type, zero, serverId, instanceId, zoneId, npcId, spawnUid = strsplit("-",guid); npcId=tonumber(npcId); --[[ Add your Mob-IDs to the list ]] local KillBeast="87021,87020" --[[ list of ID's of Mobs to trap, comma seperated ]] local maxHealth=95; --[[ start Trap at 95% of health for non-elite Mobs ]] if (UnitClassification("target") == "elite") then maxHealth=55 --[[ start Trap at 55% of health if it is an Elite Mob ]] end if not (UnitIsPVP("target")) and ((UnitHealth("target") / UnitHealthMax("target") * 100) &lt; maxHealth ) and (string.find(','..KillBeast..',',','..npcId..',')) then if (UnitName("player")==UnitName("targettarget")) then --[[ no Ninjaing, my Mob, my target, my trap ]] result=true if not (UseContainerItemByName(":115010:")) then --[[ Level 3 Trap must be equiped and ready]] if not (UseContainerItemByName(":115009:")) then --[[ Level 2 Trap .. ]] if not (UseContainerItemByName(":113991:")) then --[[ Level 1 Trap .. ]] result=false end end end else --[[ the fight is over, or another User Fight to them ]] ClearTarget(); end end end </LuaScript> <VarRet>result</VarRet> <ValueRet>true</ValueRet> </Param> </FightClassCondition> </FightClassConditions> <Priority>99</Priority> <CheckIfKnowUsableDistance>false</CheckIfKnowUsableDistance> <CheckIfView>false</CheckIfView> <AddToSettings>true</AddToSettings> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> </FightClassSpell>
  5. Like
    Bugreporter reacted to highco in How to ignore PvP completely in Grinder   
    I dont really think that this is the most urgent issue to adress but still worth of some improvement.
    I also would appreciate to have a more sophisticated option to deal with open world pvp. Although in most cases, i dont believe that just ignoring an attacker is an appropriate option. Just standing there and getting killed is also not the best option.
    Being able to chose from some options like 
    - fight back,
    - ignore and carry on with whatever i do,
    - do nothing and take the beating or
    - flee run from it (my favorite)
    would be what i would appreciate.
  6. Like
    Bugreporter reacted to Horserman in [POOL] Add visual programming language?   
    I prefer having an API documentation...
  7. Like
    Bugreporter got a reaction from Chifo77 in [Sample] Dungeon profile   
    Thanks for that. It helps much. I've created a Stratholme Profile based on yours.
  8. Like
    Bugreporter got a reaction from jonnyboy899 in [Sample] Dungeon profile   
    Thanks for that. It helps much. I've created a Stratholme Profile based on yours.
  9. Like
    Bugreporter got a reaction from Droidz in [Sample] Dungeon profile   
    Thanks for that. It helps much. I've created a Stratholme Profile based on yours.
  10. Like
    Bugreporter reacted to Droidz in [Sample] Dungeon profile   
    Hello,
     
    For advanced user:
    - You can found sample of dungeon profile http://wrobot.eu/files/file/453-dungeon-the-temple-of-atalhakkar/ file description to get more informations) and https://wrobot.eu/forums/topic/3552-dungeon-profile-creation-tutorial-video/
     
    For beginner users:
    - Install and activate this plugin: http://wrobot.eu/files/file/496-reset-instances/
    - In "General Settings", disable option "Close bot if teleported".
    - Select product "Gatherer" or "Grinder" and activate option "Back to last profile position" in "Product Settings".
    - Now, use "Profile Creator" and record loop path (in your loop, go out of instance) (You can download gatherer profile sample of "Hellfire Ramparts" here) (you can use "Action" to add feature at your profile)
  11. Like
    Bugreporter got a reaction from Bear T.O.E. in Poison Management (a solution)   
    Sorry, i cant. I only post the (imho) best solution. If you want to get the old solution change only
     
     
    if (GetUnitSpeed("player") == 0) and not (UnitCastingInfo("player")) and not (UnitChannelInfo("player"))
     
    with
     
    if not (UnitCastingInfo("player"))
     
     
    GCD is simple to detect. Use Parameter "Is Spell usable" in the fight class editor.
     
    in lua try something like this
    local spellid=123456 --[[change to the ID-nr of the spell)]] local spellname=GetSpellInfo(spellid)                 if (IsUsableSpell(spellname)) then                     local start, duration, enable = GetSpellCooldown(spellname)                     if (duration==0) then                         CastSpellByName(spellname);                         spell=spellname;                         break;                     end                 end
  12. Like
    Bugreporter got a reaction from Bear T.O.E. in All Buffs at once (a solution)   
    Thats right. in the log you only see "--buffs", because in the log you see only the name of the "spell." In this case the lua script ist the "spell" and named "--buffs"
     
    You have to change the for-loop variable form 6 to 11 (if I count your buffs right)
  13. Like
    Bugreporter got a reaction from Bear T.O.E. in All Buffs at once (a solution)   
    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.
  14. Like
    Bugreporter got a reaction from moscow5 in how try stealth?   
    look here (in Fight Class Assistant)
     
    for stealth: 

    for buffs:

    More solutions for rogue you can fnd here:
     

  15. Like
    Bugreporter got a reaction from Droidz in Stealth (a solution)   
    Use Stealth if hostile 30 Yards away but only in pvp or solo
    <FightClassSpell> <SpellName>Stealth</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>HostileUnitNear</ContionType> <Param xsi:type="FightClassConditionUnitNear"> <Type>Bigger</Type> <Radius>30</Radius> </Param> </FightClassCondition> <FightClassCondition> <ContionType>LuaScript</ContionType> <Param xsi:type="FightClassConditionLua"> <LuaScript> --[[ PvP or solo AND No Casting and Stealth off and ready ? ]] local idStealth=1784 local start, duration, enabled = GetSpellCooldown(idStealth); result=((UnitIsPVP("player") or (UnitInParty("player")==nil)) and (duration==0) and (enabled==1) and not (UnitCastingInfo("player")) and not (UnitChannelInfo("player"))) </LuaScript> <VarRet>result</VarRet> <ValueRet>true</ValueRet> </Param> </FightClassCondition> <FightClassCondition> <ContionType>MeInCombat</ContionType> <Param xsi:type="FightClassConditionBool" /> </FightClassCondition> <FightClassCondition> <ContionType>MeIsFlying</ContionType> <Param xsi:type="FightClassConditionBool" /> </FightClassCondition> </FightClassConditions> <Priority>11</Priority> <CombatOnly>false</CombatOnly> <CheckIfKnowUsableDistance>false</CheckIfKnowUsableDistance> <CheckIfView>false</CheckIfView> <AddToSettings>true</AddToSettings> <DescriptionSpell>Stealth. If hostile 30 Yards away. only pvp or solo</DescriptionSpell> </FightClassSpell> based on WoW 5.4.2.
     

  16. Like
    Bugreporter got a reaction from Droidz in How to disable casting while farming ?   
    I think I found the solution. Could it be, that you only check UnitCastingInfo("player") ?

    This fails if it is a spell like mounting. Please have a look at UnitChannelInfo("player").

    The difference between this I describe here
  17. Like
    Bugreporter got a reaction from Droidz in Moll-e with Gatherer   
    http://www.wowhead.com/item=40768
     
    Moll-e is a item that engineers could create and use. The item must be in a bag. The handling is like a normal mailbox. And like a normal Mailbox it isn't possible to get the item in target.
    I see a different Item name in the minimap, but I dont use a english client.
     
    the spell www.wowhead.com/spell=54710 create an objet with the ID 191605
  18. Like
    Bugreporter got a reaction from Droidz in Poison Management (a solution)   
    By default, this solution cast a lethal and a non-lethal poison, depending of the knowledge and the priority-list (idPoisons[1]=lethal, [2]=non-lethal).  If there is already a poison, and the run time of the poison will be less then 13  min, it will be renewed, if we are 
    not in combat. (We need it before) not AFK (who want casting while afk ?!?) not Falling, Flying or Riding (mounted) (flying + casting = falling) not casting Why 13 Minutes ? Because of the duration time of a fight with a raid boss. You want more or less ? Change  the 13 in  local timeLeftToCastAgain = 13*60 to another value.
    <FightClassSpell> <SpellName>--Poison Managment</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>LuaScript</ContionType> <Param xsi:type="FightClassConditionLua"> <LuaScript> if (GetUnitSpeed("player") == 0) and not (UnitCastingInfo("player")) and not (UnitChannelInfo("player")) and not (UnitAffectingCombat("player")) and not (IsMounted()) and not (IsFlying()) and not (IsFalling()) and not (IsResting()) and not (UnitIsAFK("player")) then --[[ refresh the Poisons if there are less then 13 min left (to be sure that it dont runs out while a raid boss fight ]] local timeLeftToCastAgain = 13*60; local idPoisons={} --[[ Deadly,Wound ]] idPoisons[1]={2823,8679} --[[ Leeching,Crippling,Mind-Numbing,Paralytic ]] idPoisons[2]={108211,3408,5761,108215} local now=GetTime(); for i=1,#idPoisons do local spell=""; local PoisonFound=0 for j=1,#idPoisons[i] do spellname=GetSpellInfo(idPoisons[i][j]) local name, rank, icon, count, debuffType, duration, expirationTime, unitCaster, isStealable, shouldConsolidate, spellId = UnitBuff("player",spellname); if (name==spellname) then local expireTimeLeft = expirationTime-now; PoisonFound=idPoisons[i][j] if (expireTimeLeft &lt; timeLeftToCastAgain) then if (IsUsableSpell(spellname)) then local start, duration, enable = GetSpellCooldown(spellname) if (duration==0) then CastSpellByName(spellname); spell=spellname; end end end break; end end if (PoisonFound==0) then for j=1,#idPoisons[i] do local spellname=GetSpellInfo(idPoisons[i][j]) if (IsUsableSpell(spellname)) then local start, duration, enable = GetSpellCooldown(spellname) if (duration==0) then CastSpellByName(spellname); spell=spellname; break; end end end end if not (spell=="") then print("Poison: "..spell) result=true break; end end end </LuaScript> <VarRet>result</VarRet> <ValueRet>true</ValueRet> </Param> </FightClassCondition> </FightClassConditions> <Priority>1</Priority> <CombatOnly>false</CombatOnly> <CheckIfKnowUsableDistance>false</CheckIfKnowUsableDistance> <CheckIfView>false</CheckIfView> <AddToSettingsActiveByDefault>true</AddToSettingsActiveByDefault> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <CanMoveDuringCast>No</CanMoveDuringCast> <DescriptionSpell>Poison Managment</DescriptionSpell> </FightClassSpell> based on WoW 5.4.2.
     

  19. Like
    Bugreporter got a reaction from Droidz in Combo Points instant (a solution)   
    At first: The talent "Marked for Death" is needed to use the spell "Marked for Death". Without them, only the Redirect spell will be used.
     
    1. Check if there are any combopoints around there, but not on the target. In this case we use Redirect if possible.
    2. If Redirect is not usable, then we use "Marked for Death". which give us 5 CP instant. (accept Shadow Blades is active.)
    <FightClassSpell> <SpellName>--combopoints instant</SpellName> <FightClassConditions> <FightClassCondition> <ContionType>LuaScript</ContionType> <Param xsi:type="FightClassConditionLua"> <LuaScript>result="" local spell="nothing" if UnitExists("target") and not UnitIsFriend("player", "target") and (GetComboPoints("player")==0) then idRecuperate=73651 local spellname=GetSpellInfo(idRecuperate) --[[ No CP and Recuperate ready? Then we have CP nearby ! ]] local usable,noCP=IsUsableSpell(spellname) if (usable) then local idRedirect=73981 local start, duration, enabled = GetSpellCooldown(idRedirect) --[[ redirect ready ?]] if (duration==0) then local spellname=GetSpellInfo(idRedirect) if (IsSpellInRange(spellname, "target")==1) then spell=spellname end end end if (spell=="nothing") then local idMarkDeath=137619 local idShadowBlades=121471 local SBname=GetSpellInfo(idShadowBlades) local start, duration, enabled = GetSpellCooldown(idMarkDeath) --[[ Marked for Death ready ?]] if (duration==0) and not (SBname==UnitBuff("player",SBname)) then local spellname=GetSpellInfo(idMarkDeath) local usable,noCP=IsUsableSpell(spellname) if (IsSpellInRange(spellname, "target")==1) and (usable) then spell=spellname end end end if not (spell=="nothing") then CastSpellByName(spell) print("cp : "..spell) result=true end end; </LuaScript> <VarRet>result</VarRet> <ValueRet>true</ValueRet> </Param> </FightClassCondition> </FightClassConditions> <Priority>30</Priority> <CombatOnly>false</CombatOnly> <CheckIfKnowUsableDistance>false</CheckIfKnowUsableDistance> <CheckIfView>false</CheckIfView> <AddToSettings>true</AddToSettings> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> </FightClassSpell> based on WoW 5.4.2.
     

  20. Like
    Bugreporter got a reaction from Networkz in Abilities Being Used Out Of Combat   
    The "Combat" detection isn't usefull in all cases. Because of this I select a target in Raids only if i am sure that the fight has startet (or the pullcountdown will be 0). And I wait for the first CP to start the buffs, debuffs etc to be sure, that I am in fight to. It lose (very little) DPS, but I am sure, that I dont pull the boss or that my buffs are running out without an impact
  21. Like
    Bugreporter got a reaction from Droidz in Stun, stun, stun and stun (a solution)   
    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 &gt; 3 ? Gooood...night ]]                 if (GetComboPoints("player", "target") &gt; 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.
     

  22. Like
    Bugreporter got a reaction from Droidz in Break Stealth (a solution)   
    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) &gt; 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 &lt; 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.
     

  23. Like
    Bugreporter got a reaction from Droidz in Snippets of LUA codes (for FightClass)   
    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
  24. Like
    Bugreporter got a reaction from Droidz in Kick it (a solution for Rogue)   
    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.
     

  25. Like
    Bugreporter got a reaction from Seumas in All Buffs at once (a solution)   
    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
×
×
  • Create New...