SA-MP Forums Archive
[Ajuda] Hierarquia Pra pegar players Off - 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] Hierarquia Pra pegar players Off (/showthread.php?tid=651970)



Hierarquia Pra pegar players Off - Dimbalada - 31.03.2018

Bom meu sistema de hierarquia que mostra os cargos dos players da favela estб assim:
PHP код:
if(dialogid == 9999

    return 
ShowPlayerDialog(playeridDIALOG_HIERARQUIADIALOG_STYLE_LIST"Hierarquia Da Comunidade"
    
"Administradores\n\ 
    Lнderes da Facзгo\n\ 
    Donos do morro\n\ 
    Frentes\n\ 
    Gerentes\n\ 
    Vapores\n\ 
    Fogueteiros\n\ 
    Radinhos\n"

    
"Escolher""Cancelar"); 

if(
dialogid == DIALOG_HIERARQUIA

if(
response

new 
gStr[128], info[2048]; 
if(
listitem == 0)// Administrador 

for(new 
iMAX_PLAYERSi++) 
  { 
      if(
Player[i][pAdmin] > && Player[i][pFaccoes] ==  Player[playerid][pFaccoes]) 
      { 
          
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"getPName(i)); 
          
strcat(infogStr); 
      } 
  } 
strcat(info" "); 
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Administradores da Comunidade"info,"Ok","Voltar"); 
return 
1

if(
listitem == 1)// Lider 

for(new 
iMAX_PLAYERSi++) 
  { 
      if(
Player[i][pLider] > && Player[i][pFaccoes] ==  Player[playerid][pFaccoes]) 
      { 
          
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"getPName(i)); 
          
strcat(infogStr); 
      } 
  } 
strcat(info" "); 
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Lider da Facзгo"info,"Ok","Voltar"); 
return 
1

if(
listitem == 2)// Donos do morro 

for(new 
iMAX_PLAYERSi++) 
  { 
      if(
Player[i][pDM] > && Player[i][pFaccoes] ==  Player[playerid][pFaccoes]) 
      { 
          
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"getPName(i)); 
          
strcat(infogStr); 
      } 
  } 
strcat(info" "); 
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Dono da Comunidade"info"Ok","Voltar"); 
return 
1

if(
listitem == 3)// Frentes 

for(new 
iMAX_PLAYERSi++) 
  { 
      if(
Player[i][pFrente] > && Player[i][pFaccoes] ==  Player[playerid][pFaccoes]) 
      { 
               
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"getPName(i)); 
              
strcat(infogStr); 
      } 
  } 
strcat(info" "); 
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Frente da Comunidade"info,"Ok","Voltar"); 
return 
1

if(
listitem == 4)// Gerentes 

for(new 
iMAX_PLAYERSi++) 
  { 
      if(
Player[i][pGerente] > && Player[i][pFaccoes] ==  Player[playerid][pFaccoes]) 
      { 
          
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"getPName(i)); 
          
strcat(infogStr); 
      } 
  } 
strcat(info" "); 
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Gerente da Comunidade",info,"Ok","Voltar"); 
return 
1

if(
listitem == 5)// Vaporzгo 

for(new 
iMAX_PLAYERSi++) 
  { 
      if(
Player[i][pVapor] > && Player[i][pFaccoes] ==  Player[playerid][pFaccoes]) 
      { 
          
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"getPName(i)); 
          
strcat(infogStr); 
      } 
  } 
strcat(info" "); 
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Vapor da Comunidade"info,"Ok","Voltar"); 
return 
1

if(
listitem == 6)// Fogueteiros 

for(new 
iMAX_PLAYERSi++) 
  { 
      if(
Player[i][pFogueteiro] > && Player[i][pFaccoes] ==  Player[playerid][pFaccoes]) 
      { 
          
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"getPName(i)); 
          
strcat(infogStr); 
      } 
  } 
strcat(info" "); 
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Fogueteiro da Comunidade"info,"Ok","Voltar"); 
return 
1


return 
1

Mas sу pega os players online tipo sou frente ai se eu sai do servido nгo vai mostra mais eu no cargo de frente ai se eu loga aparece ai eu queria que pega-se os players setados de algum cargo offline tambйm


Re: Hierarquia Pra pegar players Off - Cebolacio - 31.03.2018

Vocк vai plecisar usar uma include de salvamento, DOF2, SQL, MySQL, dini...

Salve o nome do climinoso em um arquivo de dados e velifique se esse nome estб online.


Re: Hierarquia Pra pegar players Off - Dimbalada - 31.03.2018

meu salvamento й DOF2 pode me fazer uma base?


Re: Hierarquia Pra pegar players Off - Cebolacio - 31.03.2018

Vou tentar desclever pala vocк.

Clie um arquivo chamado faction_1.ini , nele vocк vai salvar os cargos, exemplo:

[faction_1.ini]
Lider: Belingela
Dono: Macalгo
Flente: Lalanja
Gelente: Lasanha
Vapor: Fumasa
Fogueteilo: Jacale

Depois й sу vocк usar o GET do DOF2 pala pegar os nomes.


Re: Hierarquia Pra pegar players Off - Dimbalada - 31.03.2018

Quote:
Originally Posted by Cebolacio
Посмотреть сообщение
Vou tentar desclever pala vocк.

Clie um arquivo chamado faction_1.ini , nele vocк vai salvar os cargos, exemplo:

[faction_1.ini]
Lider: Belingela
Dono: Macalгo
Flente: Lalanja
Gelente: Lasanha
Vapor: Fumasa
Fogueteilo: Jacale

Depois й sу vocк usar o GET do DOF2 pala pegar os nomes.
Mano nгo entendi nd so entendi a parte de criar o arquivo.ini sou mt novato em programaзгo pode explicar um pouco mais fбcil?


Re: Hierarquia Pra pegar players Off - GunnerCoder - 01.04.2018

Seguinte, pelo o que eu vi vocк salva essas informaзхes no jogador, tipo qual a facзгo do player, qual cargo, etc.. Mas o ideal й que vocк crie um salvamento em DOF2 para as facзхes criminosas do seu servidor, comece com um Enum:

PHP код:
#define MAX_FACCOES 50 //Mбximo de facзхes que vocк quer ter no seu servidor, tanto faz o nъmero, vocк que manda!
enum FaccaoEnum //topo do cуdigo  
{  
 
Administrador1[MAX_PLAYER_NAME],
 
Administrador2[MAX_PLAYER_NAME],
 
Administrador3[MAX_PLAYER_NAME],
 
Lider1[MAX_PLAYER_NAME],
 
Lider2[MAX_PLAYER_NAME],
 
Lider3[MAX_PLAYER_NAME],
 
DonoComunidade1[MAX_PLAYER_NAME],
 
Frente[MAX_PLAYER_NAME],
 
CofreFaccao,
 
DrogasFaccao
 
//Por aн vai... O ъltimo item do Enum nгo tem "," no final, nгo esqueзa...
}
new 
FaccaoDados[MAX_FACCOES][FaccaoEnum]; 
Agora crie uma stock para carregar as facзхes:

PHP код:
stock CarregarFaccoes()  //final do cуdigo 
{   
    new 
Contador[50];
    for(new 
0MAX_FACCOESi++)   
    {       
    
format(Contadorsizeof(Contador), PASTA_VEICULOSi); 
    if(
DOF2_FileExists(Contador))
    {
        
strmid(FaccaoDados[i][Administrador1], DOF2_GetString(Contador"Administrador1"), 0strlen(DOF2_GetString(Contador"Administrador1")), MAX_PLAYER_NAME); //Quando й texto faзa desse modo
        
strmid(FaccaoDados[i][Administrador1], DOF2_GetString(Contador"Administrador2"), 0strlen(DOF2_GetString(Contador"Administrador2")), MAX_PLAYER_NAME);
        
strmid(FaccaoDados[i][Administrador1], DOF2_GetString(Contador"Administrador3"), 0strlen(DOF2_GetString(Contador"Administrador3")), MAX_PLAYER_NAME);
        
strmid(FaccaoDados[i][Placa], DOF2_GetString(Contador"Lider1"), 0strlen(DOF2_GetString(Contador"Lider1")), 10);
        
//etc...
        
FaccaoDados[i][CofreFaccao] = DOF2_GetInt(Contador"CofreFaccao"); //Valores inteiros desse modo
        
FaccaoDados[i][DrogasFaccao] = DOF2_GetInt(Contador"DrogasFaccao");
    }
    }   
    return 
1;   




Re: Hierarquia Pra pegar players Off - Dimbalada - 01.04.2018

Quote:
Originally Posted by GunnerCoder
Посмотреть сообщение
Seguinte, pelo o que eu vi vocк salva essas informaзхes no jogador, tipo qual a facзгo do player, qual cargo, etc.. Mas o ideal й que vocк crie um salvamento em DOF2 para as facзхes criminosas do seu servidor, comece com um Enum:

PHP код:
#define MAX_FACCOES 50 //Mбximo de facзхes que vocк quer ter no seu servidor, tanto faz o nъmero, vocк que manda!
enum FaccaoEnum //topo do cуdigo  
{  
 
Administrador1[MAX_PLAYER_NAME],
 
Administrador2[MAX_PLAYER_NAME],
 
Administrador3[MAX_PLAYER_NAME],
 
Lider1[MAX_PLAYER_NAME],
 
Lider2[MAX_PLAYER_NAME],
 
Lider3[MAX_PLAYER_NAME],
 
DonoComunidade1[MAX_PLAYER_NAME],
 
Frente[MAX_PLAYER_NAME],
 
CofreFaccao,
 
DrogasFaccao
 
//Por aн vai... O ъltimo item do Enum nгo tem "," no final, nгo esqueзa...
}
new 
FaccaoDados[MAX_FACCOES][FaccaoEnum]; 
Agora crie uma stock para carregar as facзхes:

PHP код:
stock CarregarFaccoes()  //final do cуdigo 
{   
    new 
Contador[50];
    for(new 
0MAX_FACCOESi++)   
    {       
    
format(Contadorsizeof(Contador), PASTA_VEICULOSi); 
    if(
DOF2_FileExists(Contador))
    {
        
strmid(FaccaoDados[i][Administrador1], DOF2_GetString(Contador"Administrador1"), 0strlen(DOF2_GetString(Contador"Administrador1")), MAX_PLAYER_NAME); //Quando й texto faзa desse modo
        
strmid(FaccaoDados[i][Administrador1], DOF2_GetString(Contador"Administrador2"), 0strlen(DOF2_GetString(Contador"Administrador2")), MAX_PLAYER_NAME);
        
strmid(FaccaoDados[i][Administrador1], DOF2_GetString(Contador"Administrador3"), 0strlen(DOF2_GetString(Contador"Administrador3")), MAX_PLAYER_NAME);
        
strmid(FaccaoDados[i][Placa], DOF2_GetString(Contador"Lider1"), 0strlen(DOF2_GetString(Contador"Lider1")), 10);
        
//etc...
        
FaccaoDados[i][CofreFaccao] = DOF2_GetInt(Contador"CofreFaccao"); //Valores inteiros desse modo
        
FaccaoDados[i][DrogasFaccao] = DOF2_GetInt(Contador"DrogasFaccao");
    }
    }   
    return 
1;   

Mano jб uso pra salve jб tem mano mais tipo queria bota pra pegar os players offline jб tem funзгo pra pega os cargos tendeu


Re: Hierarquia Pra pegar players Off - GunnerCoder - 01.04.2018

Quote:
Originally Posted by Dimbalada
Посмотреть сообщение
Mano jб uso pra salve jб tem mano mais tipo queria bota pra pegar os players offline jб tem funзгo pra pega os cargos tendeu
Manda aн o cуdigo do seu sistema de salvamento das facзхes.


Re: Hierarquia Pra pegar players Off - Dimbalada - 01.04.2018

Quote:
Originally Posted by GunnerCoder
Посмотреть сообщение
Manda aн o cуdigo do seu sistema de salvamento das facзхes.
PHP код:
As enum sгo
Dono
,
Lider
Cargo

essas sгo as que define os cargos

A Stock que salva os dados:
PHP код:
DOF2_SetInt(PegarConta(playerid), "Lider"Player[playerid][Lider]);
DOF2_SetInt(PegarConta(playerid), "Cargo"Player[playerid][Cargo]);
DOF2_SetInt(PegarConta(playerid), "Dono"Player[playerid][Dono]); 
A Stock que carrega os dados:
PHP код:
Player[playerid][Lider] = DOF2_GetInt(PegarConta(playerid), "Lider");
Player[playerid][Cargo] = DOF2_GetInt(PegarConta(playerid), "Cargo");
Player[playerid][Dono] = DOF2_GetInt(PegarConta(playerid), "Dono"); 
Agora vou explicar sobre a definiзгo cargo tipo no gamemode a definiзгo cargo й assim:
PHP код:
CMD:setcargo(playeridparams[])
{
    new 
string[500];
    
    if(
Player[playerid][Admin] < 4)
    return 
SCM(playeridCOLOR_ORANGEMSG_CMD_WITHOUT_PERMISSION);
    new 
idlevel;
    if(
sscanf(params"ui"idlevel))
    return 
SCM(playerid0xa4a4a4AA""TAG_USOCORRETO" /setcargo [playerid] [level]");
    switch(
level)
    {
        case 
1//Caso o level digitado seje 1 o player serб fogueteiro.
        
{
            
Player[id][Cargo] = 1;
            
SendFormattedMessage(playerid,COLOR_WHITE,""TAG_SERVER" Vocк setou %s de Fogueteiro.",Nome(id));
            
SendFormattedMessage(id,COLOR_WHITE,""TAG_SERVER" Vocк foi setado de Fogueteiro pelo %s %s."AccountName(playerid), Nome(playerid));
            
format(stringsizeof(string),""TAG_SERVER" o %s %s setou %s de Fogueteiro."AccountName(playerid), Nome(playerid), Nome(id));
            
MensagemAdmin(string);
            
format(stringsizeof(string), ""TAG_SERVER" O %s %s setou %s de Fogueteiro."Nome(playerid), AccountName(playerid), Nome(id));
            
DarCargo(string);
            
SalvarDados(id);
        }
        
        case 
2//Caso o level digitado seje 2 o player serб Vapor.
        
{
            
Player[id][Cargo] = 2;
            
SendFormattedMessage(playerid,COLOR_WHITE,""TAG_SERVER" Vocк setou %s de Vapor.",Nome(id));
            
SendFormattedMessage(id,COLOR_WHITE,""TAG_SERVER" Vocк foi setado de Vapor pelo %s %s."AccountName(playerid), Nome(playerid));
            
format(stringsizeof(string),""TAG_SERVER" o %s %s setou %s de Vapor."AccountName(playerid), Nome(playerid), Nome(id));
            
MensagemAdmin(string);
            
format(stringsizeof(string), ""TAG_SERVER" O %s %s setou %s de Vapor."Nome(playerid), AccountName(playerid), Nome(id));
            
DarCargo(string);
            
SalvarDados(id);
        }
        case 
3//Caso o level digitado seje 3 o player serб Gerente.
        
{
            
Player[id][Cargo] = 3;
            
SendFormattedMessage(playerid,COLOR_WHITE,""TAG_SERVER" Vocк setou %s de Gerente.",Nome(id));
            
SendFormattedMessage(id,COLOR_WHITE,""TAG_SERVER" Vocк foi setado de Gerente pelo %s %s."AccountName(playerid), Nome(playerid));
            
format(stringsizeof(string),""TAG_SERVER" o %s %s setou %s de Gerente."AccountName(playerid), Nome(playerid), Nome(id));
            
MensagemAdmin(string);
            
format(stringsizeof(string), ""TAG_SERVER" O %s %s setou %s de Gerente."Nome(playerid), AccountName(playerid), Nome(id));
            
DarCargo(string);
            
SalvarDados(id);
        }
        case 
4//Caso o level digitado seje 4 o player serб Frente.
        
{
            
Player[id][Cargo] = 4;
            
SendFormattedMessage(playerid,COLOR_WHITE,""TAG_SERVER" Vocк setou %s de Frente.",Nome(id));
            
SendFormattedMessage(id,COLOR_WHITE,""TAG_SERVER" Vocк foi setado de Frente pelo %s %s."AccountName(playerid), Nome(playerid));
            
format(stringsizeof(string),""TAG_SERVER" o %s %s setou %s de Frente."AccountName(playerid), Nome(playerid), Nome(id));
            
MensagemAdmin(string);
            
format(stringsizeof(string), ""TAG_SERVER" O %s %s setou %s de Frente."Nome(playerid), AccountName(playerid), Nome(id));
            
DarCargo(string);
            
SalvarDados(id);
        }
        default: 
//caso o player digitou outro nъmero
        
{
            
SendClientMessage(playerid,-1,""TAG_ERRO" /setcargo [id] level de 0 a 4");
        }
    }
    return 
true;

ai da pra ve mais ou menos a funзгo da definiзгo cargo na enum


Re: Hierarquia Pra pegar players Off - Dimbalada - 01.04.2018

Quote:
Originally Posted by GunnerCoder
Посмотреть сообщение
Manda aн o cуdigo do seu sistema de salvamento das facзхes.
E este й meu codigo de hierarquia atualmente
PHP код:
if(dialogid == DIALOG_HIERARQUIA)
        {
        if(
response)
        {
        new 
gStr[128], info[2048];
        if(
listitem == 0)// Administrador
        
{
        for(new 
iMAX_PLAYERSi++)
          {
              if(
Player[i][Admin] > && Player[i][Faccoes] ==  Player[playerid][Faccoes])
              {
                  
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"Nome(i));
                  
strcat(infogStr);
              }
          }
        
strcat(info" ");
        
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Administradores da Comunidade"info,"Ok","Voltar");
        return 
1;
        }
        if(
listitem == 1)// Lider
        
{
        for(new 
iMAX_PLAYERSi++)
          {
              if(
Player[i][Lider] > && Player[i][Faccoes] ==  Player[playerid][Faccoes])
              {
                  
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"Nome(i));
                  
strcat(infogStr);
              }
          }
        
strcat(info" ");
        
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Lider da Facзгo"info,"Ok","Voltar");
        return 
1;
        }
        if(
listitem == 2)// Donos do morro
        
{
        for(new 
iMAX_PLAYERSi++)
          {
              if(
Player[i][Dono] > && Player[i][Faccoes] ==  Player[playerid][Faccoes])
              {
                  
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"Nome(i));
                  
strcat(infogStr);
              }
          }
        
strcat(info" ");
        
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Dono da Comunidade"info"Ok","Voltar");
        return 
1;
        }
        if(
listitem == 3)// Frentes
        
{
        for(new 
iMAX_PLAYERSi++)
          {
              if(
Player[i][Cargo] > && Player[i][Faccoes] ==  Player[playerid][Faccoes])
              {
                       
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"Nome(i));
                       
strcat(infogStr);
              }
          }
        
strcat(info" ");
        
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Frente da Comunidade"info,"Ok","Voltar");
        return 
1;
        }
        if(
listitem == 4)// Gerentes
        
{
        for(new 
iMAX_PLAYERSi++)
          {
              if(
Player[i][Cargo] > && Player[i][Faccoes] ==  Player[playerid][Faccoes])
              {
                  
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"Nome(i));
                  
strcat(infogStr);
              }
          }
        
strcat(info" ");
        
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Gerente da Comunidade",info,"Ok","Voltar");
        return 
1;
        }
        if(
listitem == 5)// Vaporzгo
        
{
        for(new 
iMAX_PLAYERSi++)
          {
              if(
Player[i][Cargo] > && Player[i][Faccoes] ==  Player[playerid][Faccoes])
              {
                  
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"Nome(i));
                  
strcat(infogStr);
              }
          }
        
strcat(info" ");
        
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Vapor da Comunidade"info,"Ok","Voltar");
        return 
1;
        }
        if(
listitem == 6)// Fogueteiros
        
{
        for(new 
iMAX_PLAYERSi++)
          {
              if(
Player[i][Cargo] > && Player[i][Faccoes] ==  Player[playerid][Faccoes])
              {
                  
format(gStrsizeof(gStr), "{ff0000}» {ffffff}%s\n"Nome(i));
                  
strcat(infogStr);
              }
          }
        
strcat(info" ");
        
ShowPlayerDialog(playerid9999DIALOG_STYLE_LIST,"{ff0000}» {ffffff}Fogueteiro da Comunidade"info,"Ok","Voltar");
        return 
1;
        }
        }
        return 
1;
        }