Como criar um sistema temporario -
DanDRT - 12.10.2013
Aqui vai um rбpido tutorial de como criar um sistema temporario.
- De uma include para o Salvamento, sera usada no tutorial a DOF2.
- Da include a_samp.
- Da include ConvertDays, Download Aqui.
- De uma include de processamento de comandos, no tutorial irei usar ZCMD + SSCANF.
- Criando o sistema temporario
- Instalaremos as includes no GameMode
pawn Код:
#include <a_samp>
// Usaremos algumas callback's e nativas dela.
#include <ConvertDays>
// Trabalharemos os sistemas temporarios com ela.
#include <DOF2>
// Salvaremos as informaзхes com ela.
#include <zcmd>
// Criaremos os comandos com ela.
#include <sscanf>
// Trabalharemos com os parametros do ZCMD com ela.
- Criando a define TempSystem
pawn Код:
#define TempSystem "/TempSystem/%s.ini" // Troque TempSystem pela pasta em que ficaram os seus sistemas temporarios.
- Criando a variavel que armazenaremos os dados do sistema temporбrio
pawn Код:
new TemporarySystem[MAX_PLAYERS];
- Vamos setar o TemporarySystem assim que ele conectar(Logicamente que se for um sistema de ban ele, nгo continuarб online e precisarб ser kickado.):
pawn Код:
public OnPlayerConnect(playerid) // Esta callback й chamada quando o jogador se conecta ao servidor
{
TemporarySystem[playerid] = 0; // Setaremos o tempo de TemporarySystem para 0, para nгo haver bug's
new string[70], pname[MAX_PLAYER_NAME]; // criaremos uma variavel para armazenar os textos a serem enviados e o nome do jogador.
GetPlayerName(playerid, pname, sizeof(pname)); // Pegamos o nome do jogador
format(string, sizeof(string), TempSystem, pname); // salvamos na string um texto que equivale a um arquivo que esta ou nгo salvo como nickdojogador.ini
if(DOF2_FileExists(string)) // Caso o arquivo exista continuarб
{
TemporarySystem[playerid] = DOF2_GetInt(string, "Dias"); // Pegaremos os dias do TemporarySystem.
if(VerifyExpiredDays(TemporarySystem[playerid])) // Caso tenha expirado
{
SendClientMessage(playerid, -1, "Seu tempo de TemporarySystemName expirou!"); // Enviamos a mensagem ao player.
TemporarySystem[playerid] = 0; TemporarySystem[playerid] = 0; // Setaremos o tempo de TemporarySystem para 0, pois nгo existe mais TemporarySystemName pro playerid.
}
else // caso nгo tenha expirado
{
format(string,sizeof(string), "Vocк tкm %s de TemporarySystemName", ConvertToDays(TemporarySystem[playerid])); // formataremos a mensagem a ser envaida
SendClientMessage(playerid, -1, string); // Enviamos a mensagem
}
}
return 1; // retornamos o valor 1(verdadeiro)
}
- Criando o comando de setagem do sistema temporario
pawn Код:
CMD:settempsystem(playerid, params[]) // definimos um comando, tambem definimos que nele usaremos o playerid e os params(parametros).
{
new id, days, pname[MAX_PLAYER_NAME]; // o id do jogador que receberб o beneficio do sistema temporario, uma tambem para o nome do jogador, e os dias do sistema temporario.
if(sscanf(params, "ud", id, days)) // Pega os parametros e joga nas variaveis.
return SendClientMessage(playerid, 0xFF0000AA, "Uso Correto: /setvip [id] [dias]"); // Envia caso nгo for possivel pegar os parametros e jogar nas variaveis.
if(IsPlayerAdmin(playerid)) // Se o jogador estiver logado na rcon continuarб.
{
if(days < 0) return SendClientMessage(playerid, 0xFF0000AA, "Digite um numero de dias validos!"); // Se os dias forem menores que 0 retornarб este erro.
if(IsPlayerConnected(id)) // Se o jogador (id) estiver conectado continuarб.
{
GetPlayerName(id, pname, sizeof(pname)); // Pegamos o nome do jogador
TemporarySystem[id] = ConvertDays(days); // Daremos ao jogador o total de dias ja convertidos.
new string[85]; // criaremos uma variavel para armazenar os textos a serem enviados.
format(string, sizeof(string), "** Vocк deu %d dias de TemporarySystemName para %s.", days, pname); // pegaremos o texto e enviaremos para string.
SendClientMessage(playerid, -1, string); // Enviaremos a mensagem ao jogador que solicitou o comando
format(string, sizeof(string), "** Vocк recebeu %d dias de TemporarySystemName.", days, pname); // pegaremos o texto e enviaremos para string.
SendClientMessage(playerid, -1, string); // Enviaremos a mensagem ao jogador que solicitou o comando
format(string, sizeof(string), TempSystem, pname); // salvamos na string um texto que equivale a um arquivo que esta ou nгo salvo como nickdojogador.ini
DOF2_CreateFile(TempSystem); // Criaremos o arquivo.
DOF2_SetInt(TempSystem, "Dias", TemporarySystem[id]); // Salvaremos os dias.
DOF2_SaveFile(); // Salvaremos o arquivo.
}
else // Caso nгo esteja logado na conectado...
return SendClientMessage(playerid, 0xFF0000AA, "ERRO: Este jogador nгo estб conectado!"); // retornarб este ERRO.
}
else // Caso nгo esteja logado na Rcon...
return SendClientMessage(playerid, 0xFF0000AA, "ERRO: Vocк nгo estб logado na RCON"); // retornarб este ERRO.
return true; // retornamos que o comando foi executado com sucesso.
}
Se Tiver duvidas, comente, as explicaзхes estгo do lado das funзхes.
- DanDRT - Tutorial
- Willian Luigi - Apoio moral e ajuda na include ConvertDays :3
Re: Como criar um sistema temporario -
shittt - 12.10.2013
Boa !
Re: Como criar um sistema temporario -
PT - 12.10.2013
ainda prefiro o metodo do bruno, acho melhor
here
mesmo assim continue, esta melhorando
parabens
Respuesta: Re: Como criar um sistema temporario -
DanDRT - 12.10.2013
Quote:
Originally Posted by PT
ainda prefiro o metodo do bruno, acho melhor
here
mesmo assim continue, esta melhorando
parabens
|
Vocк leu?
Sistemas temporarios = Vip, Ban e etc.
Re: Respuesta: Re: Como criar um sistema temporario -
PT - 12.10.2013
Quote:
Originally Posted by DanDRT
Vocк leu?
Sistemas temporarios = Vip, Ban e etc.
|
sim eu li, la o sistema do bruno tambem da pra fazer isso cara.
Re: Como criar um sistema temporario -
Juniiro3 - 12.10.2013
Muito bom.
OBS: Para quem nгo usa um processador de comandos e irб seguir esse tutorial, veja meu tutorial
Strcmp (OnPlayerCommandText) e Sscanf para ter um desempenho melhor que strtok
Respuesta: Como criar um sistema temporario -
DanDRT - 12.10.2013
Esqueci de por o sscanf no comando ajeitando ...
Re: Como criar um sistema temporario -
WLSF - 13.10.2013
Bacana, tirando o fato que nгo gosto de dof2.
Respuesta: Re: Como criar um sistema temporario -
DanDRT - 13.10.2013
Quote:
Originally Posted by Willian_Luigi
Bacana, tirando o fato que nгo gosto de dof2.
|
Obrigado, й opcional o uso do sistema de salvamento
Re: Como criar um sistema temporario -
Schocc - 13.10.2013
Bom trabalho parceiro, tem gente aqui que sу tende a evoluir ao contrario de muitos, que ainda estгo naquela de editar gamemodes.
Great Tutorial.