SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

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

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11378
    Moedas : 1031971
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

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

    Mensagem por Weslley_Script Qua 19 Abr 2023 - 16:53

    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:
    Passo 3:Complementaremos com o Comando, Player ID e os Parametros.(Usado tambйm para sscanf2)

    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



    [Tutorial] Como Criar um Sistema de AFK(Explicado Bem) D07Xwqb
    [Tutorial] Como Criar um Sistema de AFK(Explicado Bem) Yjab9HN

    /dannzin#0344 gosta desta mensagem


      Data/hora atual: Qui 2 maio 2024 - 6:51