• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

MQ2CSum (3 Viewers)

Latest Opt codes are:
#define PKT_CORPSE_DRAG 0x50C0
#define PKT_CORPSE_DROP 0x7C7C
#define PKT_UPDATE_POSITION 0x2B94

which are in post, this should work fine.
 
Thx again Tone U rock i will get this into a compiled state of form as soon as possible
 
I believe the codes didnt change for this plugin so it should work fine...if u need it compiled for ya just PM me and i will set up a zip for it in my thread ;)
 
Any Idea why this just says you do not have consent to summont hat corpse when you do?
 
yeah loaded and everything autoconsent guild is on but even tryed manual consent and no go just says you dont have consent on /sum
 
i tried this last night with my own corpse .. half a zone away .. says don't have permission/sigh
 
Those checks weren't new... and if they were the problem I believe you'd either get a CTD or 'your target is out of range', the no consent message means something has changed in the program I believe
 
same here, just tried levitate and saw all of pok before falling to my death. this gave me a chance to summon and it says corpse too far away to summon. Ill check back in on this one hehe.
 
In MQ2Internal.h find lines 342-345 and comment/delete them out.
can find em with a ctrl-f and typing in one of the following:

PKT_CORPSE_DRAG, PKT_CORPSE_DROP, PKT_UPDATE_POSITION, and _UPDATEPOSITIONPKT

Want to delete/comment out all of the lines with those in them and you should be good.


Note: This only works for sure if you are just getting the " To far away" message. No idea about the nonconsent message.
 
ah, ok have to wait for another compile with that then, or software to show up :) thanks
 
Rich (BB code):
#ifdef PKT_CORPSE_DRAG
#undef PKT_CORPSE_DRAG
#endif
#ifdef PKT_CORPSE_DROP
#undef PKT_CORPSE_DROP
#endif
#ifdef PKT_UPDATE_POSITION
#undef PKT_UPDATE_POSITION
#endif

is in the plugin so that you do not have to remove the checks. no need to remove it from the source.
 
Of course, you can still remove it if you really really want to...
 
Last edited:
My version wouldnt work, then I went in and took out the define= 0 for those and it did work. Much like several versions of warp that define the offset, yet still need it changed in the MQ2 directory as well. /shrug thats how it worked for me anyways.
 
ok, now I see what I did to get too far to summon message, I did /summon instead of /sumcorpse. I had tried /csum and said couldnt parse that and did /summon and message was too far to summon, so I did /sumcorpse, and now get message do not have permission ;)

I got my visual studio disc lol but it is video studio team suite, and requires a tad more then my machine has to offer. I have about 15gigs free of 30, on the hard drive and it says it wants 20 gigs, and my memory is at 760 megs+ and it wants a full gig. it sets up a server base SQL I think it was and loads 2 other discs on to it.

Now if I can figure out which beta version of video studio I can use besides this, I can try and get another download. until then, if someone could do another compile of this with a fix that would be wonderful :)
 
This is the source that I used to compile the attached .dll. If there are any probs lemme know. Updated the .dll now it should work fine.
Rich (BB code):
#include "../MQ2Plugin.h"

#ifdef PKT_CORPSE_DRAG
#undef PKT_CORPSE_DRAG
#endif
#ifdef PKT_CORPSE_DROP
#undef PKT_CORPSE_DROP
#endif
#ifdef PKT_UPDATE_POSITION
#undef PKT_UPDATE_POSITION
#endif

#define PKT_CORPSE_DRAG 0x7c7c
#define PKT_CORPSE_DROP 0x54eb
#define PKT_UPDATE_POSITION 0x14CB

PreSetup("MQ2CSum");

VOID SumCorpseCmd(PSPAWNINFO pChar, PCHAR szLine)
{

if (!pTarget || !ppTarget) return;

PSPAWNINFO Target = (PSPAWNINFO)pTarget;
if (Target->Type != SPAWN_CORPSE) return;

struct _MOVEPKT {
/*0000*/ unsigned short SpawnID;
/*0002*/ unsigned short TimeStamp;
/*0004*/ float Y;
/*0008*/ float DeltaZ;
/*0012*/ float DeltaY;
/*0016*/ float DeltaX;
/*0020*/ int Animation:10;
/*0020*/ int DeltaHeading:10;
/*0020*/ int padding0020:12;
/*0024*/ float X;
/*0028*/ float Z;
/*0032*/ int Heading:12;
/*0032*/ int padding1_0032:10;
/*0032*/ int padding2_0032:10;
} P; // 36

ZeroMemory(&P, sizeof(P));
P.SpawnID = (unsigned short)pChar->SpawnID;
P.Heading = (unsigned int)(pChar->Heading * 4);

P.Z = Target->Z;
P.Y = Target->Y;
P.X = Target->X;
SendEQMessage(PKT_UPDATE_POSITION, &P, sizeof(P));

char szCorpseName[152] = {0};
strcpy(szCorpseName, Target->Name);
SendEQMessage(PKT_CORPSE_DRAG, szCorpseName, 152);

P.Z = pChar->Z;
P.Y = pChar->Y;
P.X = pChar->X;
SendEQMessage(PKT_UPDATE_POSITION, &P, sizeof(P));

SendEQMessage(PKT_CORPSE_DROP, "", 0);
}

PLUGIN_API VOID InitializePlugin(VOID)
{
AddCommand("/sumcorpse", SumCorpseCmd);
}

PLUGIN_API VOID ShutdownPlugin(VOID)
{
RemoveCommand("/sumcorpse");
}
Dirty decide to Copy N Paste to KenetixEQ so I guess you can get it there too.
 
Last edited:
Does this still work after the latest patch, or are there different offsets to get?
 
Rich (BB code):
// cronic

#include "../MQ2Plugin.h"

#ifdef PKT_CORPSE_DRAG
#undef PKT_CORPSE_DRAG
#endif
#ifdef PKT_CORPSE_DROP
#undef PKT_CORPSE_DROP
#endif
#ifdef PKT_UPDATE_POSITION
#undef PKT_UPDATE_POSITION
#endif

#define PKT_CORPSE_DRAG      0x50C0
#define PKT_CORPSE_DROP      0x7C7C
#define PKT_UPDATE_POSITION  0x14CB

PreSetup("MQ2CSum");

VOID SumCorpseCmd(PSPAWNINFO pChar, PCHAR szLine)
{
	// check for target
	if (!pTarget || !ppTarget) return;
	
	// make sure it's a corpse
	PSPAWNINFO Target = (PSPAWNINFO)pTarget;
	if (Target->Type != SPAWN_CORPSE) return;

	// setup move packet
	struct _MOVEPKT {
	/*0000*/ unsigned short SpawnID;
	/*0002*/ unsigned short TimeStamp;
	/*0004*/ float Y;
	/*0008*/ float DeltaZ;
	/*0012*/ float DeltaY;
	/*0016*/ float DeltaX;
	/*0020*/ int Animation:10;
	/*0020*/ int DeltaHeading:10;
	/*0020*/ int padding0020:12;
	/*0024*/ float X;
	/*0028*/ float Z;
	/*0032*/ int Heading:12;
	/*0032*/ int padding1_0032:10;
	/*0032*/ int padding2_0032:10;
	} P; // 36

	// init move packet
	ZeroMemory(&P, sizeof(P));
	P.SpawnID = (unsigned short)pChar->SpawnID;
	P.Heading = (unsigned int)(pChar->Heading * 4);

	// jump to
	P.Z = Target->Z;
	P.Y = Target->Y;
	P.X = Target->X;
	SendEQMessage(PKT_UPDATE_POSITION, &P, sizeof(P));

	// corpse drag
	char szCorpseName[152] = {0};
	strcpy(szCorpseName, Target->Name);
	SendEQMessage(PKT_CORPSE_DRAG, szCorpseName, 152);

	// jump back
	P.Z = pChar->Z;
	P.Y = pChar->Y;
	P.X = pChar->X;
	SendEQMessage(PKT_UPDATE_POSITION, &P, sizeof(P));

	// corpse drop
	SendEQMessage(PKT_CORPSE_DROP, "", 0);
}

PLUGIN_API VOID InitializePlugin(VOID)
{
	AddCommand("/sumcorpse", SumCorpseCmd);
}

PLUGIN_API VOID ShutdownPlugin(VOID)
{
	RemoveCommand("/sumcorpse");
}

Should work for the 11-1-2005 patch. Some opcodes have changed since the last patch. This code is exactly the same as on the first post of this thread. Sony likes playing games with packets.
 
Which opcodes :p They haven't changed in awhile there are a few minor ones that change every patch but none of the cgank,copen,csum.
 
The CSum opcodes are the same ones as from a month or two back or something, PKT_GRAB_ITEM also changed from like 0x3BC2 to 0x3CB2 or the other way around, whatever is posted.

... or just maybe not at all.. maybe im just on crack
 
Re: MQ2CSum - 2005-12-07 opcodes

Rich (BB code):
// for 2005-12-07 eqgame
#define PKT_CORPSE_DRAG         0x6536
#define PKT_CORPSE_DROP         0x50C0
#define PKT_UPDATE_POSITION     0x14CB
 
Updated opcodes and still cant get it working .. probably something stupid i am doing or haven't done, anyone else with an issue?
 
Rich (BB code):
#include "../MQ2Plugin.h"

PreSetup("MQ2CSum");

#define PKT_CORPSE_DRAG          0x6536
#define PKT_CORPSE_DROP          0x50C0
#define PKT_UPDATE_POSITION    0x14CB

VOID SumCorpseCmd(PSPAWNINFO pChar, PCHAR szLine)
{
    // check for target
    if (!pTarget || !ppTarget) return;

    // make sure it's a corpse
    PSPAWNINFO Target = (PSPAWNINFO)pTarget;
    if (Target->Type != SPAWN_CORPSE) return;

    // setup move packet
    struct _MOVEPKT {
        /*0000*/ unsigned short SpawnID;
        /*0002*/ unsigned short TimeStamp;
        /*0004*/ float Y;
        /*0008*/ float DeltaZ;
        /*0012*/ float DeltaY;
        /*0016*/ float DeltaX;
        /*0020*/ int Animation:10;
        /*0020*/ int DeltaHeading:10;
        /*0020*/ int padding0020:12;
        /*0024*/ float X;
        /*0028*/ float Z;
        /*0032*/ int Heading:12;
        /*0032*/ int padding1_0032:10;
        /*0032*/ int padding2_0032:10;
    } P; // 36

    // init move packet
    ZeroMemory(&P, sizeof(P));
    P.SpawnID = (unsigned short)pChar->SpawnID;
    P.Heading = (unsigned int)(pChar->Heading * 4);

    // jump to
    P.Z = Target->Z;
    P.Y = Target->Y;
    P.X = Target->X;
    SendEQMessage(PKT_UPDATE_POSITION, &P, sizeof(P));

    // corpse drag
    char szCorpseName[152] = {0};
    strcpy(szCorpseName, Target->Name);
    SendEQMessage(PKT_CORPSE_DRAG, szCorpseName, 152);

    // jump back
    P.Z = pChar->Z;
    P.Y = pChar->Y;
    P.X = pChar->X;
    SendEQMessage(PKT_UPDATE_POSITION, &P, sizeof(P));

    // corpse drop
    SendEQMessage(PKT_CORPSE_DROP, "", 0);
}

PLUGIN_API VOID InitializePlugin(VOID)
{
    AddCommand("/sumcorpse", SumCorpseCmd);
}

PLUGIN_API VOID ShutdownPlugin(VOID)
{
    RemoveCommand("/sumcorpse");
}

htw
 
MQ2CSum

Users who are viewing this thread

Back
Top
Cart