Contagem de Contas -
Bruno13 - 17.06.2014
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!
Re: Contagem de Contas -
Delete_ - 17.06.2014
ъtil, parabйns.
Re: Contagem de Contas -
PT - 17.06.2014
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.
Re: Contagem de Contas -
Bruno13 - 17.06.2014
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!
Re: Contagem de Contas -
Dolby - 17.06.2014
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");
}
Re: Contagem de Contas -
Bruno13 - 18.06.2014
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...
Re: Contagem de Contas -
Dolby - 18.06.2014
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.
Re: Contagem de Contas -
Bruno13 - 18.06.2014
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!