Project 1999

Project 1999 (/forums/index.php)
-   Green Server Chat (/forums/forumdisplay.php?f=73)
-   -   Accidentally clicked on empty corpse (/forums/showthread.php?t=416132)

sasigirl 03-06-2023 01:29 AM

Accidentally clicked on empty corpse
 
I died twice in Chardok while recovering corpse. I managed to pull all 3 corpses to entrance for rez but I accidentally clicked on empty corpse and clicked done. (I thought I clicked on Mob's corpse). So one of the corpse has no way to recover xp. I know it's going to be a long shot but is there anyway I can recover the lost corpse?

I wish i was smart enough not to click on done even after I clicked on empty corpse. so someone else still can cast rez on it before it expired :(

Trexller 03-06-2023 01:36 AM

unfortunately the xp from your empty corpse is gone for good

shit happens, you'll get the xp back

look at it this way, you'll have that much more xp-time worth of loot farmed

PabloEdvardo 03-06-2023 02:21 AM

if you do that again either /q out while the corpse is still open, or /load d (loadskin default) to reload your UI, both will force you off the corpse without actually looting it

Trexller 03-06-2023 02:40 AM

Quote:

Originally Posted by PabloEdvardo (Post 3584651)
if you do that again either /q out while the corpse is still open, or /load d (loadskin default) to reload your UI, both will force you off the corpse without actually looting it

good to know, I never knew that

20+ years of EQ and theres always something new to learn

Swish 03-06-2023 03:35 AM

https://i.imgur.com/apRp7TQ.gif

Toxigen 03-06-2023 11:13 AM

ive done this at least a couple dozen times myself

think of it as an opportunity to acquire more plat on the road to 60 / buffer xp

TercerRigo 03-06-2023 03:00 PM

Quote:

I know it's going to be a long shot but is there anyway I can recover the lost corpse?
If eqemu is comparable, the following is why :

https://github.com/EQEmu/Server/blob...one/corpse.cpp
Code:

void Corpse::EndLoot(Client* client, const EQApplicationPacket* app) {
        auto outapp = new EQApplicationPacket;
        outapp->SetOpcode(OP_LootComplete);
        outapp->size = 0;
        client->QueuePacket(outapp);
        safe_delete(outapp);

        being_looted_by = 0xFFFFFFFF;
        if (IsEmpty())
                Delete();
        else
                Save();
}

Code:

void Corpse::Delete() {
        if (IsPlayerCorpse() && corpse_db_id != 0)
                database.DeleteCharacterCorpse(corpse_db_id);

        corpse_db_id = 0;
        player_corpse_depop = true;
}

https://github.com/EQEmu/Server/blob...one/zonedb.cpp
Code:

bool ZoneDatabase::DeleteCharacterCorpse(uint32 db_id) {
        std::string query = StringFormat("DELETE FROM `character_corpses` WHERE `id` = %d", db_id);
        auto results = QueryDatabase(query);
        if (results.Success() && results.RowsAffected() != 0)
                return true;

        return false;
}

https://dev.mysql.com/doc/refman/5.7/en/delete.html
Code:

The DELETE statement deletes rows from tbl_name and returns the number of deleted rows.
The only options would be to restore from backup, or to give you equal xp to another present corpse. I agree with everyone, it's gone for good.

sasigirl 03-06-2023 03:11 PM

Quote:

Originally Posted by PabloEdvardo (Post 3584651)
if you do that again either /q out while the corpse is still open, or /load d (loadskin default) to reload your UI, both will force you off the corpse without actually looting it

That's good idea. it sound better than holding corpse for hours lol thanks!

sasigirl 03-06-2023 03:12 PM

Quote:

Originally Posted by TercerRigo (Post 3584816)
If eqemu is comparable, the following is why :

https://github.com/EQEmu/Server/blob...one/corpse.cpp
Code:

void Corpse::EndLoot(Client* client, const EQApplicationPacket* app) {
        auto outapp = new EQApplicationPacket;
        outapp->SetOpcode(OP_LootComplete);
        outapp->size = 0;
        client->QueuePacket(outapp);
        safe_delete(outapp);

        being_looted_by = 0xFFFFFFFF;
        if (IsEmpty())
                Delete();
        else
                Save();
}

Code:

void Corpse::Delete() {
        if (IsPlayerCorpse() && corpse_db_id != 0)
                database.DeleteCharacterCorpse(corpse_db_id);

        corpse_db_id = 0;
        player_corpse_depop = true;
}

https://github.com/EQEmu/Server/blob...one/zonedb.cpp
Code:

bool ZoneDatabase::DeleteCharacterCorpse(uint32 db_id) {
        std::string query = StringFormat("DELETE FROM `character_corpses` WHERE `id` = %d", db_id);
        auto results = QueryDatabase(query);
        if (results.Success() && results.RowsAffected() != 0)
                return true;

        return false;
}

https://dev.mysql.com/doc/refman/5.7/en/delete.html
Code:

The DELETE statement deletes rows from tbl_name and returns the number of deleted rows.
The only options would be to restore from backup, or to give you equal xp to another present corpse. I agree with everyone, it's gone for good.

This looks Greek to me but I can see where the depop came from. It's pain to lose 9% at 59 but I just suck it up I guess!

sasigirl 03-06-2023 03:13 PM

Quote:

Originally Posted by Trexller (Post 3584646)
unfortunately the xp from your empty corpse is gone for good

shit happens, you'll get the xp back

look at it this way, you'll have that much more xp-time worth of loot farmed

Yeah I think I managed to recover the xp I lost within 1.5 hrs today. I feel much better now! thanks!


All times are GMT -4. The time now is 03:01 AM.

Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.