mirror of
https://github.com/r4sas/ExtraMirror
synced 2025-01-26 06:24:48 +00:00
//Garry & Juice
This commit is contained in:
parent
c3f6b04068
commit
5d9a1df970
159
cmdlist-checker-bypass.txt
Normal file
159
cmdlist-checker-bypass.txt
Normal file
@ -0,0 +1,159 @@
|
||||
|
||||
DWORD dwCmdList;
|
||||
void hookedCmdList()
|
||||
{
|
||||
int total_cmds = 0;
|
||||
int odd_cmds = 0;
|
||||
bool log = false;
|
||||
bool is_legit_cmd = false;
|
||||
pcommand_t pCmd = g_Engine.pfnGetCmdList();
|
||||
char cmd[1024];
|
||||
char gamedir[256];
|
||||
|
||||
FILE *w;
|
||||
|
||||
gamedir[0] = 0;
|
||||
cmd[0] = 0;
|
||||
strncat( cmd, g_Engine.Cmd_Argv(1), sizeof(cmd) );
|
||||
|
||||
if( cmd[0] == '?' && cmd[1] == 0 )
|
||||
{
|
||||
g_Engine.Con_Printf( "CmdList : List all commands\nCmdList [Partial] : List commands starting with 'Partial'\nCmdList log [Partial] : Logs commands to file \"cmdlist.txt\" in the gamedir.\n");
|
||||
return;
|
||||
}
|
||||
g_Engine.Con_Printf( "Command List\n--------------\n" );
|
||||
if( cmd[0] == '!' && cmd[1] == 0 )
|
||||
{
|
||||
while( pCmd )
|
||||
{
|
||||
if( !is_legit_cmd )
|
||||
{
|
||||
odd_cmds++;
|
||||
if( pCmd->pfnFunc == last_added_cmd )
|
||||
{
|
||||
is_legit_cmd = true;
|
||||
}
|
||||
}
|
||||
|
||||
g_Engine.Con_Printf( "%-16.16s%s\n", pCmd->pszName, is_legit_cmd ? "" : "\t\t\t(odd)" );
|
||||
|
||||
total_cmds++;
|
||||
pCmd = pCmd->pNext;
|
||||
}
|
||||
g_Engine.Con_Printf( "--------------\n%3i Total Commands (%d odd)\nCmdList ? for syntax\n", total_cmds, odd_cmds );
|
||||
|
||||
return;
|
||||
}
|
||||
strncat(gamedir,g_Engine.pfnGetGameDirectory(),sizeof(gamedir));
|
||||
strncat(gamedir,"/cmdlist.txt",sizeof(gamedir));
|
||||
if( strncmp( cmd, "log", strlen(cmd) ) == 0 )
|
||||
{
|
||||
w = fopen( gamedir, "w" );
|
||||
log = true;
|
||||
}
|
||||
|
||||
if( log && w == NULL )
|
||||
{
|
||||
log = false;
|
||||
g_Engine.Con_Printf( "Couldn't open %s for writing!\n", gamedir );
|
||||
return;
|
||||
}
|
||||
if( g_Engine.Cmd_Argc() == 2 )
|
||||
{
|
||||
if( log )
|
||||
{
|
||||
while( pCmd )
|
||||
{
|
||||
if( pCmd->pfnFunc == last_added_cmd )
|
||||
{
|
||||
is_legit_cmd = true;
|
||||
}
|
||||
|
||||
if( is_legit_cmd )
|
||||
{
|
||||
g_Engine.Con_Printf( "%-16.16s\n", pCmd->pszName );
|
||||
fprintf( w, "%-16.16s\n", pCmd->pszName );
|
||||
total_cmds++;
|
||||
}
|
||||
pCmd = pCmd->pNext;
|
||||
}
|
||||
|
||||
g_Engine.Con_Printf( "--------------\n%3i Total Commands\nCmdList ? for syntax\n", total_cmds );
|
||||
fclose(w);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
while( pCmd )
|
||||
{
|
||||
if( pCmd->pfnFunc == last_added_cmd )
|
||||
{
|
||||
is_legit_cmd = true;
|
||||
}
|
||||
if( is_legit_cmd && strncmp( cmd, pCmd->pszName, strlen(cmd) ) == 0 )
|
||||
{
|
||||
g_Engine.Con_Printf( "%-16.16s\n", pCmd->pszName );
|
||||
total_cmds++;
|
||||
}
|
||||
pCmd = pCmd->pNext;
|
||||
}
|
||||
g_Engine.Con_Printf( "--------------\n%3i Commands for [%s]\nCmdList ? for syntax\n", total_cmds, cmd );
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
if( g_Engine.Cmd_Argc() == 3 && log )
|
||||
{
|
||||
while( pCmd )
|
||||
{
|
||||
if( pCmd->pfnFunc == last_added_cmd )
|
||||
{
|
||||
is_legit_cmd = true;
|
||||
}
|
||||
|
||||
if( is_legit_cmd && strncmp( g_Engine.Cmd_Argv(2), pCmd->pszName, strlen(g_Engine.Cmd_Argv(2)) ) == 0 )
|
||||
{
|
||||
g_Engine.Con_Printf( "%-16.16s\n", pCmd->pszName );
|
||||
fprintf( w, "%-16.16s\n", pCmd->pszName );
|
||||
total_cmds++;
|
||||
}
|
||||
|
||||
pCmd = pCmd->pNext;
|
||||
}
|
||||
g_Engine.Con_Printf( "--------------\n%3i Total Commands\nCmdList ? for syntax\n", total_cmds );
|
||||
fclose(w);
|
||||
return;
|
||||
}
|
||||
|
||||
while( pCmd )
|
||||
{
|
||||
if( pCmd->pfnFunc == last_added_cmd )is_legit_cmd = true;
|
||||
if( is_legit_cmd )
|
||||
{
|
||||
g_Engine.Con_Printf( "%-16.16s\n", pCmd->pszName );
|
||||
if( log )
|
||||
fprintf( w, "%-16.16s\n", pCmd->pszName );
|
||||
|
||||
total_cmds++;
|
||||
}
|
||||
pCmd = pCmd->pNext;
|
||||
}
|
||||
g_Engine.Con_Printf( "--------------\n%3i Total Commands\nCmdList ? for syntax\n", total_cmds );
|
||||
if( log )
|
||||
fclose(w);
|
||||
}
|
||||
|
||||
void hookCommand( char *cmdName, DWORD *dwCmdPointer, void (*func)( void ) )
|
||||
{
|
||||
pcommand_t pCmd = g_Engine.pfnGetCmdList( );
|
||||
while( pCmd )
|
||||
{
|
||||
if( !strcmp( pCmd->pszName, cmdName ) )
|
||||
{
|
||||
*dwCmdPointer = pCmd->pfnFunc;
|
||||
pCmd->pfnFunc = (DWORD)( (void *)func );
|
||||
break;
|
||||
}
|
||||
pCmd = pCmd->pNext;
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user