Skip to content
View in the app

A better way to browse. Learn more.

WRobot

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Fight Class Questions

Featured Replies

Hi there,

Im currently testing some fight classes and creating/modifiying new/old ones. It's all going fine but I have some questions...

Interrupts
When I add an interupt condition (enemy is casting or check if it can be interrupted), the wrotation is fast as lightning and sometimes interrupts the cast within half a second. To make it look more "humanized", I want to add a small delay (an extra 0.5 sec for example).
Is this possible?

Ingame Debug/Test
For example, I want to know the current target's level and distance. How can I use the developer tools to see this on the fly?

Thanks in advance!

Love this piece of software! <3
 

  • Author
23 minutes ago, Bugreporter said:

Targets Level is simple: UnitLevel

But how to do it in realtime? I want some kind of "debug" result when I target something, I want to write the unitlevel to the log for example :)

About the interrupts, it's only possible with LUA code?

I'm trying to tweak your Rogue Outlaw profile to get It raid ready (love it)

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)

 

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)

  • 4 weeks later...
  • Author
10 minutes ago, Bugreporter said:

Hey @MrBottie,

 

whats about your ultimate outlaw rogue profile ? I want to see/test it. It's 3 weeks ago !

Still busy with it but I only raid Assas at the moment as they nerfed outlaw too much :-)

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.