Jump to content

Fight Class Questions


MrBottie

Recommended Posts

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
 

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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)

 

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

  • 4 weeks later...
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 :-)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...