- Code: Alles auswählen
//>>> shadow2004::ModStats [TPT]
void CClientList::GetModStatistics(CRBMap<UINT, CRBMap<CString, UINT>* > *clientMods){
if (!clientMods)
return;
clientMods->RemoveAll();
for (POSITION pos = list.GetHeadPosition(); pos != NULL;) {
CUpDownClient* cur_client = list.GetNext(pos);
switch (cur_client->GetClientSoft()) {
case SO_EMULE :
case SO_OLDEMULE:
// By Taz - ClientAnalyzer don't count Modthief mod version
#ifdef CLIENTANALYZER
// By Taz - tempfix
// if (cur_client->GetAntiLeechData() && cur_client->GetAntiLeechData()->GetBadForThisSession(AT_MODTHIEF))
if ((cur_client->GetAntiLeechData() && cur_client->GetAntiLeechData()->GetBadForThisSession(AT_MODTHIEF)) ||
(StrStrI(cur_client->GetClientModVer(), MOD_VERSION) && cur_client->GetAntiLeechData() && cur_client->GetAntiLeechData()->GetBadForThisSession(AT_NICKTHIEF)))
// <------- tempfix
continue;
#endif
// <------- ClientAnalyzer don't count Modthief mod version
break;
default:
continue;
}
...
for more realistic our mod counts.
Perhaps it could be coded better.
Without adding MODSTRING I was under the impression mod thief detection was not so accurate (i.e. nick thief that were also mod thief were detected only as nick thief) - I think a better solution is to integrate it into CAntiLeechData::Check4ModThief (however I do believe that it's better to have a single maintained CA version).