if(!strcmp(cmd, "/transferir", true)) { tmp = strtok(cmdtext, idx) ; if(!strlen(tmp)) { SendClientMessage(playerid, 0xFFFFFFAA, "USE: /Transferir [ID] [Quantia]"); return 1; } new id = strval(tmp) ; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, 0xFFFFFFAA, "USE: /Transferir [ID] [Quantia]"); return 1; } new moneys = strval(tmp) ; if(id == playerid) { SendClientMessage(playerid, COLOR_RED, "Voce nгo pode transferir dinheiro para vocк mesmo!"); return 1; } if(GetDistanceBetweenPlayers(playerid, id) > 20) { SendClientMessage(playerid, COLOR_RED, "Chegue mais perto!"); return 1; } if(!IsPlayerConnected(id)) { SendClientMessage(playerid, COLOR_RED, "Jogador offline!"); return 1; } if(GetPlayerCash(playerid) < moneys) { SendClientMessage(playerid, 0xFFFFFFAA, "Vocк nгo tem tudo isso em mгos!"); return 1; } if(moneys < 1 || GetPlayerCash(playerid) < moneys) { SendClientMessage(playerid, 0xFFFFFFAA, "Quantia invбlida!"); return 1; } format(gstring, sizeof(gstring), "Quantia de R$%d em dinheiro transferida com sucesso para %s.", moneys, PlayerName(id)); SendClientMessage(playerid, 0xFFFFFFAA, gstring); format(gstring, sizeof(gstring), "O jogador %s lhe transferiu R$%d em dinheiro.", PlayerName(playerid), moneys); SendClientMessage(id, 0xFFFFFFAA, gstring); format(gstring, sizeof(gstring), "{FFFFFF}%s transferiu R$%d para %s.", PlayerName(playerid), moneys, PlayerName(id)); sGivePlayerCash(playerid, -moneys); sGivePlayerCash(id, moneys); Transferencias(gstring); return 1; }
stock IsNumeric(const str[]) { for(new i, len = strlen(str); i < len; i++) { if(!('0' <= str[i] <= '9')) return false; } return true; }
#define DIALOG_TRASNFID 11 //Select ID
#define DIALOG_TRANSFERIR 12 //Amount
#define MAX_TRANSFER 50000
new idplayer[MAX_PLAYERS]; // Playerid reverso quando o playerid seleciona outro player para uma function, nunca testei pode dar erro.
if(!strcmp(cmd, "/transferir", true))
{
ShowPlayerDialog(playerid, DIALOG_TRANSFID, DIALOG_STYLE_INPUT, "Transferir [ID]", "Select ID to go process transfer", "Prosseguir", "Cancel");
SendClientMessage(playerid, -1, "Vindo ao sistema de transferencia");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_TRANSFID){
if(!response) return SendClientMessage(playerid, -1, "Vocк cancelou o sistema de transferencia");
if(!IsNumeric(inputtext)) return SendClientMessage(playerid, -1,"Digite um ID para continuar, tente novamente"); ShowPlayerDialog(playerid, DIALOG_TRANSFID, DIALOG_STYLE_INPUT, "Transferir [ID]", "Select ID to go process transfer", "Prosseguir", "Cancel");
if(strval(inputtext) < 0 || strval(inputtext) > MAX_PLAYERS || IsPlayerConnected(strval(inputtext))) return SendClientMessage(playerid, -1, "Player ID Nгo encontrado, tente outro id, Use /transferir"); ShowPlayerDialog(playerid, DIALOG_TRANSFID, DIALOG_STYLE_INPUT, "Transferir [ID]", "Select ID to go process transfer", "Prosseguir", "Cancel");
idplayer = strval(inputtext);
new str[45];
format(str, sizeof(str), "Select the quantity for Send to ID: %i", idplayer);
ShowPlayerDialog(playerid, DIALOG_TRANSFERIR, DIALOG_STYLE_INPUT, "Transferir [Quantia]", str, "Send", "Go Back");
return 1;
}
if(dialogid == DIALOG_TRANSFERIR){
f(!response) return SendClientMessage(playerid, -1, "Vocк voltou o sistema de transferencia para selecionar outro ID"); ShowPlayerDialog(playerid, DIALOG_TRANSFID, DIALOG_STYLE_INPUT, "Transferir [ID]", "Select ID to go process transfer", "Prosseguir", "Cancel");
new str[45];
format(str, sizeof(str), "Select the quantity for Send to ID: %i", idplayer);
if(!IsNumeric(inputtext)) return SendClientMessage(playerid, -1,"Digite uma quantia em Dinheiro para continuar, tente novamente"); ShowPlayerDialog(playerid, DIALOG_TRANSFERIR, DIALOG_STYLE_INPUT, "Transferir [Quantia]", str, "Send", "Go Back");
if(strval(inputtext) < 0 || strval(inputtext) > MAX_TRANSFER) return SendClientMessage(playerid, -1, "Quantia invбlida ou Maior do que o Limite por transferencia");//Definir max transfer
new QuantiaValorDinheiro = strval(inputtext);
GivePlayerMoney(playerid, -QuantiaValorDinheiro);
GivePlayerMoney(idplayer, QuantiaValorDinheiro);
return 1;
}
return 1;
}
Primeiro use a callback IsNumeric, ela identifica se o player digitou um numero em vez de letras
CallBack: Код:
stock IsNumeric(const str[]) { for(new i, len = strlen(str); i < len; i++) { if(!('0' <= str[i] <= '9')) return false; } return true; } pawn Код:
Corrijam-me se eu errei em alguma parte do cуdigo, se der para diminuir a quantidade de linhas. |