SA-MP Forums Archive
[Ajuda] como pegar uma informaзгo salva ? - 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] como pegar uma informaзгo salva ? (/showthread.php?tid=658484)



como pegar uma informaзгo salva ? - Duun - 05.09.2018

bom, to criando um comando aqui pra ver os /lideres online, mais to com dificuldade pra pegar essa informaзгo que ta salva na pasta ORGS dentro do arquivo da Organizaзгo.

Tipo, no meu servidor tem uma pasta na scriptfiles chamada ORGS, lб dentro tem arquivos com os nomes das organizaзхes e dentro desses arquivos o nome do lider. quero que o comando pegue o nome do lider de dentro desses arquivos, entenderam ? nгo to sabendo fazer isso.

Код:
CMD:lideres(playerid)
{
	SendClientMessage(playerid, 0xBFC0C2FF, "(-------------------({FFD700}Lideres Online{BFC0C2})-------------------)");
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
		    new str[80];
  		    format(str, sizeof(str), "ORGS/%s.ini", GetOrgName(i)); // pegar nome da org dos players e ver se tem algum online
		    OrgInfo[i][Lider] = DOF2_GetInt(str, "Lider");

			new stx[120];
			format(stx, sizeof(stx), "Lider: %s, Org: %s", GetNome(i), GetOrgName(i));
			SendClientMessage(playerid, -1, stx);
		}

	}
	return 1;
}
nгo quero que o comando veja qual player й lider sу pelas variбveis do GM, pq se nгo eu faria assim :

Код:
CMD:lideres(playerid)
{
	SendClientMessage(playerid, 0xBFC0C2FF, "(-------------------({FFD700}Lideres Online{BFC0C2})-------------------)");
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
			if(OrgInfo[i][Cargo] == 6) //Verifica se o player й Lнder e formata/envia uma mensagem diferente/destacada
			{
				new str[120];
				format(str, sizeof(str), "Lider: %s, Org: %s", GetNome(i), GetOrgName(i));
				SendClientMessage(playerid, -1, str);
			}
			else if(Player[i][Cargo] == 5)
			{
				new stx[120];
				format(stx, sizeof(stx), "Sub-Lнder: %s, Org: %s", GetNome(i), GetOrgName(i));
				SendClientMessage(playerid, GetPlayerColor(playerid), stx);
			}
  }
	}
	return 1;
}
quero do outro modo pegando directamente do arquvido da pasta, por que vou precisar disso pra fazer todos os outros sistemas do meu servidor entendem ? preciso aprender como puxar uma informaзгo de um arquivo


Re: como pegar uma informaзгo salva ? - vitinhosamp - 05.09.2018

Esse exemplo foi pego em uma GM antiga, mas esta funcional, esta em strcmp, creio que vc saiba colocar em zcmd! E o mesmo caminho!


PHP код:
    if(!strcmp(cmd"/admins"true) || !strcmp(cmd"/mods"true) || !strcmp(cmd"/administradores"true) || !strcmp(cmd"/moderadores"true))
    {
        
SendClientMessage(playeridAZUL_BMO"{FFFFFF}• {00AFCA}Staff's disponнveis:");
        new
            
admladmmdrhlpcrg
        
;
        foreach(
Playeri)
        {
            if(
BMO_GetInt(f(i), "AdminL") == 1)
            {
                if(
aInfo[i][Oculto] == false)
                {
                    
adml ++;
                     
format(stringsizeof(string), "~ %s [ID:%d] {1E90FF}Dono"PlayerName(i), i);
                     
SendClientMessage(playerid, -1string);
                }
            }
            if(
aInfo[i][Admin] == && BMO_GetInt(f(i), "AdminL") == 0)
            {
                if(
aInfo[i][Oculto] == false)
                {
                    
adm ++;
                     
format(stringsizeof(string), "~ %s [ID:%d] {1E90FF}Administrador"PlayerName(i), i);
                     
SendClientMessage(playerid, -1string);
                }
            }
              if(
aInfo[i][Moderador] == && BMO_GetInt(f(i), "AdminL") == 0)
            {
                if(
aInfo[i][Oculto] == false)
                {
                    
mdr ++;
                     
format(stringsizeof(string), "~ %s [ID:%d] {00FF7F}Moderador"PlayerName(i), i);
                     
SendClientMessage(playerid, -1string);
                }
            }
               if(
aInfo[i][Ajudante] == && BMO_GetInt(f(i), "AdminL") == 0)
            {
                if(
aInfo[i][Oculto] == false)
                {
                    
hlp ++;
                     
format(stringsizeof(string), "~ %s [ID:%d] {FFA500}Ajudante"PlayerName(i), i);
                     
SendClientMessage(playerid, -1string);
                }
            }
               if(
aInfo[i][Corregedor] == && BMO_GetInt(f(i), "AdminL") == 0)
            {
                if(
aInfo[i][Oculto] == false)
                {
                    
crg ++;
                     
format(stringsizeof(string), "~ %s [ID:%d] {00BFFF}Corregedor"PlayerName(i), i);
                     
SendClientMessage(playerid, -1string);
                }
            }
        }
        if(
adm == && mdr == && adml == && hlp == && crg == 0) return SendClientMessage(playeridVERMELHO_BMO"Nenhum Administrador(a) online no Momento !");
        return 
1;
    } 
Lebrando que FOREACH e a mesma coisa que
PHP код:
for(new iGetPlayerPoolSize(); i++) 



Re: como pegar uma informaзгo salva ? - ipsLuan - 05.09.2018

Use DOF2_GetString para pegar o nome.
O uso de DOF2_GetInt й apenas para pegar nъmeros.


Re: como pegar uma informaзгo salva ? - Duun - 05.09.2018

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
Use DOF2_GetString para pegar o nome.
O uso de DOF2_GetInt й apenas para pegar nъmeros.
O que tem de errado no meu cуdigo luan ? pq n funciona ?


Re: como pegar uma informaзгo salva ? - ipsLuan - 05.09.2018

Quote:
Originally Posted by Duun
Посмотреть сообщение
O que tem de errado no meu cуdigo luan ? pq n funciona ?
Vбrias coisas...
PHP код:
OrgInfo[i][Lider] = DOF2_GetString(str"Lider"); 
Estou no trabalho agora, quando eu chegar em casa te ajudo melhor.


Re: como pegar uma informaзгo salva ? - Duun - 05.09.2018

ok luan vou esperar sua resposta


Re: como pegar uma informaзгo salva ? - ipsLuan - 05.09.2018

Quote:
Originally Posted by Duun
Посмотреть сообщение
ok luan vou esperar sua resposta
A melhor maneira de se usar й verificando o cargo do jogador com o loop.
Caso queira fazer da outra forma, vocк terб que mudar o a pasta ORGS colocando as organizaзхes por nъmeros, e nгo pelo nome da organizaзгo.


Re: como pegar uma informaзгo salva ? - Duun - 05.09.2018

entendi. vou tentar aqui


Re: como pegar uma informaзгo salva ? - SIZET - 05.09.2018

Nгo sei se essa forma que vc ta fazendo o /Liders vai da certo porйm precisa de um count

Jб que quer fazer o /Liders por SendClientMessage use o foreach й faзa assim:

PHP код:
CMD:liders(playerid)
{
    
SendClientMessage(playerid, -1"* Liders Online");
    new 
count 0;
    
    foreach(
Playeri)
    {
        if(
IsPlayerConnected(i) && OrgInfo[i][Cargo] == 10)
        {
            
format(stxsizeof(stx), "%s (%d)"Nome(i), i);
            
SendClientMessage(playerid, -1stx);
            
count++;
        }
    }
    if(
count == 0)
    {
        
SendClientMessage(playerid, -1"| INFO | Nгo hб nenhum lнder online no momento!");
    }
    return 
1;

@Edit

Se possнvel mande seu GetOrgName pq isso nгo vai funcionar: GetOrgName(i) Tente usar o format para pegar o nome da org.

PHP код:
for(new 0MAX_ORGS; ++i)
{
    
format(Filesizeof(File), "Org/Org%d.ini"i);
    [...] 
OrgInfo[i][NomeOrg]




Re: como pegar uma informaзгo salva ? - Duun - 05.09.2018

Код:
stock GetOrgName(orgid)
{
    new str[30];
    if(orgid == 0)
    {
        str = "Civil";
    }
    if(orgid == 1)
    {
        str = "Polнcia Militar";
    }
    if(orgid == 2)
    {
        str = "Exйrcito";
    }
    if(orgid == 3)
    {
        str = "Polнcia Federal";
    }
    if(orgid == 4)
    {
        str = "Estado Islвmico";
    }
    if(orgid == 5)
    {
        str = "Comando Vermelho";
    }
    if(orgid == 6)
    {
        str = "PCC";
    }
    if(orgid == 7)
    {
        str = "Famнlia do Norte";
    }
    if(orgid == 8)
    {
        str = "Famнlia Groove";
    }
    if(orgid == 9)
    {
        str = "Famнlia Ballas";
    }
    if(orgid == 10)
    {
        str = "Milнcia";
    }
    return str;
}
Esse foreach й include й ?