[Tutorial] Como Criar um Sistema de AFK(Explicado Bem)
#1

Tutorial Sistema de AFK


Requesito:
Код:
zCMD - Include - Download
Crйditos:
Код:
Zeex - zCMD
Comeзe o Tutorial

Passo 1:Primeiramente seta essa vбriavel Global(Link Do Tutorial de Vбriaveis Crйditos - rjj!)
Setamos Embaixos atй das includes usa:


pawn Код:
#include <a_samp>
#include <zcmd>

new AFKJogador[MAX_PLAYERS];//Coloca ISSO AQUI OOOH <<

public OnGameModeInit()
{
   return 1;
}
Passo 2:Vamos Inicar o Comando Como Sempre(no zCMD) :

pawn Код:
CMD:
Passo 3:Complementaremos com o Comando, Player ID e os Parametros.(Usado tambйm para sscanf2)

pawn Код:
CMD:afk(playerid, params[])
Passo 4:Agora tem que abrir os parкnteses para comeзar o comando.

pawn Код:
CMD:afk(playerid, params[])
{
Passo 5:Vamos comeзar a setar as Vбriaveis Locais.

pawn Код:
new Nome[MAX_PLAYER_NAME], Linha[100];
Passo 6:Explicando, new= Cria uma nova vбriavel, a vбriavel Nome tem [MAX_PLAYER_NAME] que й o nome dele todos(MAXIMO NOME DO JOGADOR)
e a vбriavel Linha й a nossa "String" Que vamos formatar ela, e o "[100]" й o tamanho da cйlula(nгo tenho contador direitinho)
Agora vamo comeзar com os "if"


pawn Код:
if(AFKJogador[playerid] == 1) return SendClientMessage(playerid, -1, "Vocк jб estб AFK!");
Passo 7:o AFKJogador[playerid] == 1 ele verifica se o jogador jб estб afk e returna mandando a mensagem que jб estб AFK
agora verifica se ele nгo estб AFK para ficar AFK!


pawn Код:
if(AFKJogador[playerid] == 0)
Agora verifica se ele nгo estб AFK,e se nгo tiver continua...

Passo 8:Agora Vamo Getar o Nome do jogador

pawn Код:
GetPlayerName(playerid, Nome, sizeof(Nome));
Geta o Jogador estб funзгo

Passo 9:Agora vamo formatar a Frase com a Vбriavel que setamos como "Linha",e criar a frase que ele estб AFK.

pawn Код:
format(Linha, sizeof(Linha), "%s Estб Afk", Nome);
Passo 10:Format= formata a linha
(Linha, sizeof(Linha), = Formata especialmente a Vбriavel "Linha"
%s = Vai ser trocada pelo nome depois, e depois vem a frase...
logo depois da vнrgula vem o "Nome" E a vбriavel que fizemos "Nome" e Getamos o Nome,Vai ser mandada para o %s
Agora vamo deixar ele parado para nгo se mover


pawn Код:
TogglePlayerControllable(playerid, 0);
Passo 11:A Funзгo "TogglePlayerControllable" Define se um jogador pode controlar o seu personagem ou nгo. O jogador tambйm nгo serб capaz de mover a sua cвmera.
e o playerid e o jogador, e define 0 ou 1(0 Ele fica parado e 1 Ele volta a mover)
Agora nos setamos para ele ficar AFK


pawn Код:
AFKJogador[playerid] = 1;
Passo 12:Vamo Mandar agora mandar a formataзгo da Linha que fizemos acima mandar para todos

pawn Код:
SendClientMessageToAll(-1, Linha);
Passo 13:A Funзгo "SendClientMessageToAll" Manda a mensagens para todos,o -1 й a cor(vocк pode alterar na format ou troca o -1.
e manda a formataзгo que fizemos "Linha" enviar
e depois para terminar sу fazer o "return 1;"

pawn Код:
return 1;
}
Feito

Comando para Voltar

pawn Код:
CMD:voltarafk(playerid, params[])
Passo 1:Sу trocar o nome igual no outro jб expliquei.

pawn Код:
new Nome[24], Linhas[100];
Passo 2:Cria as Vбriaveis Locais que nem o de cima.

pawn Код:
if(AFKJogador[playerid] == 0) return SendClientMessage(playerid, -1, "Vocк Nгo estб AFK!");
Passo 3:Agora verifica se ele nгo estб AFK e volta dizendo a mensagem que nгo estб AFK

pawn Код:
if(AFKJogador[playerid] == 1)
Passo 4:Agora verifica se ele estб AFK e se tiver Continua o comando..

pawn Код:
GetPlayerName(playerid, Nome, sizeof(Nome));
Passo 5:Geta o Jogador estб funзгo

pawn Код:
format(Linha, sizeof(Linha), "%s Voltou ao Servidor", Nome);
Passo 6:Agora formata a linha como jб expliquei lб em cima,sу que a muda й a mensagem(que ele voltou)

pawn Код:
TogglePlayerControllable(playerid, 1);
Passo 7:Agora como expliquei lб em cima esta funзгo define se vocк se mova e nгo mova(o 1 Permite que ele possa mover)

pawn Код:
AFKJogador[playerid] = 0;
Passo 8:Agora seta o Jogador para que nгo esteja mais AFK.

pawn Код:
SendClientMessageToAll(-1, Linha);
Passo 9:Agora Manda a Mensagem que ele voltou ao servidor como jб expliquei ele formata a linha e manda para todos

pawn Код:
return 1;
}
Feito

Agora o Comando Todo Pronto

pawn Код:
#include <a_samp>
#include <zcmd>


new AFKJogador[MAX_PLAYERS];

CMD:afk(playerid, params[])
{
    new Nome[24], String[120];
    if(AFKJogador[playerid] == 1) return SendClientMessage(playerid, -1, "Vocк Jб estб AFK");
    if(AFKJogador[playerid] == 0)
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(String, sizeof(String), "%s Estб Afk", Nome);
    TogglePlayerControllable(playerid, 0);
    AFKJogador[playerid] = 1;
    SendClientMessageToAll(-1, String);
    return 1;
}
CMD:voltarafk(playerid, params[])
{
    new Nome[24], String[120];
    if(AFKJogador[playerid] == 0) return SendClientMessage(playerid, -1, "Vocк Nгo estб AFK");
    GetPlayerName(playerid, Nome, sizeof(Nome));
    if(AFKJogador[playerid] == 1)
    format(String, sizeof(String), "%s Voltou ao Servidor", Nome);
    TogglePlayerControllable(playerid, 1);
    AFKJogador[playerid] = 0;
    SendClientMessageToAll(-1, String);
    return 1;
}
Espero Que Vocкs compreendem,eu sei pouco,mas oque eu sei quero compartilhar,foi o meu 1° Tutorial,aceito Crнticas(construtivas) e Sugestхes para a prуxima,Obrigado quem viu atй o final.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)