Add GetCmdArgFloat(Ex) stocks (#1742)

This commit is contained in:
Arron Vinyard 2022-04-12 06:17:05 -04:00 committed by GitHub
parent 01203a5a44
commit 852703ccca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 13 deletions

View File

@ -383,9 +383,7 @@ public Action Command_Burn(int client, int args)
if (args > 1)
{
char time[20];
GetCmdArg(2, time, sizeof(time));
if (StringToFloatEx(time, seconds) == 0)
if (!GetCmdArgFloatEx(2, seconds))
{
ReplyToCommand(client, "[SM] %t", "Invalid Amount");
return Plugin_Handled;

View File

@ -197,9 +197,7 @@ public Action Command_Gravity(int client, int args)
float amount = 1.0;
if (args > 1)
{
char arg2[20];
GetCmdArg(2, arg2, sizeof(arg2));
if (StringToFloatEx(arg2, amount) == 0)
if (!GetCmdArgFloatEx(2, amount))
{
ReplyToCommand(client, "[SM] %t", "Invalid Amount");
return Plugin_Handled;

View File

@ -428,10 +428,11 @@ native int GetCmdArg(int argnum, char[] buffer, int maxlength);
* console or server command. Will return 0 if the argument can not be
* parsed as a number. Use GetCmdArgIntEx to handle that explicitly.
*
* @param argnum Argument number to retrieve.
* @return Value of the command argument.
* @param argnum Argument number to retrieve.
* @return Value of the command argument.
*/
stock int GetCmdArgInt(int argnum) {
stock int GetCmdArgInt(int argnum)
{
char str[12];
GetCmdArg(argnum, str, sizeof(str));
@ -443,17 +444,51 @@ stock int GetCmdArgInt(int argnum) {
* console or server command. Returns false if the argument can not be
* completely parsed as an integer.
*
* @param argnum Argument number to retrieve.
* @param value Populated with the value of the command argument.
* @return Whether the argument was entirely a numeric value.
* @param argnum Argument number to retrieve.
* @param value Populated with the value of the command argument.
* @return Whether the argument was entirely a numeric value.
*/
stock bool GetCmdArgIntEx(int argnum, int &value) {
stock bool GetCmdArgIntEx(int argnum, int &value)
{
char str[12];
int len = GetCmdArg(argnum, str, sizeof(str));
return StringToIntEx(str, value) == len && len > 0;
}
/**
* Retrieves a float command argument given its index, from the current
* console or server command. Will return 0.0 if the argument can not be
* parsed as a number. Use GetCmdArgFloatEx to handle that explicitly.
*
* @param argnum Argument number to retrieve.
* @return Value of the command argument.
*/
stock float GetCmdArgFloat(int argnum)
{
char str[18];
GetCmdArg(argnum, str, sizeof(str));
return StringToFloat(str);
}
/**
* Retrieves a float command argument given its index, from the current
* console or server command. Returns false if the argument can not be
* completely parsed as a floating point.
*
* @param argnum Argument number to retrieve.
* @param value Populated with the value of the command argument.
* @return Whether the argument was entirely a floating point value.
*/
stock bool GetCmdArgFloatEx(int argnum, float &value)
{
char str[18];
int len = GetCmdArg(argnum, str, sizeof(str));
return StringToFloatEx(str, value) == len && len > 0;
}
/**
* Retrieves the entire command argument string in one lump from the current
* console or server command.