SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

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

SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 13 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 o comando "/asay"

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


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

    [Tutorial] Como Criar o comando "/asay" Empty [Tutorial] Como Criar o comando "/asay"

    Mensagem por Weslley_Script Sex 24 Mar 2023 - 19:29

    Bom, sou Iniciante em Pawn, mas quero ajudar vocкs, vim estudando e desenvolvendo este comando, e por fim, consegui!
    Caso minha explicaзгo nгo esteja boa ou entendнvel pelo pъblico, me desculpem, Pois й o meu primeiro tutorial. Aceito Crнticas e Sugestхes!

    Explicaзгo:


    Incluir no topo do seu GameMode:
    PHP код:

    Código:
    #include <a_samp>    
    #include <zcmd>
    #include <sscanf> 

    Explicaзгo da aзгo:

    As includes no pawn, sгo chamadas de diretivas.
    Nуs incluнmos a biblioteca da a_samp(essencial para todo o seu gamemode), zcmd(uma fуrmula diferente de produзгo de comandos), sscanf(quebra a linha das strings nas quais o remetente deseje usar).



    Prosseguindo...
    PHP код:

    Código:
    CMD:asay(playerid, params[])
    {
        new falar[128];
        new string[128];
            new nome[MAX_PLAYER_NAME];
            GetPlayerName(playerid, nome, MAX_PLAYER_NAME);
        if(sscanf(params, "s", falar)) return SendClientMessage(playerid, -1,"[CORRETOR]: Use /asay [texto]");
        format(string, sizeof(string),"[GLOBAL MESSENGER]: %s - %s", Nome(playerid), falar);
        SendClientMessageToAll(-1, string);
        return 1;


    Explicaзгo da aзгo:

    Criamos o comando, dando inicializaзгo a sua primeira parte. na qual й dita pela biblioteca da include zcmd.
    PHP код:

    Código:
    CMD:asay(playerid, params[]) 

    ⇧ O Nome CMD pode ser substituido por COMMAND;
    PHP код:

    Código:
    playerid 

    ⇧ refere-se ao player que digitar o comando.
    PHP код:

    Código:
    params[] 

    ⇧ utilizaremos os parвmetros, entгo iremos acrescentб-lo na callback do comando.
    PHP код:

    Código:


    ⇧ Abri a chave primбria do comando!
    PHP код:

    Código:
    new falar[128]; 

    ⇧ new й uma variбvel, e falar й o nome que damos a variбvel, [128] й o nъmero de caracteres que queremos na variбvel.
    PHP код:

    Código:
    new string[128]; 

    ⇧ new й uma variбvel, e string й o nome que damos a variбvel, [128] й o nъmero de caracteres que queremos na variбvel.
    PHP код:

    Código:
    new nome[MAX_PLAYER_NAME]; 

    ⇧ Criei a variбvel que significa o nome do player. O "MAX_PLAYER_NAME" й um complemento para o player.

    PHP код:

    Código:
    GetPlayerName(playerid, nome, MAX_PLAYER_NAME); 

    ⇧ GetPlayerName й para adicionar o nome do player atй esta variбvel, playerid й o player que digita o comando. "nome" й o nome da variбvel que damos(new nome[MAX_PLAYER_NAME]). MAX_PLAYER_NAME й o nъmero de caracteres que podem conter o nome.
    PHP код:

    Código:
    if(sscanf(params, "s", falar)) return SendClientMessage(playerid, -1,"{FF0000}ERRO: Utilize /asay [mensagem]"); 

    ⇧ if й verificaзгo. sscanf й a include que irб quebrar a string. o nosso comando vai utilizar os parвmetros, entгo vamos acrescentб-lo. "s" й como se fosse a quebra da linha, pular a linha no caso. falar й a variбvel que nуs criamos, ou seja, estamos utilizando a variбvel falar para ser a fala do player. fechamos todos os parenteses que foram abertos. demos um retorno caso o player digite somente "/asay". Colocamos para enviar uma mensagem ao cliente. playerid й a mesma coisa o player que estб praticando o comando. -1 й a cor branca do pawn. abrimos as aspas de palavras chave. colocamos o nosso texto dentro das aspas e fechamos.
    Obs.: Esse {FF0000} й a cor vermelha em HTML. Caso queiram checar - 
    http://www.flextool.com.br/tabela_cores.html

    PHP код:

    Código:
    format(string, sizeof(string), "[GLOBAL MESSENGER] - %s: %s", nome, falar); 

    ⇧ Format й a formataзгo da string, ou seja vocк estб formatando o valor da string. string й o nome da variбvel que vamos formatar. sizeof й o tamanho que vamos usar, que sгo os caracteres que colocamos do lado. string й o nome da variбvel que vamos formatar. Abrimos as aspas de palavras chave. E colocamos as variбveis que definimos para fazer parte da formataзгo da variбvel. Fechamos os parenteses e finalizamos com o ponto e vнrgula.
    Obs.: O Que sгo esses "%s"? Isso sгo formatos de strings ou coeficientes nъmeros.
    Aconselho estudar o tуpico da Wiki-Samp -
     
    https://scriptsamp.forumeiros.com/t48165-codigo-utilformat#97757
    PHP код:

    Código:
    SendClientMessageToAll(-1, string); 

    ⇧ SendClientMessageToAll й para mandar uma mensagem para todos do servidor. Definimos a cor da mensagem em -1 (branco do pawn). Colocamos a formataзгo da string para ser a mensagem, no caso: Administraзгo Global - %s: %s.
    PHP код:

    Código:
    return 1; 

    ⇧ Retornamos atй o final do comando.
    PHP код:

    Código:


    ⇧ Fechamos a chave do comando!

    Por fim, a conclusгo serб essa:
    PHP код:

    Código:
    #include <a_samp>
    #include <zcmd>
    #include <sscanf>
    CMD:asay(playerid, params[])
    {
        new falar[128];
        new string[128];
        new nome[MAX_PLAYER_NAME];
        GetPlayerName(playerid, nome, MAX_PLAYER_NAME);
        if(sscanf(params, "s", falar)) return SendClientMessage(playerid, -1,"[CORRETOR]: Use /asay [texto]");
        format(string, sizeof(string),"[GLOBAL MESSENGER]: %s - %s", Nome(playerid), falar);
        SendClientMessageToAll(-1, string);
        return 1;


    Obrigado!
    Creditos: fxckshzt



    [Tutorial] Como Criar o comando "/asay" D07Xwqb
    [Tutorial] Como Criar o comando "/asay" Yjab9HN

      Data/hora atual: Qui 7 Nov 2024 - 18:44