SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 19/08/2017, 11:52 PM   #1
fxckshzt
Huge Clucker
 
fxckshzt's Avatar
 
Join Date: Jul 2017
Location: 127.0.0.1
Posts: 241
Reputation: 11
Default Como Criar o comando "/asay"

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 Code:
#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 Code:
CMD:asay(playeridparams[])
{
    new 
falar[128];
    new 
string[128];
        new 
nome[MAX_PLAYER_NAME];
        
GetPlayerName(playeridnomeMAX_PLAYER_NAME);
    if(
sscanf(params"s"falar)) return SendClientMessage(playerid, -1,"[CORRETOR]: Use /asay [texto]");
    
format(stringsizeof(string),"[GLOBAL MESSENGER]: %s - %s"Nome(playerid), falar);
    
SendClientMessageToAll(-1string);
    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 Code:
CMD:asay(playeridparams[]) 
⇧ O Nome CMD pode ser substituido por COMMAND;

PHP Code:
playerid 
⇧ refere-se ao player que digitar o comando.

PHP Code:
params[] 
⇧ utilizaremos os parâmetros, então iremos acrescentá-lo na callback do comando.

PHP Code:

⇧ Abri a chave primária do comando!

PHP Code:
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 Code:
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 Code:
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 Code:
GetPlayerName(playeridnomeMAX_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 Code:
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 Code:
format(stringsizeof(string), "[GLOBAL MESSENGER] - %s: %s"nomefalar); 
⇧ 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 -
http://wiki.sa-mp.com/wiki/Format


PHP Code:
SendClientMessageToAll(-1string); 
⇧ 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 Code:
return 1
⇧ Retornamos até o final do comando.

PHP Code:

⇧ Fechamos a chave do comando!

Por fim, a conclusão será essa:

PHP Code:
#include <a_samp>
#include <zcmd>
#include <sscanf>

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

Obrigado!
__________________
- I'm full of all this. I'm dead!

Code:
<a_samp> <zcmd> Sem projetos atualmente. [BASE] GPS EM DIALOG[BR]/[ING] [TUTORIAL] COMO CRIAR O COMANDO "/ASAY" [FILTERSCRIPT] SISTEMA DE COINS

Last edited by fxckshzt; 20/08/2017 at 01:28 AM.
fxckshzt is offline   Reply With Quote
Old 19/08/2017, 11:55 PM   #2
C4rtm4n
Huge Clucker
 
C4rtm4n's Avatar
 
Join Date: Jul 2017
Location: South Park
Posts: 285
Reputation: 7
Default Re: Como Criar o comando "/asay"

Otimo Tutorial.

Dica
Code:
  new falar[128]; 
  new string[128];
por

Code:
new falar[128], string[128];
Quando for utilizar um parâmetro use o proprio ZCMD
http://forum.sa-mp.com/showthread.php?t=437499


poderia ter adicionado o ID

PHP Code:
CMD:asay(playeridparams[]) 

    new 
falar[128],new string[128], new id;
    if(
sscanf(params"s"falar)) return SendClientMessage(playerid, -1,"{FFA500}[CORRETOR]{FFFFFF}: Use /asay [texto]"); 
    
format(stringsizeof(string),"[GLOBAL ADMINISTRAÇÃO]: %s[%d] - %s"Nome(playerid), id,falar); 
    
SendClientMessageToAll(-1string); 
    return 
1

__________________
No Projects At the moment

Faço Scripts por $$ me chame via MP
Scripts for $$ call me via PM
Hago scripts por $$ llame a través de MP
C4rtm4n is online now   Reply With Quote
Old 20/08/2017, 12:24 AM   #3
fxckshzt
Huge Clucker
 
fxckshzt's Avatar
 
Join Date: Jul 2017
Location: 127.0.0.1
Posts: 241
Reputation: 11
Default Re: Como Criar o comando "/asay"

Quote:
Re: Como Criar o comando "/asay"
Otimo Tutorial.

Dica
Code:
new falar[128];
new string[128];
por

Code:
new falar[128], string[128];

Acredito que essa seja uma forma de otimização do GameMode, mas faço separadamente para ficar mais visível e não ocorrer atrapalhações.
__________________
- I'm full of all this. I'm dead!

Code:
<a_samp> <zcmd> Sem projetos atualmente. [BASE] GPS EM DIALOG[BR]/[ING] [TUTORIAL] COMO CRIAR O COMANDO "/ASAY" [FILTERSCRIPT] SISTEMA DE COINS
fxckshzt is offline   Reply With Quote
Old 20/08/2017, 12:39 AM   #4
C4rtm4n
Huge Clucker
 
C4rtm4n's Avatar
 
Join Date: Jul 2017
Location: South Park
Posts: 285
Reputation: 7
Default Re: Como Criar o comando "/asay"

Quote:
Originally Posted by fxckshzt View Post
Acredito que essa seja uma forma de otimização do GameMode, mas faço separadamente para ficar mais visível e não ocorrer atrapalhações.
Sim mas não atrapalha não rs eu dei REP
__________________
No Projects At the moment

Faço Scripts por $$ me chame via MP
Scripts for $$ call me via PM
Hago scripts por $$ llame a través de MP
C4rtm4n is online now   Reply With Quote
Old 20/08/2017, 12:42 AM   #5
fxckshzt
Huge Clucker
 
fxckshzt's Avatar
 
Join Date: Jul 2017
Location: 127.0.0.1
Posts: 241
Reputation: 11
Default Re: Como Criar o comando "/asay"

Quote:
Originally Posted by C4rtm4n View Post
Otimo Tutorial.

Dica
Code:
  new falar[128]; 
  new string[128];
por

Code:
new falar[128], string[128];
Quando for utilizar um parâmetro use o proprio ZCMD
http://forum.sa-mp.com/showthread.php?t=437499


poderia ter adicionado o ID

PHP Code:
CMD:asay(playeridparams[]) 

    new 
falar[128],new string[128], new id;
    if(
sscanf(params"s"falar)) return SendClientMessage(playerid, -1,"{FFA500}[CORRETOR]{FFFFFF}: Use /asay [texto]"); 
    
format(stringsizeof(string),"[GLOBAL ADMINISTRAÇÃO]: %s[%d] - %s"Nome(playerid), id,falar); 
    
SendClientMessageToAll(-1string); 
    return 
1

Algumas vezes me atrapalho, eu crio definições que nem uso muito kkk
__________________
- I'm full of all this. I'm dead!

Code:
<a_samp> <zcmd> Sem projetos atualmente. [BASE] GPS EM DIALOG[BR]/[ING] [TUTORIAL] COMO CRIAR O COMANDO "/ASAY" [FILTERSCRIPT] SISTEMA DE COINS
fxckshzt is offline   Reply With Quote
Old 20/08/2017, 12:48 AM   #6
GuilhermeNunes
Gangsta
 
Join Date: Feb 2017
Posts: 583
Reputation: 8
Default Re: Como Criar o comando "/asay"

Ótimo Tutorial mano +REP
GuilhermeNunes is offline   Reply With Quote
Old 20/08/2017, 01:03 AM   #7
fxckshzt
Huge Clucker
 
fxckshzt's Avatar
 
Join Date: Jul 2017
Location: 127.0.0.1
Posts: 241
Reputation: 11
Default Re: Como Criar o comando "/asay"

Quote:
Originally Posted by GuilhermeNunes View Post
Ótimo Tutorial mano +REP
Obrigado!
__________________
- I'm full of all this. I'm dead!

Code:
<a_samp> <zcmd> Sem projetos atualmente. [BASE] GPS EM DIALOG[BR]/[ING] [TUTORIAL] COMO CRIAR O COMANDO "/ASAY" [FILTERSCRIPT] SISTEMA DE COINS
fxckshzt is offline   Reply With Quote
Old 20/08/2017, 01:13 AM   #8
Jonorusc
Big Clucker
 
Jonorusc's Avatar
 
Join Date: Jun 2017
Location: RN/Brasil
Posts: 143
Reputation: 7
Default Re: Como Criar o comando "/asay"

e um asay dependendo da org seria assim

PHP Code:
#include <a_samp> 
#include <zcmd> 
#include <sscanf> 

CMD:asay(playeridparams[]) 

new 
falar[128]; 
    new 
string[128]; 
    if(
sscanf(params"s"falar)) return SendClientMessage(playerid, -1,"[CORRETOR]: Use /asay [texto]"); 
    if(
JogadorFoAdmin){
    
format(stringsizeof(string),"[GLOBAL ADMINISTRAÇÃO]: %s - %s"Nome(playerid), falar); 
    
SendClientMessageToAll(-1string); 
    }
    if(
SePlayerforSomenteJogador){
    
format(stringsizeof(string),"[GLOBAL MESSENGER]: %s - %s"Nome(playerid), falar); 
    
SendClientMessageToAll(-1string); 
    }
    return 
1

__________________
EverThings in life depends on the how much you wanna eat someone!
Jonorusc is offline   Reply With Quote
Old 20/08/2017, 01:26 AM   #9
fxckshzt
Huge Clucker
 
fxckshzt's Avatar
 
Join Date: Jul 2017
Location: 127.0.0.1
Posts: 241
Reputation: 11
Default Re: Como Criar o comando "/asay"

Quote:
Originally Posted by Jonorusc View Post
e um asay dependendo da org seria assim

PHP Code:
#include <a_samp> 
#include <zcmd> 
#include <sscanf> 

CMD:asay(playeridparams[]) 

new 
falar[128]; 
    new 
string[128]; 
    if(
sscanf(params"s"falar)) return SendClientMessage(playerid, -1,"[CORRETOR]: Use /asay [texto]"); 
    if(
JogadorFoAdmin){
    
format(stringsizeof(string),"[GLOBAL ADMINISTRAÇÃO]: %s - %s"Nome(playerid), falar); 
    
SendClientMessageToAll(-1string); 
    }
    if(
SePlayerforSomenteJogador){
    
format(stringsizeof(string),"[GLOBAL MESSENGER]: %s - %s"Nome(playerid), falar); 
    
SendClientMessageToAll(-1string); 
    }
    return 
1

Caso alguém queira utilizar este tópico para alguma dúvida, aconselho a você corrigir-se.

PHP Code:
CMD:asay(playeridparams[])
{
    new 
falar[128];
    new 
string[128];
    new 
nome[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnomeMAX_PLAYER_NAME);
    if(
sscanf(params"s"falar)) return SendClientMessage(playerid, -1,"[CORRETOR]: Use /asay [texto]");
    if(!
IsPlayerAdmin(playerid))
    {
        
format(stringsizeof(string),"[GLOBAL MESSENGER]: %s - %s"nomefalar);
        
SendClientMessageToAll(-1string);
    }
    if(!
IsPlayerAdmin(playerid) == false)
    {
        
format(stringsizeof(string),"[GLOBAL ADMINISTRAÇÃO]: %s - %s"nomefalar);
        
SendClientMessageToAll(-1string);
    }
    return 
1;

__________________
- I'm full of all this. I'm dead!

Code:
<a_samp> <zcmd> Sem projetos atualmente. [BASE] GPS EM DIALOG[BR]/[ING] [TUTORIAL] COMO CRIAR O COMANDO "/ASAY" [FILTERSCRIPT] SISTEMA DE COINS

Last edited by fxckshzt; 20/08/2017 at 04:23 AM.
fxckshzt is offline   Reply With Quote
Old 20/08/2017, 01:36 AM   #10
IlanZ
High-roller
 
IlanZ's Avatar
 
Join Date: Jul 2016
Location: Brasil
Posts: 1,155
Reputation: 59
Default Re: Como Criar o comando "/asay"

Para um iniciante isso ta magnífico!

REP += 2;
__________________
IlanZ is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Como coloca "Comando Invalido" Para algum comando que nao exista? Neneeiim Português/Portuguese 6 20/08/2017 04:45 AM
[Ajuda] Como criar variavel de CASA "ID" Só ajuda Jonathan4i20 Português/Portuguese 2 16/08/2013 11:33 PM
como criar um sever"how to create a server" Bcio333 Server Support 3 03/12/2008 02:37 PM


All times are GMT. The time now is 06:27 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.