Tonka Trucks
Well-known member
- Joined
- Apr 27, 2006
- RedCents
- 20¢
MQ2Assist - Updated 7/28/06 - 8:00PM CST
Usage: Overrides your EQ /assist command so that you can /assist from anywhere in the zone. This does not Ghost you, however you could probably use it with that.
Known Issues:
- All of you who have used MQ2 have noticed once in a while that it make take a moment to refresh your map for player positions. This issue is even known with not using MQ for the new show group members option. If you were to target via your map, sometimes it does not always assist right away. I'll be working on this to see if there's something that I can't do to try and fix it. Otherwise, its fairly easy to use during a simple group or major raid, and seems to have no real problems, when you have someone to set as a main assist and you have a hotkey defined. Lag intensive zones like The Devastation seem to cause this issue when map targeting. I suggest for now, if you're having this issue to please use /target (playername) -or your choice of how you'd like to target them-, then assist. Thank you to Devlin for this information.
Usage: Overrides your EQ /assist command so that you can /assist from anywhere in the zone. This does not Ghost you, however you could probably use it with that.
Known Issues:
- All of you who have used MQ2 have noticed once in a while that it make take a moment to refresh your map for player positions. This issue is even known with not using MQ for the new show group members option. If you were to target via your map, sometimes it does not always assist right away. I'll be working on this to see if there's something that I can't do to try and fix it. Otherwise, its fairly easy to use during a simple group or major raid, and seems to have no real problems, when you have someone to set as a main assist and you have a hotkey defined. Lag intensive zones like The Devastation seem to cause this issue when map targeting. I suggest for now, if you're having this issue to please use /target (playername) -or your choice of how you'd like to target them-, then assist. Thank you to Devlin for this information.
Rich (BB code):
Rich (BB code):
// Usage: Overrides your EQ /assist command so that you can
// /assist from anywhere in the zone. This does not Ghost
// you, however you could use it with that.
// By: TurkReno - Props to Abyss for the MovePacket structure.
#include"../MQ2Plugin.h"
#ifdef PKT_UPDATE_POSITION
#undef PKT_UPDATE_POSITION
#endif
#define OP_ASSIST 0x1C3C // 06-16-06
#define PKT_UPDATE_POSITION 0x178A // 06-16-06
PreSetup("MQ2Assist");
VOID Assist(PSPAWNINFO pChar, PCHAR szLine)
{
CHAR szMsg[MAX_STRING] = {0};
PSPAWNINFO Target = (PSPAWNINFO)pTarget;
if (!pTarget || !ppTarget) {
sprintf(szMsg,"Need a target in order to /assist.");
WriteChatColor(szMsg,COLOR_LIGHTGREY);
Return;
}
struct _MOVEPKT {
unsignedshort SpawnID;
unsignedshort TimeStamp;
unsigned Heading:12;
unsigned Padding0004:20;
float DeltaY;
int Animation:10;
unsigned Padding0012:22;
float DeltaX;
float Y;
int DeltaHeading:10;
int Padding0024:6;
int unknown0026:2;
float DeltaZ;
float Z;
float X;
} P;
ZeroMemory(&P, sizeof(P));
P.SpawnID = (unsignedshort)pChar->SpawnID;
P.Heading = (unsignedint)(pChar->Heading * 4);
P.Z = Target->Z;
P.Y = Target->Y;
P.X = Target->X;
SendEQMessage(PKT_UPDATE_POSITION, &P, sizeof(P));
typedefstruct _Assist {
unsignedshort TargetID;
BYTE Unknown[2];
} Assist;
Assist Packet;
Packet.TargetID = (unsignedshort)((PSPAWNINFO)pTarget)->SpawnID;
Packet.Unknown[0] = 0x00;
Packet.Unknown[1] = 0x00;
SendEQMessage(OP_ASSIST, &Packet, sizeof(Packet));
P.Z = pChar->Z;
P.Y = pChar->Y;
P.X = pChar->X;
SendEQMessage(PKT_UPDATE_POSITION, &P, sizeof(P));
}
PLUGIN_API VOID InitializePlugin(VOID)
{
DebugSpewAlways("Initializing MQ2Assist");
AddCommand("/assist", Assist);
}
PLUGIN_API VOID ShutdownPlugin(VOID)
{
DebugSpewAlways("Shutting down MQ2Assist");
RemoveCommand("/assist");
}
Last edited:

