I find it funny that you're blaming Funcom for a hack not working. I love AOMD and think wonders of it's author, but comon'... this is getting silly. AOMD works by looking for byte strings that seem to be constant in all packets that have to do with mission terminals. But there's no guarantee that those segments AOMD is picking out have to be constant.
Cut FC some slack on this one. This is not their baby.. they don't have to support hacked programs. They don't have to give us coders the packet documents, etc. I believe there are other real issues that FC deserves blame for, and that this definately isn't one of them.
With that said, here's what you can do to fix AOMD:
1. Grab the v14 source code, and open functions.cpp
2. Look for the lines (at the top of the file)
Code:
#define LEN_MDATAID 0x4
static BYTE a_xMissionDataID[LEN_MDATAID] = {0xAB, 0xAB, 0xAB, 0xAB};
and replace it with
Code:
#define LEN_MDATAID 0x8
static BYTE a_xMissionDataID[LEN_MDATAID] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05};
static int MissionDataIDOffset = LEN_MDATAID + 0x4;
3. In the OnPacket function, approx line 523, you'll see:
Code:
for (lLoop = 0; lLoop < AO_MISSION_MAX; lLoop += 1)
{
/* Find mission data marker */
lPos = FindStr(a_xMisData, lDataRem, a_xMissionDataID, LEN_MDATAID);
if (lPos < 0)
break;
a_xMisData += lPos;
lDataRem -= lPos;
Right after that, add the following:
Code:
/* Offset */
a_xMisData += MissionDataIDOffset;
lDataRem -= MissionDataIDOffset;
Like the original AOMD, this isn't guaranteed to work 100%. The replacement byte string I'm checking for now 'seems' to be constant.. but like before, I don't really understand what those bytes may be reserved for so it may change in the future.
I'm sorry to those that don't have VC++ for not repacking an exe with this, but I think most people would prefer to alter their own source-code than download an unknown exe.
If someone wants to repackage it, by all means do so but like all things on the net, download at your own risk.
P.S. I threw this one together quickly and works both in Rome and Omni-Ent. So if you find that it doesn't work at a specific terminal somewhere, or specific mission type, please let me know.
Tap