Du bist nicht angemeldet.

  • Anmelden
  • Registrieren

r@ppi

Fortgeschrittener

Beiträge: 199

1

17.04.2004, 18:19

Emule modding Tuts 4

Heute lernen wir einen Schalter für Auto-Serverwechsel zu machen !!!!




IMPLEMENT_DYNAMIC(CServerListCtrl, CMuleListCtrl/*CTreeCtrl*/)


Ersetze den gesamten Abschnitt mit:


// Auto Serverwechsel 150 MIN

IMPLEMENT_DYNAMIC(CServerListCtrl, CMuleListCtrl/*CTreeCtrl*/)
CServerListCtrl::CServerListCtrl() {
server_list = 0; // i_a
SetGeneralPurposeFind(true);

{m_hTimer2 = ::SetTimer(NULL, NULL, 9000000, (TIMERPROC)
CServerListCtrl::ServerUpdateTimerConnection);
if (!m_hTimer2)
theApp.emuledlg->AddLogLine(false, GetResString(IDS_ERR_TIMERCREATEFAILED));

}
}
// Auto Serverwechsel 150 MIN END


9000000 = 150 Min

Ganz unten nun dies rein:


// Auto Serverwechsel 150 MIN

void CALLBACK CServerListCtrl::ServerUpdateTimerConnection(HWND hwnd, UINT uiMsg, UINT

idEvent, DWORD dwTime)
{
if (theApp.glob_prefs->Isserverwechsel()){
if (!theApp.emuledlg->IsRunning())
return;

theApp.emuledlg->AddLogLine(true,"Serverreconnect, verbinde zu neuem Server... ");
theApp.serverconnect->Disconnect();
theApp.serverconnect->ConnectToAnyServer();
}
}
// Auto Serverwechsel 150 MIN END


In der ServerListCtrl.h suchen nach:


uint32 lastupdatetime;


Darüber dies hier:


UINT_PTR m_hTimer2;
static void CALLBACK ServerUpdateTimerConnection(HWND hwnd, UINT uiMsg, UINT idEvent, DWORD
dwTime);


have fun

So nun haben wir den Serverwechsel. Nun die Buttons.

In der resource.h:


#define IDC_Isserverwechsel 4778 // Auto Serverwechsel 150 MIN


In der Preferences.h nach suchen:


uint16 MaxConperFive;


drunter:


bool m_bserverwechsel; // Auto Serverwechsel 150 MIN


suchen:


bool IsOnlineSignatureEnabled() {return prefs->onlineSig;}


drunter:


const bool Isserverwechsel() const {return prefs->m_bserverwechsel;} // Auto Serverwechsel 150 MIN



In der Preferences.cpp suchen nach:


ini.WriteInt ("3DDepth", prefs->depth3D);


drunter:


ini.WriteBool("Serverwechsel", prefs->m_bserverwechsel); // Auto Serverwechsel 150 MIN



suchen:


prefs->depth3D = 5;


drunter:


prefs->m_bserverwechsel = ini.GetBool("serverwechsel", false); // Auto Serverwechsel 150 MIN


So nun in eurer *.h Pref Datei z.B bei mir PPGek.h das suchen:


protected:
CPreferences *app_prefs;


drunter:


afx_msg void OnBnClickedserverwechsel() {SetModified();} // Auto Serverwechsel 150 MIN


So nun in eurer *.cpp Pref Datei z.B bei mir PPG.cpp das suchen:


BEGIN_MESSAGE_MAP(CPPg, CPropertyPage)


drunter:



ON_BN_CLICKED(IDC_Isserverwechsel,OnBnClickedserverwechsel) // Auto Serverwechsel 150 MIN


suchen:


void CPPgek::LoadSettings(void)
{
if(m_hWnd)
{
CString strBuffer;


drunter:


// Auto Serverwechsel 150 MIN
if (app_prefs->Isserverwechsel())
CheckDlgButton(IDC_Isserverwechsel,1);

else
CheckDlgButton(IDC_Isserverwechsel,0);
// Auto Serverwechsel 150 MIN END


suchen:


BOOL CPPgek::OnApply()
{
CString sBuffer;


drunter:


// Auto Serverwechsel 150 MIN END

if(IsDlgButtonChecked(IDC_Isserverwechsel))
app_prefs->prefs->m_bserverwechsel = true;
else
app_prefs->prefs->m_bserverwechsel = false;
// Auto Serverwechsel 150 MIN END




In der emule.rc deine Pref Seite suchen und das hier zwischen Beginn und End setzen:


// Auto Serverwechsel 150 MIN
CONTROL "Serverwechsel nach 150 Min",IDC_Isserverwechsel,"Button",
BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,15,40,142,10
// Auto Serverwechsel 150 MIN END

Thema bewerten