
${Group.MainTank.PctHPs}>40
${Spawn[${Target.AggroHolder}].ID}==${Group.MainTank.ID}
/if (${Target.Named} && ${Spawn[${Target.AggroHolder}].ID}==${Group.MainTank.ID} && ${Group.MainTank.PctHPs}>40)
groupmember MainTank Data on the main tank of the group
spawn Spawn Accesses the group member's spawn directly. This is only really needed to access Spawn.Name, instead of GroupMember.Name, as spawn is inherited automatically
you kind have to play around and learn them and see if the relations work. It would be nice if everything was in the wiki.
For some reason it's not noted properly but I think the groupmember inherits spawn, you can even see an example under the spawn http://www.redguides.com/docs/projects/macroquest/reference/data-types/datatype-spawn/
If I get stuck normally I ask here because there's tons of knoweldgeable people but If I cant wait for an answer sometimes I go digging.
One way to check if you don't want to bum around in game with testing commands and you want to see if your TLO inherits from another tlo is you can download the uncompiled MQ2 and the TLO's are named EQ tlo name.cs so GroupMembers is EQGroupmembers.cs and you will see this
public EQSpawn Spawn
{
get { return new EQSpawn(GetPersistentMember("Spawn")); }
}
where it gets a spawn from eqspawn.cs
If we look at eqspawn.cs we can see the stuff in the properties region that matches the stuff you see on the wiki and we also see the actions we can do to things that inherit spawns under the methods .
Remember as you run into "man I wish the wiki said...." that if you have a MQ source site account, you have access to the edit the wiki and get it updated.
I have been trying to do an update here or there, but I am no programmer and some of the stuff added to MQ puts it is just over my head.
I try to put a FEW examples in where I can (thought about making example pages linked to X TLO, so as to avoid cluttering the page).
-------------------------
The wiki is just like Allakhazam or here in that, the more the community participates, the more the community can get out of it =)
class MQ2CharacterType : public MQ2Type
{
public:
enum CharacterMembers
{
CountSongs = 2,
MaxBuffSlots = 3,
Exp = 4,
Spawn = 5,
Dar = 6,
AAExp = 7,
AAPoints = 8,
CurrentHPs = 10,
MaxHPs = 11,
HPRegen = 12,
PctHPs = 13,
CurrentMana = 14,
MaxMana = 15,
ManaRegen = 16,
PctMana = 17,
Buff = 18,
Song = 19,
Book = 20,
Skill = 21,
Ability = 22,
Cash = 24,
CashBank = 25,
PlatinumShared = 26,
Grouped = 27,
HPBonus = 28,
ManaBonus = 29,
GukEarned = 30,
MMEarned = 31,
RujEarned = 32,
TakEarned = 33,
MirEarned = 34,
LDoNPoints = 35,
CurrentFavor = 36,
CareerFavor = 37,
Endurance = 38,
Inventory = 39,
Bank = 40,
Combat = 42,
FreeInventory = 43,
Gem = 44,
SpellReady = 45,
Drunk = 50,
STR = 51,
STA = 52,
CHA = 53,
DEX = 54,
INT = 55,
AGI = 56,
WIS = 57,
svMagic = 58,
svFire = 59,
svCold = 60,
svPoison = 61,
svDisease = 62,
Hunger = 63,
Thirst = 64,
BaseSTR = 65,
BaseSTA = 66,
BaseCHA = 67,
BaseDEX = 68,
BaseINT = 69,
BaseAGI = 70,
BaseWIS = 71,
PracticePoints = 72,
PctExp = 73,
PctAAExp = 74,
Moving = 75,
AbilityReady = 76,
PetBuff = 77,
Platinum = 78,
Gold = 79,
Silver = 80,
Copper = 81,
PlatinumBank = 82,
GoldBank = 83,
SilverBank = 84,
CopperBank = 85,
Stunned = 88,
RangedReady = 89,
AltTimerReady = 90,
MaxEndurance = 91,
PctEndurance = 92,
AltAbility = 93,
AltAbilityReady = 94,
AltAbilityTimer = 95,
CombatAbility = 96,
CombatAbilityTimer = 97,
LargestFreeInventory = 98,
TargetOfTarget = 99,
RaidAssistTarget = 100,
GroupAssistTarget = 101,
RaidMarkNPC = 102,
GroupMarkNPC = 103,
CountBuffs = 104,
LanguageSkill = 105,
EnduranceBonus = 106,
CombatEffectsBonus = 107,
ShieldingBonus = 108,
SpellShieldBonus = 109,
AvoidanceBonus = 110,
AccuracyBonus = 111,
StunResistBonus = 112,
StrikeThroughBonus = 113,
AttackBonus = 114,
HPRegenBonus = 115,
ManaRegenBonus = 116,
DamageShieldBonus = 117,
DoTShieldBonus = 118,
AttackSpeed = 119,
GroupList = 120,
AmIGroupLeader = 121,
CurrentEndurance = 122,
EnduranceRegen = 123,
FreeBuffSlots = 124,
CurrentWeight = 125,
AAPointsSpent = 126,
AAPointsTotal = 127,
TributeActive = 128,
CombatAbilityReady = 129,
Running = 130,
GroupSize = 131,
TributeTimer = 132,
RadiantCrystals = 133,
EbonCrystals = 134,
Shrouded = 135,
AutoFire = 136,
Language = 137,
Aura = 138,
LAMarkNPC = 139,
LANPCHealth = 140,
LADelegateMA = 141,
LADelegateMarkNPC = 142,
LAInspectBuffs = 143,
LASpellAwareness = 144,
LAOffenseEnhancement = 145,
LAManaEnhancement = 146,
LAHealthEnhancement = 147,
LAHealthRegen = 148,
LAFindPathPC = 149,
LAHoTT = 150,
ActiveFavorCost = 151,
CombatState = 152,
svCorruption = 153,
svPrismatic = 154,
svChromatic = 155,
Doubloons = 156,
Orux = 157,
Phosphenes = 158,
Phosphites = 159,
Fellowship = 160,
Downtime = 161,
DamageShieldMitigationBonus = 162,
HeroicSTRBonus = 163,
HeroicINTBonus = 164,
HeroicWISBonus = 165,
HeroicAGIBonus = 166,
HeroicDEXBonus = 167,
HeroicSTABonus = 168,
HeroicCHABonus = 169,
HealAmountBonus = 170,
SpellDamageBonus = 171,
ClairvoyanceBonus = 172,
EnduranceRegenBonus = 173,
Counters = 174,
Faycites = 175,
Chronobines = 176,
Mercenary = 177,
XTarget = 178,
Haste = 179,
MercenaryStance = 180,
SkillCap = 181,
GemTimer = 182,
HaveExpansion = 183,
PctAggro = 184,
SecondaryPctAggro = 185,
SecondaryAggroPlayer = 186,
AggroLock = 187,
ZoneBound = 188,
ZoneBoundX = 189,
ZoneBoundY = 190,
ZoneBoundZ = 191,
PctMercAAExp = 192,
MercAAExp = 193,
Subscription = 194,
AAPointsAssigned = 195,
AltCurrency = 196,
ActiveDisc = 197,
Commemoratives = 198,
Nobles = 199,
Zoning = 200,
InInstance = 201,
Instance = 202,
MercListInfo = 203,
UseAdvancedLooting = 204,
Fists = 205,
EnergyCrystals = 206,
PiecesofEight = 207,
SpellInCooldown = 208,
Slowed = 209,
Rooted = 210,
Mezzed = 211,
Crippled = 212,
Malod = 213,
Tashed = 214,
Snared = 215,
Hasted = 216,
Aego = 217,
Skin = 218,
Focus = 219,
Regen = 220,
Symbol = 221,
Clarity = 222,
Pred = 223,
Strength = 224,
Brells = 225,
SV = 226,
SE = 227,
HybridHP = 228,
Growth = 229,
Shining = 230,
Beneficial = 231,
DSed = 232,
RevDSed = 233,
Charmed = 234,
CursorPlatinum = 235,
CursorGold = 236,
CursorSilver = 237,
CursorCopper = 238,
Diseased = 239,
Poisoned = 240,
Cursed = 241,
Corrupted = 242,
Krono = 243,
XTargetSlots = 244,
AssistComplete = 245,
ItemReady = 246,
NumGems = 247,
Vitality = 248,
PctVitality = 249,
AAVitality = 250,
PctAAVitality = 251,
GuildID = 252,
ExpansionFlags = 253,
SPA = 254,
BoundLocation = 255,
SkillBase = 256,
};
enum CharacterMethods
{
Stand,
Sit,
Dismount,
StopCast,
};
I remember a long time ago that... I think it was PeteSampras posted a TLO builder. It was an excel sheet and you could just click through and it would automatically build the condition you wanted. That thing was awesome. Lost it to time now but it worked really well.
I thought Pete's file was not updated, I quit using it after so many of the TLOs changed. would be nice to see it updated
Here is the character datatype from MQ2DataTypes.h
${Me inherits character so all of these should work with ${Me.BlahBlah}
I typical just read thru the list, majority of the time they are self-explanatory