Portal SAMP
[Ajuda] sistema com id fixo do mysql... - 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] sistema com id fixo do mysql... (/showthread.php?tid=4732)

Páginas: 1 2 3


RE: sistema com id fixo do mysql... - Cyclopeta - 12/05/2024

@pushline mais nao faz sentido mn, se dar cadeia pelo id do tab e do id fixo, quando se clica em "tab" no teclado, aparece o id aleatorio dependendo da quantidade de player online. nao faz sentido msm, de dar cadeia pelo id do tab e do id fixo. o CERTO MESMO é dar cadeia pelo id fixo do mysql, ou seja, pelo AUTO INCREMENT.


RE: sistema com id fixo do mysql... - BitSain - 12/05/2024

(12/05/2024 00:07)Cyclopeta Escreveu: @pushline mais nao faz sentido mn, se dar cadeia pelo id do tab e do id fixo, quando se clica em "tab" no teclado, aparece o id aleatorio dependendo da quantidade de player online. nao faz sentido msm, de dar cadeia pelo id do tab e do id fixo. o CERTO MESMO é dar cadeia pelo id fixo do mysql, ou seja, pelo AUTO INCREMENT.

Cara, tá certo dar cadeia pelo id do TAB.

O adm vai digitar o IDFIXO, e o servidor vai dar resposta do comando -> vai getar o id do jogador com esse id FIXO e dar a cadeia pelo id do TAB pq se vc digitar o IDFIXO como o ID do jogador diretamente o servidor interpreta como o ID do TAB.


RE: sistema com id fixo do mysql... - White_Blue - 12/05/2024

(12/05/2024 10:31)BitSain Escreveu:
(12/05/2024 00:07)Cyclopeta Escreveu: @pushline mais nao faz sentido mn, se dar cadeia pelo id do tab e do id fixo, quando se clica em "tab" no teclado, aparece o id aleatorio dependendo da quantidade de player online. nao faz sentido msm, de dar cadeia pelo id do tab e do id fixo. o CERTO MESMO é dar cadeia pelo id fixo do mysql, ou seja, pelo AUTO INCREMENT.

Cara, tá certo dar cadeia pelo id do TAB.

O adm vai digitar o IDFIXO, e o servidor vai dar resposta do comando -> vai getar o id do jogador com esse id FIXO e dar a cadeia pelo id do TAB pq se vc digitar o IDFIXO como o ID do jogador diretamente o servidor interpreta como o ID do TAB.

Creio que ele também queria prender o jogador caso esteja offline. Nesse caso, é melhor utilizar o nome do jogador em vez do ID.


RE: sistema com id fixo do mysql... - pushline - 12/05/2024

Se o jogador n estiver online é só dar update na coluna de preso via o id fixo. E o que o white falou esta certo.


RE: sistema com id fixo do mysql... - Cyclopeta - 14/05/2024

como assim dar update mn? tipo, eu nao quero q prenda pelo id q fica no tab, e sim id do mysql q é de 1 em diante


RE: sistema com id fixo do mysql... - White_Blue - 14/05/2024

(14/05/2024 16:48)Cyclopeta Escreveu: como assim dar update mn? tipo, eu nao quero q prenda pelo id q fica no tab, e sim id do mysql q é de 1 em diante

Se você quer prender apenas pelo ID salvo no BD, basta fazer da seguinte forma:

Código PHP:
CMD:prender(playeridparams[]) {
     new 
idquery[255];

     if(
sscanf(params"i"id)) return SendClientMessage(playerid, -1"/prender [id]");

     
mysql_format(MYSQL_DEFAULT_HANDLEquerysizeof(query), "UPDATE usuarios SET preso = 1 WHERE id = %i;"id);
     
mysql_query(MYSQL_DEFAULT_HANDLEquery"PrenderPlayer");
     return 
1;
}

forward PrenderPlayer();
public 
PrenderPlayer() {
       new 
cachedname[MAX_PLAYER_NAME+1], name[MAX_PLAYER_NAME+1];

       if(!
cache_num_rows()) return 1;

       
cache_get_value_name(0"Nome"cachedname);

       foreach(new 
Player) {
          
GetPlayerName(inamesizeof(name));

          if(!
strcmp(namecachedname)) {
             
pDados[i][Preso] = 1;
             break; 
// Verifica se o jogador está online no momento da prisão através do seu nome, caso estiver, seta a variável Preso no momento para 1.
           
}
       }
       return 
1;


P.S.: Não testei o script acima, mas creio que deve funcionar, altere os nomes de variáveis e etc para os nomes correspondentes em seu script.


RE: sistema com id fixo do mysql... - João Pedro Alves - 15/05/2024

(14/05/2024 18:09)White_Blue Escreveu:
(14/05/2024 16:48)Cyclopeta Escreveu: como assim dar update mn? tipo, eu nao quero q prenda pelo id q fica no tab, e sim id do mysql q é de 1 em diante

Se você quer prender apenas pelo ID salvo no BD, basta fazer da seguinte forma:

Código PHP:
CMD:prender(playeridparams[]) {
     new idquery[255];

     if(sscanf(params"i"id)) return SendClientMessage(playerid, -1"/prender [id]");

     mysql_format(MYSQL_DEFAULT_HANDLEquerysizeof(query), "UPDATE usuarios SET preso = 1 WHERE id = %i;"id);
     mysql_query(MYSQL_DEFAULT_HANDLEquery"PrenderPlayer");
     return 1;
}

forward PrenderPlayer();
public 
PrenderPlayer() {
       new cachedname[MAX_PLAYER_NAME+1], name[MAX_PLAYER_NAME+1];

       if(!cache_num_rows()) return 1;

       cache_get_value_name(0"Nome"cachedname);

       foreach(new Player) {
          GetPlayerName(inamesizeof(name));

          if(!strcmp(namecachedname)) {
             pDados[i][Preso] = 1;
             break; // Verifica se o jogador está online no momento da prisão através do seu nome, caso estiver, seta a variável Preso no momento para 1.
           }
       }
       return 1;


P.S.: Não testei o script acima, mas creio que deve funcionar, altere os nomes de variáveis e etc para os nomes correspondentes em seu script.

Deixar jogadores executarem comandos que lidam com o banco, principalmente update, vira uma baita brexa de segurança...