erfg12 / EQClassic

EQClassic source code from 2010. EverQuest Trilogy Server Emulator.
http://erfg12.github.io/EQClassic/
17 stars 16 forks source link

Unable to summon corpse #19

Closed jimm0thy closed 7 years ago

jimm0thy commented 7 years ago

Non GM characters are unable to summon their corpse using the /corpse command

This is fixable by editing the Client_Process.cpp file of Zone, void Client::ProcessOP_GMSummon sub the code for checking if the summon target is a corpse and thus summoning it falls at the end but this comes after the player has already been kicked from the sub due to not having proper GM account status. By moving the code to the top of the sub this resolves the issue

void Client::ProcessOP_GMSummon(APPLAYER* pApp){
    if (pApp->size != sizeof(GMSummon_Struct)) 
    {
        cout << "Wrong size on OP_GMSummon. Got: " << pApp->size << ", Expected: " << sizeof(GMSummon_Struct) << endl;
        return;
    }
GMSummon_Struct* gms = (GMSummon_Struct*)pApp->pBuffer;
    Mob* st = entity_list.GetMob(gms->charname);
    if (st->IsCorpse()) {

            st->CastToCorpse()->Summon(this);

            return;
    }
if (admin < 100)
    {
        Message(RED, "You're not awesome enough to use this command!");
        return;
    } 

etc..

I'm not really great with C++ but it appears the /corpse command works now , from my testing.

erfg12 commented 7 years ago

Added.