Battle Management System plugin

PeteSampras

Your UI is fucking you. Stop using it.
Joined
Dec 12, 2007
Messages
3,956
Reaction score
49
Points
38
I am posting this to spitball ideas with Xeniaz, it is easier than IRC. Most of you can ignore unless you know how to make plugins/macros and can see wtf is going on here!



Battle Management System

TLO: AddHandler

Notes: All AddHandler is centralized and needs pushed/pulled as it changes and only when it changes. Only the Assist.Primary should be able to designate the AddHandler.KillTarget if alive, else Assist.Secondary can, else Group.MainAssist, else finally own personal target.
Prioritization should be centrally controlled based on Immunities, Named, Level and .PctHP in a simple formula. Level + ${If[${Named},10,0]} - ${If[${Target.Master is npc (aka a pet)},25,0]} + ${If[MezImmune,10,0]} + ${If[SlowImmune,5,0]} + ${If[SnareImmune[5,0]} or something similar
Code:
Member            Return
.KillTarget          (ID, can Spawn lookup the rest)
.Add[1-100]          (ID, can Spawn lookup the rest)
.Mezzed[ID]         Timer
.Snared[ID]         Timer
.Slowed[ID]         Timer
.Priority[1-100]      (ID, can Spawn lookup the rest)
.Tashed[ID]        Timer
.Malod[ID]        Timer
List based in INI entry by zone:
Code:
.IgnoreList[ID]        Bool - Used by looking up String[array] of names of mobs to ignore for current zone
.SnareImmune        Bool - Used by looking up String[array] of names of snare immune mobs for current zone
.SlowImmune        Bool - Used by looking up String[array] of names of slow immune mobs for current zone
.MezImmune        Bool - Used by looking up String[array] of names of mez immune mobs for current zone
TLO: Assist
Notes: All Assist info is decentralized to local player
Code:
Member            Return
.Primary        String - Main Assist Clean Name
.Secondary        string - Second Assist Clean Name
.Pct            Int - Assist at %
.Conditions        String - Holyshit/downshit
.Distance        Int - distance to actually target assist mob
.Melee            Bool - TRUE/FALSE use melee?
.Archery        Bool -TRUE/FALSE use archery?
.AttackCommand        String - /attack on or /killthis if .Melee is TRUE
.OpeningMove        String - Very first action to take when engaging a mob
.PetTank        Bool - Is pet tanking? If so, send immediately upon meeting conditions
.Announce        Bool - Announce engagement of target?
.AnnounceCommand    String - Announce string
.AnnounceChannel    String - Channel to announce
TLO: Info
Notes: All info is centralized and pushed/pulled as it changes. Think of this in the same way as the raid tool in game. You see all the people in group format. And now you want to know their relevant information.
Code:
Member                    Return
.Groups                    Int - Total groups
.Members                Int - Total members in total groups
.Group[1-10].Member[0-5].CombatState    Array - Me.CombatState - ACTIVE, RESTING, COMBAT, UNKNOWN
.Group[1-10].Member[0-5].Target     Int - (ID)
.Group[1-10].Member[0-5].TargetOfTarget    Int - (ID)
.Group[1-10].Member[0-5].CastingID    Int - (ID)
.Group[1-10].Member[0-5].ID         Int - (ID)
.Group[1-10].Member[0-5].PctHPs         Int
.Group[1-10].Member[0-5].PctMana        Int
.Group[1-10].Member[0-5].PctEndurance     Int
Debuff related, player would use Mq2Debuffs to push this info:
Code:
.Group[1-10].Member[0-5].Poison         Int - Poison Counters
.Group[1-10].Member[0-5].Disease     Int - Disease Counters
.Group[1-10].Member[0-5].Corruption     Int - Corruption Counters
.Group[1-10].Member[0-5].Curse         Int - Curse Counters
.Group[1-10].Member[0-5].Slowed         Bool - Slowed?
.Group[1-10].Member[0-5].Debuffs     Int - Debuffs
TLO: Spells
Code:
Member                    Return
.DefaultGem                String - Gem to use if not memmed
.DotTotal                Int - Total Dots
.NukeTotal                Int - Total Nukes
.StunTotal                Int - Total Stuns
.DebuffTotal                Int - Total Debuffs
.MezTotal                Int - TOtal Mezzes
.SnareTotal                Int - Total Snares
.RootTotal                Int - Total Roots
.HealTotal                Int - Total heals
.BuffTotal                Int - Total buffs (non combat)
.SelfBuffTotal                Int - Total SelfBuffs (non -combat)
.FightBuffTotal                Int - Total Fight Buffs (combat only)
.CureTotal                Int - Total Cures
Individual sections for 1-20 up to .NameTotal
Code:
.Dot[1-20].Name                String - Name of spell
.Dot[1-20].Recast            Timer - Recast in seconds
.Dot[1-20].Conditions            String - holyshit/downshit to use
 
Looks like I got some work cut out for me. Thanks for the post!