-- Form Edit Box lazyr.lreb = {} lazyr.lreb.currentForm = nil lazyr.lreb.cancelEdit = false function lazyr.lreb.OnShow() if (not lazyr.lreb.currentForm) then lazyr.lreb.currentForm = "" end --LazyRogueFormEditFrameTitle:SetText("LazyRogue v"..lazyr.version) LazyRogueFormEditFrameFormName:SetText(lazyr.lreb.currentForm) if (lazyr.lreb.currentForm == "") then LazyRogueFormEditFrameFormName:SetFocus() end local actions = lrConf.forms[lazyr.lreb.currentForm] local text if (actions) then text = table.concat(actions, "\n") else text = "" end LazyRogueFormEditFrameForm:SetText(text) end function lazyr.lreb.OnHide() if (lazyr.lreb.cancelEdit) then lazyr.lreb.cancelEdit = false return end local name = LazyRogueFormEditFrameFormName:GetText() -- convert spaces to underscores name = string.gsub(name, "%s+", "_") local oldName = lazyr.lreb.currentForm local text = LazyRogueFormEditFrameForm:GetText() if (not name or name == "" or not text or text == "") then return end --lazyr.SlashCommand("set "..name.." "..text) -- doing this manually (dup code alert! :-( ) so we can -- preserve comments or other goodies if (lrConf.forms[name]) then verb = "updated" else verb = "created" end local args = {} for arg in string.gfind(text, "[^\r\n]+") do table.insert(args, arg) end lrConf.forms[name] = args lazyr.ClearParsedForm(name) lazyr.p("Form "..name.." "..verb..".") lazyr.ParseForm(args) if (oldName and oldName ~= "" and name ~= oldName) then -- user changed the name if (lazyr.perPlayerConf.defaultForm == oldName) then lazyr.SlashCommand("default "..name) end lazyr.SlashCommand("clear "..oldName) end lazyr.lreb.currentForm = nil end -- Help frame function lazyr.PopulateHelpText() local text = "This is LazyRogue v"..lazyr.version.."." text = text.."\n\n" text = text..[[ Actions/Attacks: adrenaline, ambush, berserking, bladeFlurry, blind, bs, cbEvisc, coldBlood, cs, dismount, evasion, evisc, expose, feint, garrote, ghostly, gouge, hemo, kick, ks, premeditation, preparation, riposte, rupture, sap, snd, sprint, ss, stealth, stop, stopAll, tea, use=, useEquipped=, vanish New Actions/Attacks: * perception,cannibalize,stoneForm,escapeArtist,bloodFury,forsaken,warStomp * pickPocket,throw,gun,crossbow,bow * cbAmbush * equipMainHand= * equipOffHand= * use= * setForm= * ping (Use for testing criteria) * action= Action/Macro must reside on a button. * targetAssist (Use /lr assist or select the player and type /lr assist to set!) * targetNearest (Use with -if[Not]TargetCCd to select the closest available target) * autoAttack (Will target and enter melee for you, if you dont have a target) * sayIn{Guild,Party,Raid,Say,Emote,RAID_WARNING}=(eg sayInParty=Sapping %t...-ifStealthed-ifShiftDown-every10s)(%t will get swapped with your current target) Append zero or more criteria to these attacks. All criteria must be true for that attack to be used. List your attacks one after another. The first attack that matches all criteria is used. In the following, multiple values within curly braces ({}) means choose one, and square brackets ([]) mean the value is optional. Do NOT leave the curly braces or square brackets in your form. Criteria Fuctions: -if{Player,Target}{>,=,<}XX[%]{hp,mana/energy} -if[<=>]Xcp -ifKillShot[=XX%] (evisc only) -ifCbKillShot (evisc or cbevisc only) -if[Not]History{>,=,<}XX= -if[Not]InCombat -if[Not]InGroup -if[Not]LastChance -if[Not]Mounted -if[Not]Stealthed -if[Not]TargetAlive -if[Not]TargetCCd -if[Not]TargetClass={Druid,Hunter,Mage,Paladin, Priest,Rogue,Shaman,Warlock,Warrior} (, can be used for multiples ie -ifTargetClass=Druid,Mage ) -if[Not]TargetElite -if[Not]TargetHostile -if[Not]TargetIsCasting[=] (use with: kick, cs, ks, gouge, blind)(, can be used for multiples ie -ifTargetIsCasting=Renew,Heal ) -if[Not]TargetInCombat -if[Not]TargetInMeleeRange (Within 5.5 yards) -if[Not]TargetInBlindRange (Within 10 yards) -ifTargetLevel{>,=,<}XX -if[Not]TargetNPC -if[Not]TargetNamed=regex -if[Not]TargetOfTarget -if[Not]TargetType={Beast,Critter,Demon,Elemental Humanoid,Undead} (, can be used for multiples ie -ifTargetType=Demon,Elemental ) -if[Not]Zone= -if[Not]{Adrenaline,Berserking,BladeFlurry,Blind, ColdBlood,Cs,Evasion,Expose,FirstAid (Eg Bandages), Garrote,Ghostly,Gouge,Hemo,Ks,RecentlyBandaged, Remorseless,Rupture,Sap,Snd,Vanish}Active -if[Not]{Ctrl,Alt,Shift}Down (see Note 1) -everyXXs Note 1: To use -if{Ctrl,Alt,Shift}Down, you MUST remove any existing Ctrl/Alt/Shift key bindings from the Main Menu, Key Bindings. Otherwise the game will intercept the key and LR will not see it. New Criteria Fuctions: * -if[Not]FirstAidActive * -if[Not]BehindAttackJustFailed * -if[Not]InFrontAttackJustFailed * -if[Not]Feared * -if[Not]Immobile * -if[Not][Target]Slowed * -if[Not][Target]Stunned * -if[Not]TargetOfTargetClass={Druid,Hunter,Mage,Paladin,Priest,Rogue,Shaman,Warlock,Warrior} (, can be used for multiples ie -ifTargetOfTargetClass=Druid,Mage ) * -if[Not]InCooldown= * -if[Not]Dotted * -if[Not]Bleeding * -if[Not]Ganked * -if[Not]FlagRunner * -if[Target]FlaggedPVP * -if[<=>]Xattackers * -if[Not]Dueling * -if[Not]Instance * -if[Not]Battleground * -if[Not]TargetMyLevel[<=>]{plus,minus}XX * -if[Not]Timer={adrenaline,berserking,bladeFlurry,blind, coldBlood,cs,evasion,expose,firstAid (Eg Bandages), garrote,ghostly,gouge,hemo,ks,recentlyBandaged, remorseless,rupture,sap,snd,vanish}>XXs * -if[Not]Equipped= * -if[Not]GlobalCooldown * -if[Not]CanDebuff (Checks less than 16 debuffs on target) * -if[Not]HuntersMark * -if[Not]Polymorphed * -if[Not]TargetImmune[={blind,cs,expose,garrote,gouge,hemo,ks,rupture,sap}] (The match list for this function (weaponORspell and Mob) is self building through combat and can be cleared using /lr clearImmunitiesList) * -if[Not]InRaid Any line may be commented out by placing '--' at the front of the line. ]] LazyRogueFormHelpScrollFrameScrollChildText:SetText(text) end