Quote:
Originally Posted by ZBzibing
HTML Code:
int oldFlags = GetCommandFlags("endround");
SetCommandFlags("endround", oldFlags & ~(FCVAR_CHEAT));
ServerCommand("endround");
//ServerExecute("endround");
SetCommandFlags("endround", oldFlags);
Tried it, it doesn't seem to work
|
The main key is "delay"
Admin command: sm_cheatcmd
sm_cheatcmd endround
PHP Code:
public void OnPluginStart()
{
RegAdminCmd("sm_cheatcmd", cmd, ADMFLAG_CHEATS, "Try execute cheat command from server console input");
}
public Action cmd(int client, int args)
{
char command[100];
GetCmdArg(1, command, sizeof(command));
if(!CommandExists(command))
{
ReplyToCommand(client, "[SM] Unable to find cmd: %s", command);
return Plugin_Handled;
}
int flags = GetCommandFlags(command);
int newflags = flags;
newflags &= ~FCVAR_CHEAT;
if(!SetCommandFlags(command, newflags))
{
ReplyToCommand(client, "[SM] Failed to set flag(s) to command %s", command);
return Plugin_Handled;
}
char commandinput[128];
GetCmdArgString(commandinput, sizeof(commandinput));
DataPack pack = new DataPack();
pack.WriteCell(flags);
pack.WriteString(command);
pack.WriteString(commandinput);
RequestFrame(delay_servercommand, pack);
return Plugin_Handled;
}
public void delay_servercommand(DataPack pack)
{
pack.Reset();
int flags = pack.ReadCell();
char command[100];
pack.ReadString(command, sizeof(command));
char commandinput[128];
pack.ReadString(commandinput, sizeof(commandinput));
delete pack;
ServerCommand("%s", commandinput);
DataPack newpack = new DataPack();
newpack.WriteCell(flags);
newpack.WriteString(command);
RequestFrame(delay_setflags, newpack);
}
public void delay_setflags(DataPack pack)
{
pack.Reset();
int flags = pack.ReadCell();
char command[100];
pack.ReadString(command, sizeof(command));
delete pack;
SetCommandFlags(command, flags);
}
command
endround restart round.
Same as
sm_cvar mp_restartgame 1
__________________