OOP in Macros

A forum for the general posts relating to MacroQuest. *DEPRECATED: This forum is no longer in public use, but remains here for your reading pleasure. Enjoy

Moderator: MacroQuest Developers

SlimFastForYou
a hill giant
a hill giant
Posts: 174
Joined: Sat Jan 24, 2004 1:38 am

OOP in Macros

Post by SlimFastForYou » Sun Aug 29, 2004 3:26 am

Hey everyone,

I remember when the switch from MQ2Parms to MQ2Data was made, the variables became a little more object oriented ( for example to see a mob's class, ${Mob.Class}, or for hp ${Mob.PctHPs}).

Is there a way to have user defined objects in macros. For example, this is what such a class might semi-look like in C++ (this isn't quite valid C++ and this isn't quite valid MQ2Data ;) ).

For a cleric

Code: Select all

class GroupMemberOne
{
public:
    spawn Attributes = Group[1];
    int HealThreshold = CalculateHealThreshold(Group[1].Class);
    timer VirtueTimer;
};
Or for an enchanter

Code: Select all

class GroupMemberOne
{
public:
    spawn Attributes = Group[1];
    bool AutoRune;
    timer VOQTimer;
    timer HasteTimer;
    timer NDTTimer;
};
The way I write my macros now (using the enchanter example):

Code: Select all

/declare GroupMemberOneAutoRune bool outer
/declare GroupMemberOneVOQTimer timer outer
/declare GroupMemberOneHasteTimer timer outer
/declare GroupMemberOneNDTTimer timer outer
/declare GroupMemberTwoAutoRune bool outer
/declare GroupMemberTwoVOQTimer timer outer
/declare GroupMemberTwoHasteTimer timer outer
/declare GroupMemberTwoNDTTimer timer outer
/declare GroupMemberThreeAutoRune bool outer
/declare GroupMemberThreeVOQTimer timer outer
/declare GroupMemberThreeHasteTimer timer outer
/declare GroupMemberThreeNDTTimer timer outer
/declare GroupMemberFourAutoRune bool outer
/declare GroupMemberFourVOQTimer timer outer
/declare GroupMemberFourHasteTimer timer outer
/declare GroupMemberFourNDTTimer timer outer
/declare GroupMemberFiveAutoRune bool outer
/declare GroupMemberFiveVOQTimer timer outer
/declare GroupMemberFiveHasteTimer timer outer
/declare GroupMemberFiveNDTTimer timer outer
.
.
.
Then procedures for each group member to set the timers based on class, etc.
I've written some semi-advanced macros but I'm to the point where I want to figure out ways to make it easier to work on. I know one thing I should look into are arrays, but arrays can get somewhat messy if your not too careful and was just wondering if you could create user defined objects in macros. Besides, according to my help file, you can't make timer arrays anyway =).

Some Guy
a ghoul
a ghoul
Posts: 119
Joined: Thu Apr 29, 2004 5:32 pm

Post by Some Guy » Sun Aug 29, 2004 4:59 am