Quote Originally Posted by Swords View Post
I don't think it will be possible really, not because of the PS2 but the overall design of the game. Each video game computer or console is built up on a game engine. A game engine contains all the neccessary code to run and operate the game, proccess files, actions, ect.

[..]

Since Macros are literal game engine code, they are likely built in the game engine. When you are using a macro you are basically writing game engine code telling it what to do. And when it comes to programming a game engine no matter how good or experienced a programmer you are, they dread editing source code. Why you might ask, because any time you edit code you have to edit all the refrences associated with that code. [..]
That's not quite accurate. Macros are abbreviated code, often easily human readable/writeable, that, when processed, expand into the actual code that's being used by a compiler/engine/whatever.

So /equipset xx could simply look up which set xx is, then put all the items in an associative array. Example:

Set=25 {
neck=Stone Gorget
hands=Stone Mufflers
waist=Siegel Sash
legs=Haven Hose
}

This would put all the items in an array where array[slot] = piece. Then you just have to iterate through the array, and for every key => value input the following line:
/equip key "value"

The result is this:
/equip neck "Stone Gorget"
/equip hands "Stone Mufflers"
/equip waist "Siegel Sash"
/equip legs "Haven Hose"

Now these are several lines of normal commands and they can be executed as such.

How SE would execute the actual code depends on the structure of their program, if the sets are all stored client side it could be done by a simple function that catches the macro before it's sent to the server and formats it to proper commands (like the equip commands just now). If it's done server side, it could be either done with the preprocessor, that expands the macro into proper code, or the engine could even transform the code itself, also by a simple function. Either way, this is a very elegant and feasible solution, both to implement and use. And unlike most other suggestions, it doesn't enable/encourage cheating/botting in any way, so that's a major plus.

Would love to see it at least considered.