[Source Guide] Playercount bei Char Auswahl

06/06/2012 21:04 Wtdx3#1
Hallo liebe Community :>
Ich zeig euch heute wie ihr bei der Char Auswahl die Online Player Anzeigen könnt + die Kapazität :)
Das ganze wird dann Ungefähr so aussehen:

Quote:
Channel(online/max.Kapazität)
Na gut, fangen wir mal an..
Als erstes gehen wir in WndTitle.cpp
Dort suchen wir dann nach..
Quote:
BOOL CWndSelectServer::OnChildNotify(UINT message,UINT nID,LRESULT* pLResult)
Und scrollen so lange Runter bis wir...
Quote:
long lBusy= (long)( lMax * 0.8 );

if( lCount < lBusy )
{
//strcpy( lpStrtmp, "Á¤»ó" );
strcpy( lpStrtmp, prj.GetText(TID_GAME_NORMAL));
}
else
if( lCount < lMax )
{
//strcpy( lpStrtmp, "È¥Àâ" );
strcpy( lpStrtmp, prj.GetText(TID_GAME_BUSY));
}
else
{
strcpy( lpStrtmp, prj.GetText(TID_GAME_FULL) );
}
sprintf( lpString, "%s(%s)", g_dpCertified.m_aServerset[j].lpName, lpStrtmp );
... gefunden haben
Das obere ersetzen wir dann komplett mit...
Quote:
sprintf( lpString, "%s(%d\\%d)", g_dpCertified.m_aServerset[j].lpName, lCount, lMax );
Wenn das gemacht ist nur noch Compilen und ersetzen und dann sollte es eig funktionieren :p

Mir war grad Lw von dem her lasst das geflame...
Credits: 100% Liberate Your Dream Caja
06/06/2012 21:16 N8Schatten#2
Habe mal ne frage woher weiß die neuz denn was die Maximale Kapazität an Playern is?

Wird die Kapazität irgendwie berechnet oder is die irgenwo definert?
06/06/2012 21:24 Wtdx3#3
Ich denk ma das wird einzeln irgendwo definiert wv Player auf den Server können damit er nicht überlastet^^ Aber genaueres is mir selbst nicht bekannt sry..
06/06/2012 22:33 alfredico#4
Credits?
[Only registered and activated users can see links. Click Here To Register...]

Also this is how it looks like
[Only registered and activated users can see links. Click Here To Register...]

To N8Schatten

Comes from connections made to the server.
Code:
typedef	struct	tagSERVER_DESC
{
	DWORD	dwParent;
	long	lCount;
	DWORD	dwID;
	char	lpName[36];
	char	lpAddr[16];
	BOOL	b18;
	long	lEnable;
	long	lMax;
	tagSERVER_DESC()
		{
			dwParent	= NULL_ID;
			lCount	= 0;
			dwID	= NULL_ID;
			*lpName		= '\0';
			*lpAddr		= '\0';
			b18	= 0x00;
			lEnable		= 0;
			lMax	= 0;
		}
}
SERVER_DESC, *LPSERVER_DESC;
06/06/2012 22:37 Мarvin#5
Quote:
Originally Posted by Wtdx3 View Post
Ich denk ma das wird einzeln irgendwo definiert wv Player auf den Server können damit er nicht überlastet^^ Aber genaueres is mir selbst nicht bekannt sry..
Da sieht man mal dass du den Kram einfach nur rausgeleecht hast.
Die maximale Kapazität auf den Channeln wird in der AccountServer.ini eingetragen:
Quote:
AddTail( 1, 1, "Aibatt", "81.30.152.51", 0, 1, 300 );
06/06/2012 22:40 Wtdx3#6
Jop wenn du credits willst ich hab sie schon added :D
06/06/2012 23:25 alfredico#7
Credits to caja, enough to say-.-
06/07/2012 08:45 hellmater#8
Quote:
Originally Posted by alfredico View Post
Credits to caja, enough to say-.-
Nope, original credits to shark00n. He was the first person to post it.
06/12/2012 15:00 Ultimate™#9
ich will es anders haben

ich will es so ca. haben :

Quote:
sprintf( lpString, "%s(%d\\%d)", g_dpCertified.m_aServerset[j].lpName, lCount Spieler Online);

wie muss der code in c++ aussehen also da bei Spieler Online ein fehler kommt gibt es ja bestimmt ne möglichkeit das in c++ hinzubekommen

also kp z.b dann so

Quote:
sprintf( lpString, "%s(%d\\%d)", g_dpCertified.m_aServerset[j].lpName, lCount, lonline );
keine ahnung :D
06/12/2012 15:09 Aspectus#10
Quote:
Originally Posted by DonaldFuck View Post
ich will es anders haben

ich will es so ca. haben :




wie muss der code in c++ aussehen also da bei Spieler Online ein fehler kommt gibt es ja bestimmt ne möglichkeit das in c++ hinzubekommen

also kp z.b dann so



keine ahnung :D
PHP Code:
sprintflpString"%s(%d\\%d Spieler Online)"g_dpCertified.m_aServerset[j].lpNamelCountlMax ); 
Wenn du es nicht in der Klammer haben willst, musst du "%s(%d\\%d Spieler Online)" das Spieler Online, hinter die Klammer ) schreiben.
06/12/2012 15:09 Sedrika#11
Quote:
Originally Posted by DonaldFuck View Post
ich will es anders haben

ich will es so ca. haben :




wie muss der code in c++ aussehen also da bei Spieler Online ein fehler kommt gibt es ja bestimmt ne möglichkeit das in c++ hinzubekommen

also kp z.b dann so



keine ahnung :D
PHP Code:
sprintflpString"%s(%d Spieler Online)"g_dpCertified.m_aServerset[j].lpNamelCount); 
entweder so oder
PHP Code:
sprintflpString"%s(%d %s)"g_dpCertified.m_aServerset[j].lpNamelCount"Spieler Online"); 
so.
06/13/2012 17:19 polsterspeed#12
Dafür ein Thread?

Das mit dem Count steht darunter nur Auskommentiert in der Orginalen Source, wtf braucht ihr da noch ein Thread?!

Dazu sollte es noch unten beim Update rein ansonsten ist es Fehlerhaft (werdet ihr selbst merken).

Vor for( int j = 0; j < (int)( g_dpCertified.m_dwSizeofServerset ); j++ ) das:
Quote:
long lTotal = 0;
In der Schleife vor if( g_dpCertified.m_aServerset[j].dwParent == NULL_ID ) das:
Quote:
if( g_dpCertified.m_aServerset[j].dwParent != NULL_ID )
lTotal += g_dpCertified.m_aServerset[j].lCount;
In der Abfrage if( g_dpCertified.m_aServerset[j].lEnable != 0L ) das:
Quote:
sprintf( lpString, "%s | %03d", g_dpCertified.m_aServerset[j].lpName, lTotal );
int nIndex = pWndList->AddString( lpString );
das alte nIndex = pWndList... Auskommentieren.

Viel Spaß damit, es ist allerdings nicht getestet, wer das so rein haut hat den Cluster Count (wenn du 2 Channel hast, Channel 1 10 On, Channel 2 28 wird beim Cluster 38 angezeigt.)

Format: "Penis | 001".

Mfg. Crasy.
06/14/2012 08:04 Мarvin#13
Quote:
Originally Posted by polsterspeed View Post
Dafür ein Thread?

Das mit dem Count steht darunter nur Auskommentiert in der Orginalen Source, wtf braucht ihr da noch ein Thread?!

Dazu sollte es noch unten beim Update rein ansonsten ist es Fehlerhaft (werdet ihr selbst merken).

Vor for( int j = 0; j < (int)( g_dpCertified.m_dwSizeofServerset ); j++ ) das:


In der Schleife vor if( g_dpCertified.m_aServerset[j].dwParent == NULL_ID ) das:


In der Abfrage if( g_dpCertified.m_aServerset[j].lEnable != 0L ) das:


das alte nIndex = pWndList... Auskommentieren.

Viel Spaß damit, es ist allerdings nicht getestet, wer das so rein haut hat den Cluster Count (wenn du 2 Channel hast, Channel 1 10 On, Channel 2 28 wird beim Cluster 38 angezeigt.)

Format: "Penis | 001".

Mfg. Crasy.
Nö stimmt nicht, die Funktion wie sie gepostet wurde funkzt einwandfrei.
Zu deiner "Dafür ein Thread-Frage": Stell dir vor, es gibt Leute die
sind nicht so hobbbylost wie du und glotzen 24/7 in Source rein.

Ich finde es ist ein kleines & nettes Add-On.
06/14/2012 13:22 Aspectus#14
Quote:
Originally Posted by polsterspeed View Post
Dafür ein Thread?

Das mit dem Count steht darunter nur Auskommentiert in der Orginalen Source, wtf braucht ihr da noch ein Thread?!

Dazu sollte es noch unten beim Update rein ansonsten ist es Fehlerhaft (werdet ihr selbst merken).

Vor for( int j = 0; j < (int)( g_dpCertified.m_dwSizeofServerset ); j++ ) das:


In der Schleife vor if( g_dpCertified.m_aServerset[j].dwParent == NULL_ID ) das:


In der Abfrage if( g_dpCertified.m_aServerset[j].lEnable != 0L ) das:


das alte nIndex = pWndList... Auskommentieren.

Viel Spaß damit, es ist allerdings nicht getestet, wer das so rein haut hat den Cluster Count (wenn du 2 Channel hast, Channel 1 10 On, Channel 2 28 wird beim Cluster 38 angezeigt.)

Format: "Penis | 001".

Mfg. Crasy.
Fals du mal hingucken würdest, es wird nichts am Source geändert nur wird dem CString ein anderer String zugewiesen mit sprintf, ich weiß garnicht was du da mit den Schleifen willst lol, das war von Offi aus, also sollte es auch kein Problem da stellen, hat bis jetzt keiner Problem mit gehabt, und wird auch danach keiner Problem mit haben o,O?

PHP Code:
                    for( int j 0< (int)( g_dpCertified.m_dwSizeofServerset ); j++ )
                    {
                        if( 
g_dpCertified.m_aServerset[j].dwParent == pServerDesc->dwID && ( g_dpCertified.m_aServerset[j].lEnable != 0L ) )
                        {
                            
lCount    g_dpCertified.m_aServerset[j].lCount;
                            
lMax    g_dpCertified.m_aServerset[j].lMax;
                            
sprintflpString"%s (Players: %d|%d)"g_dpCertified.m_aServerset[j].lpNamelCountlMax );
                            
pWndListMulti->SetItemDatapWndListMulti->AddStringlpString ), (DWORD)&g_dpCertified.m_aServerset[j] );
                        }
                    } 
Funzt perfekt, ich weiß nicht was du für Probleme hast, und n Fehler erkenn ich da auch nicht.

PS: Wir reden hier von Channel, nicht vom Cluster.
06/16/2012 22:30 Caseツ#15
naja gefällt mir nicht so find ich unötig