[Ajuda] como pegar uma informaзгo salva ?
#1

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
Reply
#2

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++) 
Reply
#3

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

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 ?
Reply
#5

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.
Reply
#6

ok luan vou esperar sua resposta
Reply
#7

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.
Reply
#8

entendi. vou tentar aqui
Reply
#9

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]

Reply
#10

Код:
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 й ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)