05.09.2012, 14:37
pawn Код:
#include <a_samp>
#include <sscanf2>
#define CALC_ADD 1
#define CALC_MINUS 2
#define CALC_MULTIPLY 3
#define CALC_DIVIDE 4
stock calculate(playerid, number1, number2, method) {
new outcome, string[128];
switch(method) {
case CALC_ADD: format(string, 128, "%d + %d = %d", number1, number2, number1 + number2), SendClientMessage(playerid, -1, string);
case CALC_MINUS: format(string, 128, "%d - %d = %d", number1, number2, number1 - number2), SendClientMessage(playerid, -1, string);
case CALC_MULTIPLY: format(string, 128, "%d * %d = %d", number1, number2, number1 * number2), SendClientMessage(playerid, -1, string);
case CALC_DIVIDE: format(string, 128, "%d / %d = %d", number1, number2, number1 / number2), SendClientMessage(playerid, -1, string);
}
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/calc", cmdtext, true, 5) == 0 || strcmp("/calculate", true, 10) == 0) {
new str[128], func[2], n1, n2, type;
if(sscanf(cmdtext, "iis[2]", n1, n2, func)) return SendClientMessage(playerid, -1, "Usage: /calc(ulate) (1st number) (2nd number) (function: + - / *)");
if(!sscanf(func, "+", true, 1)) { type = CALC_ADD; } else if(!sscanf(func, "-", true, 1)) { type = CALC_MINUS; } else if(!sscanf(func, "*", true, 1)) { type = CALC_MULTIPLY; } else if(!sscanf(func, "/", true, 1)) { type = CALC_DIVIDE; }
calculate(playerid, n1, n2, type);
}
return 0;
}