Jump to content

Bugreporter

WRobot user
  • Posts

    438
  • Joined

  • Last visited

Posts posted by Bugreporter

  1. No, I've tested it and play it in wrotation at the moment and it works fine. the only things that I enabled are the options --startattack --breack Stealth --range fight. Did you play on an official Server ? Did this happend on free area or in a special situation ?

    In Groups (mainly Raids) It wasn't a good idea to start the fight bevor the tank pulled. so I prevent this by checking if you are in a group and if so, the  attacking start after the tank started. I've you are outside a dungeon/raid and in a group without akting as a group  you can get a problem, if the mobs dont attack you first. If you be attacked, the rotation starts. There is no reason why only kick and a few spells will work.

    btw. be sure that you are near enough.

  2.  [FightClass] Launch LUA script: --startattack
     [Spell] Cast Durchstoßen (Run Through)
    [FightClass] Launch LUA script: --Marked for Death
    [Spell] Cast Pistolenschuss (Pistol Shot)
    [Spell] Cast (onself) Blutrote Phiole (Crimson Vial)
    [Spell] Cast Säbelhieb (Saber Slash)
     

    --Break Stealth: True
    --range fight: true
    --startattack: true (default)
     

    Worked for me fine.

  3. It's works conserative. If you are in group it attacks only, if you are being attacked or the Mob has not full health (someone attacked first). You can prevent this, if you enable stealth and Break Stealth. In this case it will attack in steals and start the normal rotation. Maybe there was also a change in 7.1  . I will have a look on this.

     

  4. hmm, maybe the Player was pvp flaged. take a look in the logfile. There you can see how long the bot tried the attack. Maybe he tries not attack the player but the pet..

    As I remember, there was a Bug in a early version of wrobot, that it tries to attack the pets of players. Did you play on a private server ?

  5. Hi, in LUA its sadly not possible to change the settings of wrobot. So I need a C# routine that

    heallist="113509,80610,80618,65499,43523,43518,34062,22019,65517,22895,65516,8076,65515,8075,65500,1487,1114,1113,5349"

    - search the Item numbers in heallist in the bags and give me the highest found.

    - translate the number to the localist name (english, german, french, ...)

    - and last but no least set the wrobot settings

    wManager.wManagerSetting.CurrentSetting.FoodPercent = 60
      and
    wManager.wManagerSetting.CurrentSetting.FoodName = <translated food>

    (not sure if i get the right setting names)

     

    Sense of this: To start the regeneration via fightclass with a self casted food (Mage)

  6. That could be OK. Yellow is not friendly. It's only neutral. There are two LUA commands that could help. UnitIsFriend and UnitIsEnemy (not sure for the last one, but there is a similar one) .with this you can select if the target is the one you want.

    But i.e. the minor Sha in  Pandaria are also yellow and will attack you.

    maybe it's an aoe problem. They will be involved in the fight because of the AoE against enemy's?

  7. should be possible.

    in the fightclass-editor yu can check

    Have Pet = true

    and

    Pet Buff = Demonic empowerment=false

    and

    combat only

    the buff give a 12 sec buff. and a cast time of 1.5 sec. With this settings it will cast the buff every time it runs out. (not tested). But: Did you realy want this? every 12 sec casting a 2 sec buff ? I dont know the priority list of warlocks, but I could think, that you will lose dps if you try to maintain this buff all the time.

  8. Hi,

    is it possible to add event handling in a fight class ?

    In this sample someone shout "Hero" and the mage/shaman/whatever cast Bloodlust/Timewarp/whatever.

        local frame=CreateFrame("Frame");  --[[Need a frame to capture events]]
        frame:RegisterEvent("CHAT_MSG_SAY"); --[[Register our event]]
        frame:SetScript("OnEvent",function(self,event,msg)  --[[ OnEvent handler receives event triggers ]]
    		if event=="CHAT_MSG_SAY" and msg=="HERO" then  --[[ Someone sends "HERO" in /say ]]
    			hero=SpellInfo(2825)
    			CastSpellByName(Hero)
            end
        end);

     

  9. Some words to "realtime". Fightclasses didn't not work in "realtime", but "just-in-time" . They can react, and mostly they can do it "just-in-time", but it's also possible, that you miss kickable spell, because of "Killing Spree" or anoher long running Spell. We also would miss all kickable spells that will be cast from others then out Target/Focus (Focus-kick: see Sub-Profile, I dont kow, why i didn't change it in Outlaw) because we can't scan in realtime.

     

    (just my 50 cent to realtime/just-in-time)

  10. Ok, lets talk about Kick, baby *singing*.

    Line 3+5 : You have in both lines a startTime variable. in line 13 the variable "now" will set the realtime. so

    TimeCastStarted=now - startTime
    if TimeCastStarted > 2 then   --[[ cast started 2 sec before ]]
        -- [[ do the kick ]]
    end

    An no, I think its also possible in C# (dont ask me how)

     

    realtime unitlevel: we dont have a possibility to write the log of wrobot. But maybe in the fightlog of wow, but I'v never tried this. For a simple output for each selected target, you can add a spell (once per target) which only print unitname and unitlevel to the chat window.

    if UnitExists("target") and not UnitIsFriend("target", "focus") then
    	print(UnitInfo("target").."("..UnitLevel("target")..")")
    	result=true
    end

     

    All snippets are untested.

     

     

    local kicked=0
    if UnitExists("target") and not UnitIsFriend("player", "target") then 
    	local spell, rank, displayName, icon, startTime, endTime, isTradeSkill, castID, nonInterrupt = UnitCastingInfo("target");
    	if (spell==nil) then
    		spell, displayName, icon, startTime, endTime, isTradeSkill, castID, nonInterrupt = UnitChannelInfo("target");
    	end
    	if (spell~=nil) then
    		if (nonInterrupt==false) then 
    	--[[					(cheapest first)
    						   Kick,Blind,Gouge
    	--]]	
    			local idSpells={1766,2094,1776};		
    			local now=GetTime();
    			local guid=UnitGUID("target");
    			local type, zero, serverId, instanceId, zoneId, npcId, spawnUid = strsplit("-",guid);
    			local dontKick={[82618]={171807};	--[[ Tor'goroth, skip Shadow Bolt to kick Consume Life ]]
    							[82682]={166465};	--[[ Archmage Sol, skip Frost Bolt to kick Parasitic Growth ]]
    								
    	--[[ [86135]={172014,172024,172005};  test Ralshira  ]]
    
    						};
    			local ignoreKick=0;
    			npcId=tonumber(npcId);
    			if (dontKick[npcId]~=nil) then
    				if (dontKick[npcId][1]~=nil) then
    					for i=1, #dontKick[npcId] do
    						if (spell==GetSpellInfo(dontKick[npcId][i])) then
    							ignoreKick=1
    						end
    					end
    				end
    			end
    			for i=1+ignoreKick, #idSpells do
    				if (kicked==0) then
    					local spellname=GetSpellInfo(idSpells[i])
    					local start, duration, enabled = GetSpellCooldown(spellname)
    					if (duration==0) then
    						if IsSpellInRange(spellname, "target")==1 then
    							CastSpellByName(spellname)
    							kicked=idSpells[i]
    					print(spell.." kicked by "..spellname) 
    						end
    					end
    				end
    			end
    		else
    			local idFeint=1966
    			local spellname=GetSpellInfo(idFeint)
    			local start, duration, enabled = GetSpellCooldown(spellname)
    			if ((duration==0) and not UnitBuff("player",spellname)) then
    				CastSpellByName(spellname)
    				kicked=1;  --[[ only for log ]]
    			end
    		end
    	end
    end
    result=(kicked~=0)

     

×
×
  • Create New...