Portal SAMP
[Ajuda] Ajuda com CMD - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Ajuda com CMD (/showthread.php?tid=1301)



Ajuda com CMD - FireBladee XJgames - 21/06/2021

Código:
CMD:comprarbilhete(playerid,params[])
{
    if((PlayerInfo[playerid][MeuVIP] > 0) && VIPS[PlayerInfo[playerid][MeuVIP]][TipoVIP] == 1 || IsPlayerAdmin_(playerid) && PlayerInfo[playerid][SuperMotoXJ] || PlayerInfo[playerid][ComandosFire])
    {
        new _BileteCompra;
        if(PlayerGrana(playerid) < 5000)return SendClientMessage(playerid, Vermelho, " | ERRO |  Voce nao tem dinheiro suficiente!");
        if (_BilheteComprado[playerid] == 1) return SendClientMessage (playerid, Cor_AVISO, "| LOTERIA | Você ja tem um bilhete!");
        if (sscanf ( params , "i" , _BileteCompra)) return SendClientMessage ( playerid,Cor_CMD, "| COMANDO | Uso correto: /comprarbilhete [Numero]");
        if (1 < _BileteCompra > 100) return SendClientMessage (playerid,Cor_ACESSO, "| ERRO | Você so pode jogar de 1 a 100 ");
        _Numero[playerid] = _BileteCompra;
        _BilheteComprado [playerid] = 1;
        ServerInfo[ValorLoteria] += 5000;
        DarGrana(playerid,-5000,"Comprou Bilhete");
        mysql_format(MysqlConnect,pstring, 700,"UPDATE server_info SET Valor='%i' WHERE Item_Nome='ValorLoteria'",ServerInfo[ValorLoteria]);
        mysql_function_query(MysqlConnect,pstring, false, "", "");
        SendClientMessage(playerid,Cor_INFO,"| LOTERIA | Bilhete comprado .. ( /meubilhete)");
        LOG("ComprouLoteria","O Jogador %s Comprou o Bilhete %i ",PlayerInfo[playerid][Nome],_Numero[playerid]);
    }
    else
        SendClientMessage_(playerid,Cor_ACESSO,"| ACESSO | Você não pode usar esse comando somente VIP Rubi.");
    return 1;
}

tenho esse sistema de loteria no meu servidor, e compra o bilhete nesse comando, queria evitar de o jogador comprar o mesmo numero, exemplo " joao foi e comprou o 10, a hora que a maria tentar comprar o numero 10, não vai conseguir e aparecer uma msg dizendo que esse numero ja ta comprado. ajuda ai alguem desde ja obrigado.



RE: Ajuda com CMD - MarcosBrazz - 22/06/2021

Você pode fazer um loop para saber se o bilhete comprado é igual a de alguem do servidor:
Código:
        for(new i; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                if(_Numero[i] == _BileteCompra)
                {
                    SendClientMessage(playerid, -1, "Esse bilhete ja foi comprado!");
                    break;
                }
            }
        }
Obviamente pode ficar mais otimizado com foreach.