Sziasztok,
André felvetette egy témában ezt a PM trackert, szóval megcsináltam.
Mivel a háttértárra való írás és onnan olvasás nagyobb erőforrást igényel, ezért a memóriában tárolja a PM-eket és 100-asával menti csak mindig egyszerre ki őket (ezt amúgy át tudjátok írni a PMTracker.cpp fájlban [a for ciklusban lévő szám lesz az]), persze csináltam egy GM parancsot is (/pmtrackersave), amivel a még ki nem mentett üzeneteket menthetitek le.
Az üzeneteket minden CH mappájában a private_messages.txt fájlban találjátok. (kitől[tab]kinek[tab]üzenet)
Na, de lássunk is hozzá!
Nyisd meg az input_main.cpp fájlt és az includokhoz add hozzá: #include "PMTracker.h"
Whisper függvény végén keresd meg ezt a részt:
if (LC_IsEurope() != true)
{
sys_log(0, "WHISPER: %s -> %s : %s", ch->GetName(), pinfo->szNameTo, buf);
}
}
Alá tedd be:
std::string from = ch->GetName();
std::string to = pinfo->szNameTo;
PMTracker::PMTracker(from,to,buf,false);
Mentsd el.
cmd_gm.cpp fájlt is nyisd meg és az includokhoz add hozzá: #include "PMTracker.h"
Ezután keresd meg ezt a részt:
ACMD(do_slow)
{
Command_ApplyAffect(ch, argument, "slow", COMMANDAFFECT_SLOW);
}
Tedd be alá:
ACMD(do_pmtrackersave)
{
ch->ChatPacket(CHAT_TYPE_INFO, "%u PM were saved.", PMTracker::PMCount());
PMTracker::PMTracker("::::::::::GM_SAVE::::::::::","by","Distraught",true);
}
Mentsd el.
Nyisd meg a cmd.cpp fájlt és a ACMD(do_slow); alá tedd be: ACMD(do_pmtrackersave);
Keresd meg ezt:
{ "reload", do_reload, 0, POS_DEAD, GM_IMPLEMENTOR },
Alá:
{ "pmtrackersave", do_pmtrackersave, 0, POS_DEAD, GM_IMPLEMENTOR },
Mentsd el.
Ezután töltsd le a RAR fájlt és csomagold ki, majd töltsd fel a PMTracker.h és .cpp fájlokat a game/src mappába.
Nyisd meg a Makefile-t és keresd meg ezt a részt:
CPPFILE =
Írd bele ez elejére.
Valahogy így nézzen ki:
CPPFILE = PMTracker.cpp BattleArena.cpp FSM.cpp MarkConvert.cpp MarkImage.cpp MarkManager.cpp OXEvent.cpp TrafficProfiler.cpp ani.cpp\
(csak az első sort másoltam be, ki NE töröld a többi részt, hogy ennyi legyen csak mint amennyit itt látsz!)
Mentsd el.
Fordítsd le a forrásod.
EDIT:
Összeraktam egy kis programot is gyorsan, amivel könnyedén tudjátok böngészni az így kapott private_messages.txt fájlokat (legyen az exe mellett).
(https://i.imgur.com/x1ETbdk.png)
Abba a kis szövegdobozba ha beírtok egy nevet, akkor leszűkíti a találatokat csak azokra a PM-ekre, amiket az adott felhasználó küldött vagy kapott.
Ha akartok valami update-et, akkor írjátok meg PM-ben.
(letöltés ehhez is a csatolmányban)