Du bist nicht angemeldet.

  • Anmelden
  • Registrieren

r@ppi

Fortgeschrittener

Beiträge: 199

1

09.04.2004, 20:54

Emule Modding Tuts 2

Fakerank einbauen[is nicht meine aktuelle]

Suche:

void CUpDownClient::SendRankingInfo(){


Ersetze alles bis zur } durch folgendes:


void CUpDownClient::SendRankingInfo(){
if (!ExtProtocolAvailable())
return;
uint16 nRank;
int rn1;
srand(clock());
rn1=10+rand() % 150;
nRank = rn1;
Packet* packet = new Packet(OP_QUEUERANKING,12,OP_EMULEPROT);
memset(packet->pBuffer,0,12);
memcpy(packet->pBuffer+0,&nRank,2);
theApp.uploadqueue->AddUpDataOverheadOther(packet->size);
socket->SendPacket(packet,true,true);

------------------------------------------------------------------------------------------------
Moderkennung einbauen (LSD) ein riesiger tut

Zum Projekt hinzufügen:
Mod_Version.cpp
Mod_Version.h


Opcodes.h

Suchen:
code:
1:
2:
3:

#define ET_FEATURES 0x27





Einfügen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:

//MOD Version LSD
#define ET_MOD_FUSION 0x66 // Fusion Mod
#define ET_MOD_FUSION_VERSION 0x67 // Fusion Mod ver
#define ET_MOD_TAROD 0x77 // Tarod Client Version Bool, (v==0) = Advanced Mod
#define ET_MOD_TAROD_VERSION 0x78 // lugdunum asked for it -do not remove (Tarod Version)
#define ET_MOD_Morph 0x79 // Added by Morpheus original Code by Tarod
#define ET_MOD_Morph_VERSION 0x80 // Added by Morpheus original Code by Tarod
#define ET_MOD_MorTillo 0x82 // MorTillo
#define ET_MOD_MorTillo_VERSION 0x83 // MorTillo
#define ET_MOD_LSD 0x87 // Bool LSD Client Version
#define ET_MOD_LSD_VERSION 0x88 // DW LSD Client Version
#define ET_MOD_LOVELACE_VERSION 0x90 // [lovelace] Mod ver
#define ET_MOD_OXY 0x94 // Oxygen Mod
#define ET_MOD_PLUS 0x99 // emule Plus ver
#define ET_FEATURESET 0x54 //[Bloodymad Featureset]
#define ET_MOD_VERSION 0x55 // Mod ver Generic String
#define ET_MOD_PROTOCOL 0x56 // Mod ver Extended Mod Protocol

#define MOD_VERSION "My Own Mod v1"//Generic String-Mod Version !





TransferWnd.h

Bei den #include 's einfügen:
code:
1:
2:
3:

#include "Mod_Version.h"




Suchen:
code:
1:
2:
3:

CToolTipCtrl m_tooltip;




Einfügen:
code:
1:
2:
3:

CModVersion* mod;//LSD mod version class





TransferWnd.cpp

Suchen:code:
1:
2:
3:
4:
5:
6:

BOOL CTransferWnd::OnInitDialog(){
CResizableDialog::OnInitDialog();
InitWindowStyles(this);
windowtransferstate = 1;




Einfügen:
code:
1:
2:
3:

mod = new CModVersion ();//LSD mod version class





Baseclient.cpp:

Suchen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:

if (!m_pszUsername) {m_clientSoft=SO_UNKNOWN;return;}
int iHashType = GetHashType();
if (iHashType == SO_OLDEMULE) {m_clientSoft= SO_OLDEMULE;return;}
if (iHashType == SO_EMULE){
if( m_byEmuleVersion!=0x99 ){
CString temp;
temp.Format( "%02X", m_byEmuleVersion );
m_nClientVersion = atoi(temp.GetBuffer())*10;
}
switch(m_byCompatibleClient){
case SO_CDONKEY:
m_clientSoft = SO_CDONKEY;
break;
case SO_XMULE:
m_clientSoft = SO_XMULE;
break;
case SO_SHAREAZA:
m_clientSoft = SO_SHAREAZA;
break;
default:
if (m_bIsML)
m_clientSoft = SO_MLDONKEY;
else if (m_bIsHybrid)
m_clientSoft = SO_EDONKEYHYBRID;
else
m_clientSoft = SO_EMULE;
}
return;
}
if (m_bIsML || iHashType == SO_MLDONKEY) {m_clientSoft= SO_MLDONKEY;return;}
if( m_bIsHybrid )
m_clientSoft=SO_EDONKEYHYBRID;
else
m_clientSoft=SO_EDONKEY;




Ersetzen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:

//if (!m_pszUsername) {m_clientSoft=SO_UNKNOWN;return;}
int iHashType = GetHashType();
if(m_pszUsername == NULL){
m_clientSoft =SO_UNKNOWN;
}
else if (iHashType == SO_OLDEMULE) { m_clientSoft= SO_OLDEMULE;;}
else if (iHashType == SO_EMULE) {
if( m_byEmuleVersion!=0x99 )
{
CString temp;
temp.Format( "%02X", m_byEmuleVersion );
m_nClientVersion = atoi(temp.GetBuffer())*10;
}
switch(m_byCompatibleClient){
case SO_CDONKEY:
m_clientSoft = SO_CDONKEY;
break;
case SO_XMULE:
m_clientSoft = SO_XMULE;
break;
case SO_SHAREAZA:
m_clientSoft = SO_SHAREAZA;
break;
default:
if (m_bIsML)
m_clientSoft = SO_MLDONKEY;
else if (m_bIsHybrid)
m_clientSoft = SO_EDONKEYHYBRID;
else
m_clientSoft = SO_EMULE;
}
//return;
}
else if (m_bIsML || iHashType == SO_MLDONKEY) { m_clientSoft= SO_MLDONKEY;;}
else if( m_bIsHybrid )
m_clientSoft=SO_EDONKEYHYBRID;
else
m_clientSoft=SO_EDONKEY;




Suchen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

void CUpDownClient::SendMuleInfoPacket(bool bAnswer){
...
CSafeMemFile data(128);
uint8 version = theApp.m_uCurVersionShort;
data.Write(&version,1);
uint8 protversion = EMULE_PROTOCOL;
data.Write(&protversion,1);
uint32 tagcount = 7;




Ersetzen durch:
code:
1:
2:
3:
4:
5:
6:
7:
8:

CSafeMemFile data(128);
uint8 version = theApp.m_uCurVersionShort;
data.Write(&version,1);
uint8 protversion = EMULE_PROTOCOL;
data.Write(&protversion,1);
uint32 tagcount = 8;




Suchen:
code:
1:
2:
3:
4:

CTag tag7(ET_FEATURES, dwTagValue);
tag7.WriteTagToFile(&data);




Einfügen:
code:
1:
2:
3:
4:

CTag tag8(ET_MOD_VERSION, MOD_VERSION); // Generic Mod String
tag8.WriteTagToFile(&data);




Suchen:
code:
1:
2:
3:
4:

DEBUG_ONLY (theApp.listensocket->Debug_ClientDeleted(this));
this->SetUploadFileID(NULL);




Einfügen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:

//Add some lines to free memory
if (m_modVerString)
delete[] m_modVerString;
if (m_modExtendedString)
delete[] m_modExtendedString;
if (m_strFusionVersionString)
delete[] m_strFusionVersionString;
if (m_strMorTilloVersionString)
delete[] m_strMorTilloVersionString;
if (m_strLovelaceVersionString)
delete[] m_strLovelaceVersionString;




Suchen:
code:
1:
2:
3:
4:
5:

}

int CUpDownClient::GetHashType()




Darüber Einfügen:
code:
1:
2:
3:
4:

//LSD Get version string
theApp.emuledlg->transferwnd.mod->Mod_Version_String_Safe (this,&m_clientVerString);





Suchen:
code:
1:
2:
3:

void CUpDownClient::Init(){




Einfügen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:

// MOD VERSIONS
m_modVerString = NULL; // x55
m_modExtendedString = NULL; // 0x56
m_byDataTarodVer = 0; // Added by Tarod
m_dwTarodVersionNumber = 0; // Tarod Version
m_byDataPlusVer = 0; // Plus ver
m_dwPlusVersionNumber = 0; // Plus bool
m_byDataLSDVer = 0; // LSD Ver --Experminetal --
m_dwLSDVersionNumber = 0; // LSD Ver --Experminetal --
m_byDataMorphVer = 0; // Bool Morph
m_dwMorphVersionNumber = 0; // Ver Morph
m_byDataOxyVer = 0; // Bool Oxy
m_byDataFusionVer = 0; // Bool Fusion
m_dwFusionVersionNumber = 0; // Ver Fusion
m_strFusionVersionString = NULL; // Ver Fusion String
m_byDataMorTilloVer = 0; // Bool Mortillo
m_dwMorTilloVersionNumber = 0; // Ver Mortillo
m_strMorTilloVersionString = NULL; // Ver Mortillo String
m_strLovelaceVersionString = NULL; // Ver Lovelace String
//END LSD





Suchen:
code:
1:
2:
3:

case ET_FEATURES:




Einfügen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:

//LSD MOD Version
case ET_MOD_VERSION: //Mod String 55
if (temptag.tag.type == 2 && temptag.tag.stringvalue) { //Pawcio: Fix Mod String
if (m_modVerString){ //Pawcio: Fix Mod Version
delete[] m_modVerString;
m_modVerString = NULL; // needed, in case 'nstrdup' fires an exception!!
}
m_modVerString = nstrdup(temptag.tag.stringvalue);
}
break;
case ET_MOD_TAROD: // I insist it do not harm, just curiosity
m_byDataTarodVer = temptag.tag.intvalue;
break;
case ET_MOD_TAROD_VERSION: // lugdunum asked for it -do not remove
m_dwTarodVersionNumber = temptag.tag.intvalue;
break;
case ET_MOD_PROTOCOL: //Mod Extended Protocol String 56
//m_modExtendedString = nstrdup(temptag->tag->stringvalue);
break;
case ET_MOD_LSD: // bool LSD-4x
m_byDataLSDVer = temptag.tag.intvalue;
break;
case ET_MOD_LSD_VERSION: // uint32 & bool LSD version
m_dwLSDVersionNumber = temptag.tag.intvalue;
break;
case ET_MOD_PLUS: // emule plus ver
m_dwPlusVersionNumber = temptag.tag.intvalue;
m_byDataPlusVer=1;
break;
case ET_MOD_Morph: // Morpheus
m_byDataMorphVer = temptag.tag.intvalue;
break;
case ET_MOD_Morph_VERSION: // Morpheus
m_dwMorphVersionNumber = temptag.tag.intvalue;
m_byDataMorphVer = 1;
break;
case ET_MOD_FUSION: // Fusion
m_byDataFusionVer = temptag.tag.intvalue;
m_dwFusionVersionNumber = 1;
break;
case ET_MOD_FUSION_VERSION: // Fusion String
if (temptag.tag.type == 2 && temptag.tag.stringvalue) { //Pawcio: Fix Mod String
if (m_strFusionVersionString){ //Pawcio
delete[] m_strFusionVersionString;
m_strFusionVersionString = NULL; // needed, in case 'nstrdup' fires an exception!!
}
m_strFusionVersionString = nstrdup(temptag.tag.stringvalue);
}
m_dwFusionVersionNumber = 1;
break;
case ET_MOD_MorTillo: // MorTillo
m_byDataMorTilloVer = temptag.tag.intvalue;
m_dwMorTilloVersionNumber = 1;
break;
case ET_MOD_MorTillo_VERSION: // MorTillo String
if (temptag.tag.type == 2 && temptag.tag.stringvalue) { // Is String ?? Pawcio: Fix Mod String
if (m_strMorTilloVersionString){ //Pawcio
delete[] m_strMorTilloVersionString;
m_strMorTilloVersionString = NULL; // needed, in case 'nstrdup' fires an exception!!
}
m_strMorTilloVersionString = nstrdup(temptag.tag.stringvalue);
}
else {
m_dwMorTilloVersionNumber = temptag.tag.intvalue;
}
break;
case ET_MOD_LOVELACE_VERSION: // Lovelace String
if (temptag.tag.type == 2 && temptag.tag.stringvalue) { //Pawcio: Fix Mod String
if (m_strLovelaceVersionString){ //Pawcio
delete[] m_strLovelaceVersionString;
m_strLovelaceVersionString = NULL; // needed, in case 'nstrdup' fires an exception!!
}
m_strLovelaceVersionString = nstrdup(temptag.tag.stringvalue);
}
break;
case ET_MOD_OXY:
m_byDataOxyVer=1; // Is Oxygen mod
break;
//END MOD Version




ClientListCtrl.cpp

Suchen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

case 5:
if( item1->GetClientSoft() == item2->GetClientSoft() )
return item2->GetVersion() - item1->GetVersion();
return item1->GetClientSoft() - item2->GetClientSoft();
case 105:
if( item1->GetClientSoft() == item2->GetClientSoft() )
return item1->GetVersion() - item2->GetVersion();
return item2->GetClientSoft() - item1->GetClientSoft();




Ersetzen:
code:
1:
2:
3:
4:
5:
6:
7:

case 5:
return theApp.emuledlg->transferwnd.mod->Mod_Version_Sort_by_String (item2,item1); //Sort By String
case 105: //LSD Client sort
return theApp.emuledlg->transferwnd.mod->Mod_Version_Sort_by_String (item1,item2); //Sort By String





Suchen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:

case 5:{
switch(client->GetClientSoft()){
case SO_EDONKEY:
Sbuffer.Format("eDonkey v%.1f",(float)client->GetVersion()/10.0f);
break;
case SO_EDONKEYHYBRID:
Sbuffer.Format( "eDonkeyHybrid v%.1f",(float)client->GetVersion()/10.0f);
break;
case SO_EMULE:
case SO_OLDEMULE:
Sbuffer.Format("eMule v%.2f",(float)client->GetVersion()/1000.0f);
break;
case SO_XMULE:
Sbuffer.Format("xMule v%.2f",(float)client->GetVersion()/1000.0f);
break;
case SO_CDONKEY:
Sbuffer.Format("cDonkey v%.2f",(float)client->GetVersion()/1000.0f);
break;
case SO_MLDONKEY:
Sbuffer.Format("MLdonkey v%.2f",(float)client->GetVersion()/1000.0f);
break;
case SO_SHAREAZA:
Sbuffer.Format("Shareaza v%.2f",(float)client->GetVersion()/1000.0f);
break;
default:
Sbuffer = GetResString(IDS_UNKNOWN);
}
break;
}




ERSETZEN DURCH:
code:
1:
2:
3:
4:
5:
6:
7:

case 5:{
client->CopyClientVerString(&Sbuffer); ////LSD Mod Version-CPU Relax
break;
}





QueueListCtrl.cpp

Nach den #include 's einfügen:
code:
1:
2:
3:

#define COL_MOD 9+1//LSD Client Version




Suchen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:

case 6:
Sbuffer = CastSecondsToHM((::GetTickCount() - client->GetLastUpRequest())/1000);
break;
case 7:
Sbuffer = CastSecondsToHM((::GetTickCount() - client->GetWaitStartTime())/1000);
break;
case 8:
if(client->IsBanned())
Sbuffer = GetResString(IDS_YES);
else
Sbuffer = GetResString(IDS_NO);
break;
case 9:
if( client->GetUpPartCount()){
cur_rec.bottom--;
cur_rec.top++;
client->DrawUpStatusBar(dc,&cur_rec,false,theApp.glob_prefs->UseFlatBar());
cur_rec.bottom++;
cur_rec.top--;
}
break;




Einfügen:
code:
1:
2:
3:
4:
5:

case COL_MOD://LSD Mod Version
client->CopyClientVerString(&Sbuffer); //CPU Relax
break;




Suchen:
code:
1:
2:
3:
4:

InsertColumn(8,GetResString(IDS_BANNED),LVCFMT_LEFT,60,8);
InsertColumn(9,GetResString(IDS_UPSTATUS),LVCFMT_LEFT,100,9);




Einfügen:
code:
1:
2:
3:
4:
5:

CString coltemp;coltemp=GetResString(IDS_CD_CSOFT);coltemp.Remove(':');
InsertColumn(COL_MOD,coltemp,LVCFMT_LEFT,110,COL_MOD); //LSD Client Version





UploadListCtrl.cpp

Nach den #include 's einfügen:
code:
1:
2:
3:

#define COL_MOD 7+1




Suchen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:

case 6:
switch (client->GetUploadState()){
case US_CONNECTING:
Sbuffer = GetResString(IDS_CONNECTING);
break;
case US_WAITCALLBACK:
Sbuffer = GetResString(IDS_CONNVIASERVER);
break;
case US_UPLOADING:
Sbuffer = GetResString(IDS_TRANSFERRING);
break;
default:
Sbuffer = GetResString(IDS_UNKNOWN);
}
break;
case 7:
if( client->GetUpPartCount() ){
cur_rec.bottom--;
cur_rec.top++;
client->DrawUpStatusBar(dc,&cur_rec,false,theApp.glob_prefs->UseFlatBar());
cur_rec.bottom++;
cur_rec.top--;
}
break;




Einfügen:
code:
1:
2:
3:
4:
5:

case COL_MOD://LSD Mod Version
client->CopyClientVerString(&Sbuffer); //CPU Relax
break;




Suchen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

case 6:
return item1->GetUploadState() - item2->GetUploadState();
case 106:
return item2->GetUploadState() - item1->GetUploadState();
case 7:
return item1->GetUpPartCount() - item2->GetUpPartCount();
case 107:
return item2->GetUpPartCount() - item1->GetUpPartCount();




Einfügen:
code:
1:
2:
3:
4:
5:
6:

case COL_MOD: //LSD Client sort
return theApp.emuledlg->transferwnd.mod->Mod_Version_Sort_by_String (item2,item1); //Sort By String
case COL_MOD+100: //LSD Client sort
return theApp.emuledlg->transferwnd.mod->Mod_Version_Sort_by_String (item1,item2); //Sort By String




Suchen:
code:
1:
2:
3:
4:
5:
6:

strRes = GetResString(IDS_STATUS);
hdi.pszText = strRes.GetBuffer();
pHeaderCtrl->SetItem(6, &hdi);
strRes.ReleaseBuffer();




Einfügen:
code:
1:
2:
3:
4:
5:
6:
7:

strRes = GetResString(IDS_CD_CSOFT); //LSD
strRes.Remove(':');
hdi.pszText = strRes.GetBuffer();
pHeaderCtrl->SetItem(COL_MOD, &hdi);
strRes.ReleaseBuffer();




Suchen:
code:
1:
2:
3:

InsertColumn(6,GetResString(IDS_STATUS),LVCFMT_LEFT,110,6);




Einfügen:
code:
1:
2:
3:
4:
5:

CString coltemp;coltemp=GetResString(IDS_CD_CSOFT);coltemp.Remove(':');
InsertColumn(COL_MOD,coltemp,LVCFMT_LEFT,110,COL_MOD); //LSD Client Version





UpdownClient.h

Suchen:
code:
1:
2:
3:

EClientSoftware m_clientSoft;




Einfügen:
code:
1:
2:
3:

CString m_clientModString; // SLUGFILLER: modID




Suchen:
code:
1:
2:
3:

void ReGetClientSoft();




Einfügen:
code:
1:
2:
3:

const CString& GetClientModString() const { return m_clientModString; } // SLUGFILLER: modID





Geht bis ans Ende vor das hier:
code:
1:
2:
3:

};




Einfügen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:

private:
// MOD versions
uint8 m_byDataTarodVer; // Added by Tarod (just curiosity)
uint32 m_dwTarodVersionNumber; // Added by Tarod

uint8 m_byDataLSDVer; // Bool LSD
uint32 m_dwLSDVersionNumber; // Ver LSD

uint8 m_byDataPlusVer; // Bool Plus
uint32 m_dwPlusVersionNumber; // Ver Plus

uint8 m_byDataMorphVer; // Bool Morph
uint32 m_dwMorphVersionNumber; // Ver Morph

uint8 m_byDataOxyVer; // Bool Oxygen

uint8 m_byDataFusionVer; // Bool Fusion
uint32 m_dwFusionVersionNumber; // Ver Fusion
char* m_strFusionVersionString; // Fusion String

uint8 m_byDataMorTilloVer; // Bool MorTillo
uint32 m_dwMorTilloVersionNumber; // Ver Fusion
char* m_strMorTilloVersionString; // Ver MorTillo

char* m_strLovelaceVersionString; // Lovelace String

char* m_modVerString; // 0x55 Mod ver Generic String
char* m_modExtendedString; // 0x56 Mod ver Extended Mod Protocol

public:
char* GetModVersion() const { return m_modVerString; }
char* GetModExtended() const { return m_modExtendedString; }
char* GetLovelaceVersionString() const { return m_strLovelaceVersionString; } //Lovelace String

uint32 GetTarodVersionNumber() const { return m_dwTarodVersionNumber; } // Tarod Version
uint32 GetLSDVersionNumber() const { return m_dwLSDVersionNumber; } // thnks Tarod --LSD Version--
uint32 GetPLUSVersionNumber() const { return m_dwPlusVersionNumber; } // Plus Version
uint32 GetMorphVersionNumber() const { return m_dwMorphVersionNumber; }
uint32 GetFusionVersionNumber() const { return m_dwFusionVersionNumber; }
char* GetFusionVersionString() const { return m_strFusionVersionString; } //Fusion String
uint32 GetMorTilloVersionNumber() const { return m_dwMorTilloVersionNumber; }
char* GetMorTilloVersionString() const { return m_strMorTilloVersionString; } //Motrtillo String

bool IsTarodVersion() { return (m_byDataTarodVer == 1 || m_byDataTarodVer == 2);} // Added by Tarod
bool IsLSDVersion() { return ((m_dwLSDVersionNumber >0) || m_byDataLSDVer );} // thnks Tarod --LSD Version--
bool IsPLUSVersion() { return ((m_dwPlusVersionNumber >0) || m_byDataPlusVer );}
bool IsMorphVersion() { return ((m_dwMorphVersionNumber >0) || m_byDataMorphVer );}
bool IsFusionVersion() { return ((m_dwFusionVersionNumber >0) || m_byDataFusionVer);}
bool IsMorTilloVersion() { return ((m_dwMorTilloVersionNumber >0)|| m_byDataMorTilloVer);}
bool IsOxyVersion() { return (m_byDataOxyVer == 1 || m_byDataOxyVer == 2);}

//END MOD VERSION

// Maella -Support for tag ET_MOD_VERSION 0x55-
private:
CString m_clientVerString;

public:
const CString& GetClientVerString() const { return m_clientVerString; }
void CopyClientVerString(CString *bcopy) { *bcopy = m_clientVerString; }//LSD copy

//LSD END




Clientlist.h

Suchen:
code:
1:
2:
3:

// ----------------------CClientList Class---------------




Einfügen:
code:
1:
2:
3:
4:
5:
6:
7:
8:

// SLUGFILLER: modID
struct ModClients_Struct{
CString name;
uint32 clients;
};
// SLUGFILLER: modID




Suchen:
code:
1:
2:
3:

void GetStatistics(uint32 &totalclient, int stats[], CMap<uint16, uint16, uint32, uint32> *clientVersionEDonkey=NULL, CMap<uint16, uint16, uint32, uint32> *clientVersionEDonkeyHybrid=NULL, CMap<uint16, uint16, uint32, uint32> *clientVersionEMule=NULL, CMap<uint16, uint16, uint32, uint32> *clientVersionLMule=NULL); // xrmb : statsclientstatus




Einfügen:
code:
1:
2:
3:
4:

void GetModStatisticsForVersion(uint16 version, CList<ModClients_Struct> *clientMods); // SLUGFILLER: modID





DownloadListCtrl.cpp

Suchen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:

case 6:{ // sources
switch(lpUpDownClient->GetClientSoft()){
case SO_EDONKEY:
buffer.Format("eDonkey v%.1f",(float)lpUpDownClient->GetVersion()/10.0f);
break;
case SO_EDONKEYHYBRID:
buffer.Format( "eDonkeyHybrid v%.1f",(float)lpUpDownClient->GetVersion()/10.0f);
break;
case SO_EMULE:
case SO_OLDEMULE:
buffer.Format("eMule v%.2f",(float)lpUpDownClient->GetVersion()/1000.0f);
break;
case SO_CDONKEY:
buffer.Format("cDonkey v%.2f",(float)lpUpDownClient->GetVersion()/1000.0f);
break;
case SO_XMULE:
buffer.Format("xMule v%.2f",(float)lpUpDownClient->GetVersion()/1000.0f);
break;
case SO_MLDONKEY:
buffer.Format("MLdonkey v%.2f",(float)lpUpDownClient->GetVersion()/1000.0f);
break;
case SO_SHAREAZA:
buffer.Format("Shareaza v%.2f",(float)lpUpDownClient->GetVersion()/1000.0f);
break;
default:
buffer = GetResString(IDS_UNKNOWN);
}
dc->DrawText(buffer,buffer.GetLength(),lpRect, DLC_DT_TEXT);
break;




Ersetzen:
code:
1:
2:
3:
4:
5:

case 6:{ // sources Version
dc->DrawText(lpUpDownClient->GetClientVerString(), lpRect, DLC_DT_TEXT);// Maella -Support for tag ET_MOD_VERSION 0x55-
break;




Suchen:
code:
1:
2:
3:
4:
5:
6:

case 6:
if( client1->GetClientSoft() == client2->GetClientSoft() )
return client2->GetVersion() - client1->GetVersion();
return client1->GetClientSoft() - client2->GetClientSoft();




Ersetzen:
code:
1:
2:
3:
4:
5:

case 6: //Sort Mod
return theApp.emuledlg->transferwnd.mod->Mod_Version_Sort_by_String (client2,client1); //Sort By String





Clientlist.cpp

Suchen:
code:
1:
2:
3:

void CClientList::AddClient(CUpDownClient* toadd,bool bSkipDupTest){




Darüber Einfügen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:

// SLUGFILLER: modID
void CClientList::GetModStatisticsForVersion(uint16 version, CList<ModClients_Struct> *clientMods){
if (!clientMods)
return;
clientMods->RemoveAll();
POSITION pos1, pos2;

for (pos1 = list.GetHeadPosition();( pos2 = pos1 ) != NULL;){
list.GetNext(pos1);
CUpDownClient* cur_client = list.GetAt(pos2);

switch (cur_client->GetClientSoft()) {
case SO_EMULE :
case SO_OLDEMULE:
break;
default:
continue;
}

if (cur_client->GetVersion() != version)
continue;

CString clientmod = cur_client->GetClientVerString();

for (POSITION pos = clientMods->GetHeadPosition();pos != NULL;clientMods->GetNext(pos)){
ModClients_Struct mcsMod = clientMods->GetAt(pos);
if (mcsMod.name == clientmod){
mcsMod.clients++;
clientMods->SetAt(pos, mcsMod);
break;
}
if (mcsMod.name > clientmod){
mcsMod.name = clientmod;
mcsMod.clients = 1;
clientMods->InsertBefore(pos, mcsMod);
break;
}
}
if (pos == NULL){
ModClients_Struct mcsMod;
mcsMod.name = clientmod;
mcsMod.clients = 1;
clientMods->AddTail(mcsMod);
}

}
if (clientMods->IsEmpty())
return;
ModClients_Struct mcsOfficial = clientMods->GetHead();
if (!mcsOfficial.name.IsEmpty())
return;
mcsOfficial.name = "Official eMule";
clientMods->SetAt(clientMods->GetHeadPosition(), mcsOfficial);
}
// SLUGFILLER: modID




StatisticsDlg.cpp

Suchen:
code:
1:
2:
3:

else stattree.SetItemText(cli_versions, cbuffer);




Einfügen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:

// SLUGFILLER: modID
CList<ModClients_Struct> clientMods;

theApp.clientlist->GetModStatisticsForVersion(topver, &clientMods);

POSITION mpos = clientMods.GetHeadPosition();
if (stattree.ItemHasChildren(cli_versions[i])){
HTREEITEM hChild;
hChild = stattree.GetChildItem(cli_versions[i]);
while( hChild != NULL && mpos != NULL)
{
ModClients_Struct mcsMod = clientMods.GetNext(mpos);
cbuffer.Format("%s: %i (%1.1f%%)", mcsMod.name, mcsMod.clients, (double)mcsMod.clients/topcnt*100);
stattree.SetItemText(hChild, cbuffer);
hChild = stattree.GetNextSiblingItem( hChild );
}
while (hChild != NULL){
HTREEITEM hTemp = hChild;
hChild = stattree.GetNextSiblingItem( hChild );
stattree.DeleteItem(hTemp);
}
}
while (mpos != NULL){
ModClients_Struct mcsMod = clientMods.GetNext(mpos);
cbuffer.Format("%s: %i (%1.1f%%)", mcsMod.name, mcsMod.clients, (double)mcsMod.clients/topcnt*100);
stattree.InsertItem(cbuffer, cli_versions[i]);
}
// SLUGFILLER: modID

Mombana

Profi

Beiträge: 687

2

09.04.2004, 21:01

sieht nach einem haufen Arbeit aus :))... Trotzdem Thx r@ppi

bendL-hs

Anfänger

Beiträge: 29

3

19.04.2004, 14:44

und das beste es funktioniert sogar :>> ich hoffe es kommen noch mehr emule mod tutorials von dir r@ppi thx dafuer!!

Leecher24

Anfänger

Beiträge: 2

4

20.04.2004, 15:01

Es geht auch einfacher Maella 0x55 Mod Version Support.

-rOtZ-

Fortgeschrittener

Beiträge: 135

5

20.04.2004, 17:55

wo muss ich das ganze von r@ppi hinmachen? Und für was ist es gut? Wird dadurch mein Downloadspeed schneller ?

Thema bewerten