Tutorial Sistema de AFK
Requesito:
- Código:
Код:
zCMD - Include - Download
Crйditos:
Код:
Zeex - zCMD
Comeзe o Tutorial
Passo 1:Primeiramente seta essa vбriavel Global
Setamos Embaixos atй das includes usa:
pawn Код:
- Código:
#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 Код:
- Código:
CMD:
pawn Код:
- Código:
CMD:afk(playerid, params[])
Passo 4:Agora tem que abrir os parкnteses para comeзar o comando.
pawn Код:
- Código:
CMD:afk(playerid, params[])
{
Passo 5:Vamos comeзar a setar as Vбriaveis Locais.
pawn Код:
- Código:
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 Код:
- Código:
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 Код:
- Código:
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 Код:
- Código:
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 Код:
- Código:
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 Код:
- Código:
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 Код:
- Código:
AFKJogador[playerid] = 1;
Passo 12:Vamo Mandar agora mandar a formataзгo da Linha que fizemos acima mandar para todos
pawn Код:
- Código:
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 Код:
- Código:
return 1;
}
Feito
Comando para Voltar
pawn Код:
- Código:
CMD:voltarafk(playerid, params[])
Passo 1:Sу trocar o nome igual no outro jб expliquei.
pawn Код:
- Código:
new Nome[24], Linhas[100];
Passo 2:Cria as Vбriaveis Locais que nem o de cima.
pawn Код:
- Código:
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 Код:
- Código:
if(AFKJogador[playerid] == 1)
Passo 4:Agora verifica se ele estб AFK e se tiver Continua o comando..
pawn Код:
- Código:
GetPlayerName(playerid, Nome, sizeof(Nome));
Passo 5:Geta o Jogador estб funзгo
pawn Код:
- Código:
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 Код:
- Código:
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 Код:
- Código:
AFKJogador[playerid] = 0;
Passo 8:Agora seta o Jogador para que nгo esteja mais AFK.
pawn Код:
- Código:
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 Код:
- Código:
return 1;
}
Feito
Agora o Comando Todo Pronto
pawn Код:
- Código:
#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.
Creditos: PedexM