[Source] Wie füge ich ein neuen Command ein

08/09/2011 16:55 FragGoogle#1
Hey, da ich gern möchte das die spieler sehen welcher Gamemaster online ist, sowie beim Toms AH wollt ich euch mal fragen ob mir jemand erklären könnte wie das geht..
Da gibt es ein Command mit einer Player list,jedoch funktioniert er nicht, weiß jemand genaueres?
08/09/2011 16:57 Reavern#2
Versuch einfach mal im Chat das einzugeben:

%commands

Das zeigt dir alle Befehle an.

Und um die Online Players zu sehen:

%players


Edit:

Empfehlen kann ich dir auch das hier:

[Only registered and activated users can see links. Click Here To Register...]

Wenn du dir das gm-Tool von RockNetwork lädst findest du dort in den Tabs auch die Tom Ah Befehle.
Wenn du das mit dem Update runter lädst dann hast auch die meisten neuen v15/16/17 Sachen dabei.
08/09/2011 16:59 FragGoogle#3
das weiß ich ja aber ich möchte das eine liste der gm's angezeigt wird welcher grad online ist..
08/09/2011 17:01 Reavern#4
%gmlist

Fertisch :D

(Die GM's müssen auch im AntiHAck Engetragen sein)
08/09/2011 17:05 Phillor#5
Ich glaube er will wissen, wie man einen solchen Command im Source einfügt. Sodass GM's auch über einen Command aufgelistet werden ohne Toms AH.^^
08/09/2011 17:09 Reavern#6
Ja aber wenn er Toms Antihack benutzt werde die Befehle auch gehen.

Wenn:
Der Gm Eingetragen ist
Wenn der GM Online ist

Wozu sollte man so einen Befehl "einbauen" .. wenns es so einfach geht.
08/09/2011 17:12 .Crasy#7
Er will aber vllt Toms AH net Usen?..
08/09/2011 17:14 FragGoogle#8
Quote:
Originally Posted by Phillor View Post
Ich glaube er will wissen, wie man einen solchen Command im Source einfügt. Sodass GM's auch über einen Command aufgelistet werden ohne Toms AH.^^
Richtig daher heißt der thread auch
Code:
 [Source] Wie füge ich ein neuen Command ein
Öhm weil ich Tom's Antihack nicht nutzen will, daher wollt ich das einbauen..
08/09/2011 19:37 Pumbaaa#9
Speicher den Namen des GMs, wenn er onkommt, und wenn er off geht lösch ihn wieder, wenn der Player dann den Befehl eingibt, gibst du die Liste aus.
Ich empfehl nen string Vector und ne for-Schleife.
08/09/2011 20:59 Achileus#10
Quote:
Originally Posted by Pumbaaa View Post
Speicher den Namen des GMs, wenn er onkommt, und wenn er off geht lösch ihn wieder, wenn der Player dann den Befehl eingibt, gibst du die Liste aus.
Ich empfehl nen string Vector und ne for-Schleife.
Woher soll er das wissen wie das abläuft ?
08/09/2011 21:05 Pumbaaa#11
Wenn neuer User kommt -> Auf Authorisierung überprüfen.
Wenn Auth höher als General, vector.push_back(Username)

Funktion zum abrufen:
Code:
void CUserMng::GetGMList(CUser *pUser )
{
           int j = 1;
	for( unsigned i = 0; i < m_gmList.size(); i++ )
	{
		if( strlen( m_gmList[i] ) > 2 )
		{
			CString temp;
			temp.Format( _T( "%i.)\t%s"), j, m_gmList[i] );
			pUser->AddText( temp );
			j++;
		}
	}
}
Und dann noch beim Logout eben den Wert löschen.
Gibt noch nen einfacheren Weg, den post ich nachher mal...

//EDIT:
Der einfachere Weg:
Code:
void CUserMng::GetGMList(CUser *pUser )
{
	map<DWORD, CUser*>::iterator it;
	int j = 1;
	for( it = m_users.begin(); it != m_users.end(); ++it )
	{
		if( it->second->m_dwAuthorization != AUTH_GENERAL )
		{
			CString temp;
			temp.Format( _T( "%i.)\t%s"), j, it->second->GetName() );
			pUser->AddText( temp );
			j++;
		}
	}
}
08/10/2011 13:18 FragGoogle#12
verstehe nicht wirklich was du mit
Wenn neuer User kommt -> Auf Authorisierung überprüfen.
Wenn Auth höher als General, vector.push_back(Username)
meinst :D
08/10/2011 13:46 Xijezu#13
Wenn sich ein User einloggt -> Auf Authorisierung überprüfen, sprich den Rang (GM, Admin, whatever)
Wenn Authorisierung höher ist als General (sprich wenn der Rang höher ist als von normalen Usern) -> vector.push_back(username)
08/10/2011 13:55 FragGoogle#14
ja und wie mach ich das ich peil grad gar nichts was ihr hier redet? o_O
kann mir das einer per icq oder so erklären was ich da machen muss hab sowas noch nie gemacht xD
08/10/2011 14:17 Pumbaaa#15
Nimm einfach das 2te, das hat nix mit Vectoren zu tun, die Funktion is alles was du brauchst, dazu musst du nur nen neues Command machen.