C++ Sterge item din inventar cand userul este offline

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
lucianwar
Nou Venit

Nou Venit
Mesaje: 3
Membru din: 27 Iul 2014, 11:52
Regat: Shinsoo
Aprecieri: 5  
Mulţumiri: 0
Medalii

*Problemă/Întrebare:

Cand sterg un item din inventarul unui player, acesta se sterge doar daca userul este in joc, daca este offline nu il pot sterge!

Trebuie sa fie o treaba de game->database / cache.

Cum pot sterge un item din invetarul playerului cand acesta este offline?

Tipologie server:
*Resursă folosită:
*ServerFiles utilizat:
mainline_released
*Syserr:
Poză:
*Detalii suplimentare:
Las aici sursa unde sterg itemul, sunt mai multe linii comentate, acelea sunt felurile in care am incercat...

Cod: Selectaţi tot

LPITEM item = ITEM_MANAGER::instance().Find(item_id);
if (item != NULL) {

    // LPCHARACTER pOwner = item->GetOwner();
    // pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255);

    // // remove from inventory
    // if (item->GetOwner() && CHARACTER_MANAGER::instance().Find(item->GetOwner()->GetPlayerID()) != NULL) {
    //  item->RemoveFromCharacter();
    // }

    item->SetSkipSave(false);
    item->RemoveFromCharacter();
    item->SetOwnership(NULL, 0);
    ITEM_MANAGER::instance().RemoveItem(item, "PURGE");
    ITEM_MANAGER::instance().DestroyItem(item);
    ITEM_MANAGER::instance().FlushDelayedSave(item);


    ////////////////////
    // remove from db //
    ////////////////////
    // DWORD dwID = item->GetID();
    // DWORD dwOwnerID = item->GetLastOwnerPID();

    // db_clientdesc->DBPacketHeader(HEADER_GD_ITEM_DESTROY, 0, sizeof(DWORD) + sizeof(DWORD));
    // db_clientdesc->Packet(&dwID, sizeof(DWORD));
    // db_clientdesc->Packet(&dwOwnerID, sizeof(DWORD));


    ////////////////////////
    // send the db packet //
    ////////////////////////
    // db_clientdesc->DBPacketHeader(HEADER_GD_ITEM_FLUSH, 0, sizeof(DWORD));
    // db_clientdesc->Packet(&item_id, sizeof(DWORD));
}
[ Postat de pe Linux Laptop ] Imagine
=((
Afișează semnătura
Avatar utilizator
Ionuţ M.
Metin Master

Metin Master
Mesaje: 2680
Membru din: 28 Noi 2015, 22:02
Aprecieri: 170  
Mulţumiri: 12723  
  Rezolvări prob.: 2
Discord: Copiază ID
 Contact:
Medalii

Arhivat.
Imagine
Afișează semnătura
Închis
Răspunsuri
3
Vizualizări
1264
Răspunsuri
1
Vizualizări
251

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Bing [Bot], Google [Bot] și 51 vizitatori