SA-MP Forums Archive
[Ajuda] Verificaзгo MysQL - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Verificaзгo MysQL (/showthread.php?tid=663491)



Verificaзгo MysQL - DanielMatrix - 02.02.2019

Estou com questгo meio que ridнcula, mas fiquei presa nela, estou verificando as facзхes existentes no banco dados, todas as tabelas que constam como existentes sгo carregadas ao jogador conectar, como mostra o cуdigo abaixo .

VerificarFaccoes(playerid); Foi colocado certamente no OnPlayerConnect , atй ai tudo certo.

PHP код:
/*••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/
stock VerificarFaccoes(playerid) {
    new 
Query[300];        
    
mysql_format(IDConexaoQuerysizeof(Query), "SELECT * FROM `faccoes`");
    
mysql_tquery(IDConexaoQuery"CarregarFaccoes""i"playerid); 
    return 
true;
}
/*••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/
forward CarregarFaccoes(playerid);
public 
CarregarFaccoes(playerid) {
    if(
cache_num_rows() > 0) {
    
        
cache_get_value_int(0"ID"PlayerFaccao[playerid][ID]); 
        
cache_get_value(0"Nome"PlayerFaccao[playerid][Nome], 24); 
        
cache_get_value_int(0"Tipo"PlayerFaccao[playerid][Tipo]); 
        
cache_get_value_int(0"Beneficio"PlayerFaccao[playerid][Beneficio]); 
        
cache_get_value(0"Comander"PlayerFaccao[playerid][Comander], 24); 
    }
    return 
true;
}
/*••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/ 
Nisso vem outra questгo estou verificando as facзхes ativas pelo comando da diretoria , tal qual seria /faccoes, o comando nгo puxa todas as tabelas ativas, apenas a primeira tabela. https://i.imgur.com/Lt36kGk.png

vamos para o comando .

PHP код:
/*••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/
CMD:faccoes(playerid) {
    
    if(!
PlayerDiretoria[playerid][Cargo]) return false;
    if(
PlayerDiretoria[playerid][Cargo] < 2) return false;
    
    new 
String[1000],Dialog[1000];
        
    for(new 
ffMAX_FACCOESf++) {
            
        
format(Stringsizeof(String), "{b30059}( ID:  {FFFFFF}%d{b30059} ){b30059}( Nome:      {FFFFFF}%s{b30059} ){b30059}( Tipo:  {FFFFFF}%s{b30059} ){b30059}( Beneficio:  {FFFFFF}%s{b30059} ){b30059}( Comander:  {FFFFFF}%s{b30059} )\n\n",PlayerFaccao[f][ID],PlayerFaccao[f][Nome],TipoFaccao(f),BeneficioFaccao(f),PlayerFaccao[f][Comander]);    
        
strcat(DialogStringsizeof(Dialog));
    }
    
ShowPlayerDialog(playerid23DIALOG_STYLE_MSGBOX"\t\tFACCЗХES ATIVAS"Dialog"Fechar","");
    return 
true;
}
/*••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••*/ 
MAX_FACCOES estб definido como 30.

Original Roleplay
Copyright © 2019 Todos os direitos autorais reservados.



Re: Verificaзгo MysQL - PedroH - 04.02.2019

eu te aconselho a fazer isso:
PHP код:
enum Faccoes
{
     
id,
     
nome[MAX_FAC_NAME],
     ...
}
new 
lista_fac[MAX_FACCOES][Faccoes]; 
carregando:

OnGameModeInit
Quote:

mysql_tquery(Connectmysql, "SELECT * FROM `faccoes`", "CarregarFac", "");

PHP код:

forward CarregarFac
();
public 
CarregarFac(){
    new 
row;
    
cache_get_row_count(row);
    for(new 
i=0row;i++){
        
cache_get_value_name_int(i"id"lista_fac[i][id]);
        
cache_get_value_name(i"nome"lista_fac[i][nome], MAX_FAC_NAME);
            ...
    }
    return 
1;

quando for mostrar a lista voce faz o seguinte aqui:
PHP код:
for(new ffMAX_FACCOESf++)    
     
format(Stringsizeof(String), "%s\n{b30059}( ID:  {FFFFFF}%d{b30059} ){b30059}( Nome:      {FFFFFF}%s{b30059} ){b30059}( Tipo:  {FFFFFF}%s{b30059} ){b30059}( Beneficio:  {FFFFFF}%s{b30059} ){b30059}( Comander:  {FFFFFF}%s{b30059} )\n",String,PlayerFaccao[f][ID],PlayerFaccao[f][Nome],TipoFaccao(f),BeneficioFaccao(f),PlayerFaccao[f][Comander]); 
para dar faccao ao player:
Quote:

Player[playerid][pFac] = idFac;

o que eu entendi do seu codigo й que ele carrega uma faccao a cada player que entra, nao intendi muito bem.