PMTracker

Indította Distraught, 2018-03-08, 22:00:31

2018-03-08, 22:00:31 Utolsó szerkesztés: 2018-03-11, 20:10:39 Szerző: Distraught
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).

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)

C++ programmer at Gameloft