#include a_samp
#include zcmd
#include sscanf
new
str[64],
numero1,
numero2,
resultado;
CMD:calculadora(playerid)
{
SendClientMessage(playerid,-1,"/multiplicar [numero] [numero]");
SendClientMessage(playerid,-1,"/dividir [numero] [numero]");
SendClientMessage(playerid,-1,"/somar [numero] [numero]");
SendClientMessage(playerid,-1,"/subtrair [numero] [numero]");
return 1;
}
CMD:multiplicar(playerid,params[])
{
if(sscanf(params, "dd",numero1,numero2)) return SendClientMessage(playerid,-1,"USE: /multiplicar [numero] [numero]");
resultado = numero1 * numero2;
format(str,sizeof(str), "%d . %d = %d",numero1,numero2,resultado);
SendClientMessage(playerid,-1,str);
return 1;
}
CMD:dividir(playerid,params[])
{
if(sscanf(params, "dd",numero1,numero2)) return SendClientMessage(playerid,-1,"USE: /dividir [numero] [numero]");
resultado = numero1 / numero2;
format(str,sizeof(str), "%d / %d = %d",numero1,numero2,resultado);
SendClientMessage(playerid,-1,str);
return 1;
}
CMD:somar(playerid,params[])
{
if(sscanf(params, "dd",numero1,numero2)) return SendClientMessage(playerid,-1,"USE: /somar [numero] [numero]");
resultado = numero1 + numero2;
format(str,sizeof(str), "%d + %d = %d",numero1,numero2,resultado);
SendClientMessage(playerid,-1,str);
return 1;
}
CMD:subtrair(playerid,params[])
{
if(sscanf(params, "dd",numero1,numero2)) return SendClientMessage(playerid,-1,"USE: /subtrair [numero] [numero]");
resultado = numero1 - numero2;
format(str,sizeof(str), "%d - %d = %d",numero1,numero2,resultado);
SendClientMessage(playerid,-1,str);
return 1;
}
format(str,sizeof(str), "Resultado: %d", numero1 * numero2);
CMD:calcular(playerid,params[]){
static numero1, numero2, oper[5];
if(sscanf(params, "ds[5]d",numero1, oper, numero2)) return SendClientMessage(playerid,-1,"USE: /calcular [numero] [operaзгo +|-|x|/] [numero]");
Operacao(playerid, numero1, oper, numero2);
return 1;
}
stock Operacao(playerid, valor1, const op[], valor2)
{
static str[50], resultado;
if(!strcmp(op, "-", true)){
resultado = (valor1 - valor2);
format(str,sizeof(str), "Resultado: %d",resultado);
SendClientMessage(playerid, -1, str);
}
else if(!strcmp(op, "+", true)){
resultado = (valor2 + valor2);
format(str,sizeof(str), "Resultado: %d", resultado);
SendClientMessage(playerid, -1, str);
}
else if(!strcmp(op, "x", true)){
resultado = (valor2 * valor2);
format(str,sizeof(str), "Resultado: %d", resultado);
SendClientMessage(playerid, -1, str);
}
else if(!strcmp(op, "/", true)){
resultado = (valor2 /valor2);
format(str,sizeof(str), "Resultado: %d", resultado);
SendClientMessage(playerid, -1, str);
}
return true;
}
Sky, como vocк disse seria legal, mais seria mais dificil para um iniciante entender, como tambйm nгo sou muito experiente em PAWN(desejo ser kk) nгo entendi isso "ds[5]d". Poderia explicar?
|
"ds[5]d"
sгo os parametros do sscanf
d = numero1
s[5] = oper[5] ou seja a string statica que vai abortar a operaзгo +-/x - coloquei 5 porйm sу era necessario 2:P
d = numero2
o que eu disse que seria legal n foi uma critica por favor n interprete errado ...
pawn Код:
https://sampforum.blast.hk/showthread.php?tid=120356 |