Ah, apologies. Got to here via a link and did not realize it was under KA specifically, did not mean to derail the thread =/
Sorry for all the posting spam. Farming augments for a new batch of lowbies
-------------------------------
I use Raid Druid mostly, have been tinkering with it for some time, mostly so I can figure out how things work, heh. Friend of mine turned me on to here some time back. KA does a lot of what I think a macro ought to do, but half the fun right now is figuring out how things work, and we do that by trying =)
RD already had a script running mechanism in place, with Combat and Rest scripts. These how ever work just like MQ2Melee's holyshit/downshit, which made them difficult to toggle on/off. For instance if you happen to be going through a NToV raid , there are a ton of named that are really trash mobs... so I wanted something separate so I could toggle ALL the named related "burns" on or off on the fly. (also convenient when you need to wait for a specific time) Which lead me into making a named specific script. This way I can just leave it on for normal gameplay, and the group will handle named/adds just fine, or I can toggle it for what ever reason.
I duplicated what was already set up, put a call for it in the main loop, and been tweaking it to match my gameplay. Over time I added the XTarget and Level checks to keep my groups up longer. I probably ought to put toggles in to turn those aspects on and off eventually, but honestly it has been working for me as is.
Rich (BB code):
/if (${PetAttack} && ${Spawn[${MATarget}].PctHPs}<${EngageHPs} && !${AssistTimer}) /call PetAttackStuff
/if ((${DoDebuffs} || ${DoDoTs} || ${DoManaTaps}) && ${Me.PctMana}>=${DebuffLowest}) /call DebuffIt
/if (!${NukeTimer} && ${DoNukes} && ${Me.PctMana}>=${NukeLowest}) /call Nukeit
/if (${DoCombatStuff} && ${Me.CombatState.Equal[COMBAT]} && !${CombatStuffTimer}) /call DoStuff Combat
/if (${DoDefense} && ${Me.CombatState.Equal[COMBAT]} && ${Select[${Me.Class.ShortName},WAR,PAL,SHD]} && (${Target.Named} || ${Me.XTarget}>2 || (${Spawn[id ${MATarget}].Level}>=(${Me.Level}+2))) && ${Target.Distance}<75) /call Defense
/if (((${Target.Named} || ${Spawn[id ${MATarget}].Level}>=(${Me.Level}+2)) || ${Me.XTarget}>3) && ${DoNamedStuff}) /call Named
/if (${DoMercStance} && ${Me.CombatState.Equal[COMBAT]} && !${RDPause}) /call MercStance
/if (${UseTankHoT} && !${RDPause}) /call HealOverTime
is a portion of the main loop with the calls.
The defensive is an include file I have been working on here and there. My line of thinking here is that I basically want all my tanks to do 1 job, and they will mostly be doing it the same way. I mean , we got MQ2Melee to handle offensive melee stuff....why not something that triggers defensive disc/AA/items in the order that makes the most sense. And like MQ2Melee, I want the script to look for the highest level of X disc, and trigger that.... this way I can use billybob's warrior today, and jimbob's warrior tomorrow, and they both should be behaving the same ( firing the same disc lines ) with out to much set up.
This way (eventually) I only have the 1 file to update as each expansion put in new stuff (same as MQ2Melee)
Rich (BB code):
/if (${Window[CombatAbilityWnd].Child[CAW_CombatEffectLabel].Text.Equal[No Effect]} && !${Me.CombatAbilityReady[${Spell[Holy Guardian Discipline].RankName}]} && ${Me.CombatAbilityReady[${Spell[Honorific Mantle].RankName}]}) {
this is for a Paladin, checks no disc is up, that it has already used Holy Guardian disc, and the lowest level of the next disc line I want (Honorific Mantle) is available. If so
Rich (BB code):
/if (${Me.CombatAbilityReady[${Spell[Skalber Mantle].RankName}]}) {
/disc Skalber Mantle
/if (${ChatChannel.Equal[BC]}) {
/BC [+r+] Paladin Defense [+Y+] ${Spell[Skalber Mantle].RankName} [+r+] is active!
} else {
/${ChatChannel} Paladin Defense - ${Spell[Skalber Mantle].RankName} - is active!
}
it checks on the highest instance of that line, and works it's way down to the lowest (accounting for rank) until it find the highest one the toon has.
Course it is a work in progress still, I am by no means a programmer, just a tinkerer =)
This is a small amount of delay between 1 disc to the other, since it needs to finish looping before checking on defensives again. How ever I survive significantly more now so... heh.
---------------------
The other reason I wanted to make an include is (eventually) making it so for instance a SK pull macro for some HA would just need to include and call this as needed, instead of re-writing a defensive section each time.