[Tutorial] Contagem de Contas
#1

Introduзгo

Vocк jб quis contar o total de contas que hб em seu server? Entгo, venho trazer a vocкs um simples contador de arquivos, que serб muito mais eficaz do que ficar contanto uma por uma. A nгo ser que queira muito mais eficaz que isso, entгo pule para MySql

Adicionando ao Gamemode

Vamos primeiramente a parte de explicaзгo das funзхes que serгo utilizadas:

• Salvamento: DOF2 e Dini - Disponibilizarei para dois tipos de salvamentos
• Variбveis: ContasCriadas - Apenas uma variбvel global para armazenar o valor contido no arquivo salvo
• Funзхes Stocks: ObterCC e SalvarCC - Primeira funзгo para obter valor do arquivo e segunda para salvar mudanзas
• Pasta: "scriptfiles/Registros/" - Pasta de destino para salvar o arquivo que conterб o nъmero de contas criadas

Agora vamos a aplicaзгo das funзхes em seu Gamemode:

> Include de Salvamento: Se vocк faz magicas salvando arquivos com as Nativas do sa-mp, parabйns!...Irei trabalhar nesse tutorial com dois tipos de salvamentos bastante utilizados pela maioria, para poder estar usando das funзхes de salvamento DOF2 ou Dini, clique sobre os mesmos para baixar a include. Apуs ter baixado, simplesmente vб б sua pasta do servidor, clique sobre pawno > inlcude > e cole o arquivo. Feito isso, vб ao seu GM, e no topo, junto as demais includes adicione:
pawn Код:
#include <DOF2> //para DOF2
#include <Dini> //para dini
> Variбvel: Localize em seu Gamemode, provavelmente no topo, onde estгo as variбveis que utiliza e junto a elas adicione:
pawn Код:
new ContasCriadas; //Total de contas criadas
> Stocks: Agora, junto as suas funзхes, ou no fim de seu Gamemode, adicione as duas stocks que servirгo para obter e inserir dados no arquivo que conterб o nъmero de contas criadas:
DOF2
pawn Код:
stock ObterCC()
{
    new CC[50];
    format(CC,50,"Registros/TotalAcc.ini");
    if (!DOF2_FileExists(CC))//Checa se existe o arquivo na pasta
    {
        DOF2_CreateFile(CC);//Caso nгo exista, serб criado agora
        DOF2_SetInt(CC,"Numero_de_Contas", 0);//Setando para contas criadas = 0
        return 1;
    }
    else
    {
        ContasCriadas = DOF2_GetInt(CC,"Numero_de_Contas");//Caso exista o arquivo, estб salvando o valor em nossa uma variбvel global
    }
    return 0;
}

stock SalvarCC()
{
    new CC[50];
    format(CC,50,"Registros/TotalAcc.ini");
    if (!DOF2_FileExists(CC))//Checa novamente se existe no momento de salvar
    {
        DOF2_CreateFile(CC);//Caso nгo exista, serб criado agora
        DOF2_SetInt(CC,"Numero_de_Contas", 0);//Setando para contas criadas = 0
        return 1;
    }
    else
    {
        DOF2_SetInt(CC,"Numero_de_Contas", ContasCriadas);//Caso exista o arquivo, estarб atualizando o arquivo referente ao valor da variбvel
    }
    return 0;
}
Dini
pawn Код:
stock ObterCC()
{
    new CC[50];
    format(CC,50,"Registros/TotalAcc.ini");
    if(!dini_Exists(CC))//Checa se existe o arquivo na pasta
    {
        dini_Create(CC);//Caso nгo exista, serб criado agora
        dini_IntSet(CC,"Numero_de_Contas",0);//Setando para contas criadas = 0
        return 1;
    }
    else
    {
        ContasCriadas = dini_Int(CC,"Numero_de_Contas");//Caso exista o arquivo, estб salvando o valor em nossa uma variбvel global
    }
    return 0;
}

stock SalvarCC()
{
    new CC[50];
    format(CC,50,"Registros/TotalAcc.ini");
    if (!dini_Exists(CC))//Checa novamente se existe no momento de salvar
    {
        dini_Create(CC);//Caso nгo exista, serб criado agora
        dini_IntSet(CC,"Numero_de_Contas", 0);//Setando para contas criadas = 0
        return 1;
    }
    else
    {
        dini_IntSet(CC,"Numero_de_Contas", ContasCriadas);//Caso exista o arquivo, estarб atualizando o arquivo referente ao valor da variбvel
    }
    return 0;
}
> Inserindo Funзхes:
OnGameModeInit
E entгo, vб na callback OnGameModeInit, e adicione abaixo a funзгo para chamar a stock para carregar o arquivo "TotalAcc":
pawn Код:
public OnGameModeInit()
{
    ObterCC();
    return 1;
}
OnGameModeExit
Agora vб na callback OnGameModeExit, e insira a funзгo abaixo que servira para salvar o nъmero armazenado na variбvel para o arquivo "TotalAcc":
pawn Код:
public OnGameModeExit()
{
    SalvarCC();
    return 1;
}
Registro
Agora, por fim, vб ao seus sistema de registro e no final do registro do player, insira essas duas funзхes que servirгo para acrescentar mais 1 ao "TotalAcc" e salvar o valor atual variбvel no arquivo:
pawn Код:
ContasCriadas++;
SalvarCC();
> Pasta: E agora, basta adicionar na sua scriptfiles, uma pasta com o nome Registros, e pronto. Se vocк jб tem contas registradas, deverб contar o nъmero e substituir pelo nъmero que o arquivo criar.

> Usando em funзхes: Finalmente, depois de ter tudo certinho no GM, basta adicionar as funзхes chamando pela variбvel ContasCriadas que terб o valor total de contas criadas, abaixo vai um exemplo:
pawn Код:
public OnGameModeInit()
{
    printf("> Total de Contas Registradas [%d]", ContasCriadas);
    return 1;
}
Bom pessoal, й isso, espero que usufruam desse pequeno script, que serб muito ъtil, e qualquer coisa mandem MP ou falem por aqui mesmo! Abraзos e atй mais!
Reply
#2

ъtil, parabйns.
Reply
#3

Para quem usa ini e quer fazer isso tem aqui um bom tutorial, parabens.

Mas claro como vc mesmo dissse, um banco de dados e melhor, contudo se for para contar contas apenas ini tbm serve xD.
Reply
#4

Quote:
Originally Posted by Delete_
Посмотреть сообщение
ъtil, parabйns.
Thanks
Quote:
Originally Posted by PT
Посмотреть сообщение
Para quem usa ini e quer fazer isso tem aqui um bom tutorial, parabens.

Mas claro como vc mesmo dissse, um banco de dados e melhor, contudo se for para contar contas apenas ini tbm serve xD.
Obrigado. Sim essa й a intenзгo!
Reply
#5

Ficou atй legal, mas nгo й necessбrio uma variбvel global pra isto, poderia ter retornado o prуprio valor na stock.

pawn Код:
main()
{
    printf("Temos um total de %d contas registradas!", ObterCC());
}

stock ObterCC()
{
    new CC[50];
    format(CC,50,"Registros/TotalAcc.ini");
    if (!DOF2_FileExists(CC))//Checa se existe o arquivo na pasta
    {
        DOF2_CreateFile(CC);//Caso nгo exista, serб criado agora
        DOF2_SetInt(CC,"Numero_de_Contas", 0);//Setando para contas criadas = 0
        return 0;
    }
    return DOF2_GetInt(CC,"Numero_de_Contas");
}
Reply
#6

Quote:
Originally Posted by Dolby
Посмотреть сообщение
Ficou atй legal, mas nгo й necessбrio uma variбvel global pra isto, poderia ter retornado o prуprio valor na stock.

pawn Код:
main()
{
    printf("Temos um total de %d contas registradas!", ObterCC());
}

stock ObterCC()
{
    new CC[50];
    format(CC,50,"Registros/TotalAcc.ini");
    if (!DOF2_FileExists(CC))//Checa se existe o arquivo na pasta
    {
        DOF2_CreateFile(CC);//Caso nгo exista, serб criado agora
        DOF2_SetInt(CC,"Numero_de_Contas", 0);//Setando para contas criadas = 0
        return 0;
    }
    return DOF2_GetInt(CC,"Numero_de_Contas");
}
Obrigado. Por esse lado sim, mas qual funзгo tu iria usar para guardar o valor das contas criadas? Veja que a variбvel global tambйm й usada para obter o valor do arquivo e tambйm inserir o valor...
Reply
#7

Quote:
Originally Posted by Bruno13
Посмотреть сообщение
Obrigado. Por esse lado sim, mas qual funзгo tu iria usar para guardar o valor das contas criadas? Veja que a variбvel global tambйm й usada para obter o valor do arquivo e tambйm inserir o valor...
Nгo й necessбrio uma variбvel para isto, basta abrir o arquivo, ler seu conteъdo e incrementar .

De qualquer maneira, cada um tem seu modo de programar .


Parabйns.
Reply
#8

Quote:
Originally Posted by Dolby
Посмотреть сообщение
Nгo й necessбrio uma variбvel para isto, basta abrir o arquivo, ler seu conteъdo e incrementar .

De qualquer maneira, cada um tem seu modo de programar .


Parabйns.
Ah, esta certo, nгo tinha visto por esse lado...Mas й, obrigado!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)