SA-MP Forums

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

Reply
 
Thread Tools Display Modes
Old 10/01/2016, 04:03 PM   #1
PreduO
Little Clucker
 
PreduO's Avatar
 
Join Date: Jan 2016
Posts: 15
Reputation: 4
Post Como criar comandos /ir e /trazer usando SSCANF e zCMD

Introdução

Para fazermos os comandos iremos precisar de duas includes, Sscanf2 e zCMD.

Estarei usando o Sscanf2


Downloads:





Após baixar, abra a pasta do Pawno, vá em includes e cole lá os dois arquivos


__________________________________________________ _______________________________________

Iniciando

Antes de tudo, certifique-se de que você adicionou ao começo do seu projeto
Quote:
#include sscanf2
Quote:
#include zcmd
Após se certificar, abra seu arquivo no pawno e escolha um lugar para digitar o comando(Eu uso depois da última public).

Digite:
Quote:
CMD:ir(playerid, params[]) {

// Explicação:

CMD: // Indica como é o comando no caso /ir.

ir: // O comando.

playerid: // Quem digita o comando.

params[]: // Significa que vamos usar parâmetros, esses parâmetro serão utilizados em TODOS o comandos que precisarem de um complemento exemplo " /ir [id do jogador] " /ir = comando, [id do jogador] = complemento do comando, parâmetro.
Continuando..

...Após ter definido o CMD, vamos então criar o que vai ser usado nesse cmd logo abaixo digite:

Quote:
new aName[MAX_PLAYER_NAME]; // Nome de quem usou o comando, no caso o Admin, etc..
new pName[MAX_PLAYER_NAME]; // Nome do player para quem o Admin se teleportou.
new id; // Id do player que vai ser usado no /ir <ID>
new str[128]; // Criamos uma string que vai mandar as mensagens ao player
GetPlayerName(playerid, aName, sizeof(aName)); // Vai pegar o nome do Player que usou o comando.
GetPlayerName(playerid, pName, sizeof(pName)); // Vai pegar o nome de quem foi usado o comando.
Depois de ter feito isso digite logo abaixo:
Quote:

if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF230AFF, "|ERRO| Você não possui acesso para utilizar esse comando!");

// Irá checar se o player está logado Rcon, caso não esteja, irá retornar a mensagem de erro.

if(sscanf(params, "d", id)) return SendClientMessage(playerid, 0xFF230AFF, "|ERRO| Use /ir <ID do jogador>.");

// Irá checar se ele escreveu o comando todo, caso tenha escrito apenas /ir, irá retornar a mensagem de erro.

if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF230AFF, "|ERRO| O ID digitado não está no servidor.");

// Irá checar se ele digitou um ID válido, caso o ID digitado não esteja no server, irá retornar a mensagem de erro.

new Float: x, Float: y, Float: z;
GetPlayerPos(id, x, y, z);
SetPlayerPos(playerid, x, y, z);

// GetPlayerPos, irá pegar a posição do ID. SetPlayerPos, vai setar quem digitou o comando na posição do ID.

format(str, sizeof(str), "|INFO| Você foi ao jogador: %s", pName);
SendClientMessage(playerid, 0x1CD622FF, str);

// Vai enviar á quem digitou o comando a mensagem de que ele foi ao jogador ID, o %s será substituído pelo nome do ID dentro do jogo.

format(str, sizeof(str), "|INFO| O Administrador: %s, foi até você", aName);
SendClientMessage(id, 0x1CD622FF, str);

// Vai enviar á quem o admin se teleportou a mensagem de que o admin foi até ele, os %s será substituído pelo nome do admin dentro do jogo.
Por fim.. digite:
Quote:
return 1;
} // Fecha o Comando, significando que acabou, nunca se esqueça de fecha-lo, caso contrário o pawno não irá entender que o comando acabou.
Pronto, você finalizou o comando /ir <id>. Agora, para o /trazer, basta você copiar e colar abaixo todo o código que acabamos de criar (Sim, copie e cole abaixo todo o comando /ir.)
Após isso vá até a primeira linha do comando copiado e modifique:

De:
Quote:
CMD:ir(playerid, params[]) {
Para:
Quote:
CMD:trazer(playerid, params[]) {


Depois..
Quote:
// Procure por estas linhas:
new Float: x, Float: y, Float: z;
GetPlayerPos(id, x, y, z); // Troque "id" por "playerid"
SetPlayerPos(playerid, x, y, z); // Troque "playerid" por "id"

// Para o /trazer basta trocar o "id" no GetPlayerPos por "playerid" e o SetPlayerPos "playerid" por "id".
Após isso, basta modificar as mensagens!

Fim
Bom, esse é o meu primeiro Post aqui no Fórum. Desde já peço desculpas caso o código não esteja muito aperfeiçoado, comecei com a linguágem Pawn faz apenas 1 Semana..

Aceito Dicas e Críticas
Qualquer dúvida é só me dizer, irei responder logo. ( Obs: Compilei aqui, e foi tudo certo! )

Espero ter ajudado alguém, até mais.

Last edited by Lós; 10/01/2016 at 05:05 PM.
PreduO is offline   Reply With Quote
Old 10/01/2016, 04:39 PM   #2
TatuTM
Big Clucker
 
Join Date: Nov 2015
Posts: 50
Reputation: 0
Default Respuesta: [Tutorial] Como criar comandos /ir e /trazer usando SSCANF e zCMD

Muito bom
TatuTM is offline   Reply With Quote
Old 10/01/2016, 04:40 PM   #3
Ever_SH
Huge Clucker
 
Ever_SH's Avatar
 
Join Date: Sep 2012
Location: RS - Brasil
Posts: 484
Reputation: 15
Default Re: [Tutorial] Como criar comandos /ir e /trazer usando SSCANF e zCMD

Poste Tutorial aki:
http://forum.sa-mp.com/forumdisplay.php?f=56

Recomendo usar assim:
Code:
if(sscanf(params, "u", id))
O comando poderá funcionar com o nick do player, em vez do ID.

Last edited by Ever_SH; 10/01/2016 at 05:48 PM.
Ever_SH is offline   Reply With Quote
Old 10/01/2016, 07:51 PM   #4
PreduO
Little Clucker
 
PreduO's Avatar
 
Join Date: Jan 2016
Posts: 15
Reputation: 4
Default Re: [Tutorial] Como criar comandos /ir e /trazer usando SSCANF e zCMD

Quote:
Originally Posted by Ever_SH View Post
Poste Tutorial aki:
http://forum.sa-mp.com/forumdisplay.php?f=56

Recomendo usar assim:
Code:
if(sscanf(params, "u", id))
O comando poderá funcionar com o nick do player, em vez do ID.
Postarei lá!

Obrigado pela dica, irei usar!
PreduO is offline   Reply With Quote
Old 13/01/2016, 03:24 PM   #5
HaRdiiZin
Gangsta
 
HaRdiiZin's Avatar
 
Join Date: Jan 2015
Location: localhost/HaRdiiZin
Posts: 805
Reputation: 98
Default Re: Como criar comandos /ir e /trazer usando SSCANF e zCMD

Pra quem está começando, seu tutorial está muito bom. +REP
HaRdiiZin is offline   Reply With Quote
Old 13/01/2016, 08:07 PM   #6
GabrielCOP
Big Clucker
 
GabrielCOP's Avatar
 
Join Date: May 2014
Location: São José do Rio Preto - SP
Posts: 154
Reputation: 25
Default Re: Como criar comandos /ir e /trazer usando SSCANF e zCMD

Dica: O seu código só está puxando o jogador, mas não está puxando o veículo dele, caso ele esteja em algum...

Recomendo:

/ir:

pawn Code:
if(IsPlayerInAnyVehicle(playerid))
{
     SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
}

/trazer:

pawn Code:
if(IsPlayerInAnyVehicle(id))
{
     SetVehiclePos(GetPlayerVehicleID(id),x,y,z);
}
GabrielCOP is offline   Reply With Quote
Old 13/01/2016, 08:48 PM   #7
ClaudioF
Huge Clucker
 
ClaudioF's Avatar
 
Join Date: Oct 2014
Location: Marília - SP
Posts: 424
Reputation: 23
Default Re: Como criar comandos /ir e /trazer usando SSCANF e zCMD

Parabéns, excelente tutorial !
ClaudioF is offline   Reply With Quote
Old 13/01/2016, 08:49 PM   #8
tonisantolia
High-roller
 
tonisantolia's Avatar
 
Join Date: Aug 2011
Posts: 1,617
Reputation: 116
Default Re: Como criar comandos /ir e /trazer usando SSCANF e zCMD

Para iniciantes este é um ótimo tutorial, parabéns..
tonisantolia is offline   Reply With Quote
Old 15/01/2016, 09:18 PM   #9
BykiLler
Huge Clucker
 
BykiLler's Avatar
 
Join Date: Oct 2015
Posts: 212
Reputation: 6
Default Re: Como criar comandos /ir e /trazer usando SSCANF e zCMD

Tutorial Muito Massa!
Quote:
/ir

if(sscanf(params, "u", id))
return SendClientMessage(playerid, -1, "/trazer <id/name>");
if(!IsPlayerConnect(id))
return SendCleintMessage(playerid, -1, "Jogador não conectado");
getplayerpos(id, x, y, z);
setplayerpos(playerid, x, y, z);

/trazer
if(sscanf(params, "u", id))
return SendClientMessage(playerid, -1, "/trazer <id/name>");
if(!IsPlayerConnect(id))
return SendCleintMessage(playerid, -1, "Jogador não conectado");
getplayerpos(playerid, x, y, z);
setplayerpos(id, x, y, z);
__________________
Há mais pessoas que desistem, do que pessoas que fracassam!(Henry Ford)
Quote:
[FliterScript]:Sistema de aeroporto V.2(BETA)
[FliterScript]:World Timer
BykiLler is offline   Reply With Quote
Old 15/01/2016, 09:26 PM   #10
ipsLuan
High-roller
 
ipsLuan's Avatar
 
Join Date: Feb 2013
Location: Ilhéus, BA
Posts: 4,395
Reputation: 325
Default Re: Como criar comandos /ir e /trazer usando SSCANF e zCMD

Grácias!
__________________
Brasil New Style
172.106.11.138:7777
ipsLuan is online now   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
[Tutorial] Usando 1 parametro em comandos [ZCMD] AlucardSnow Lançamentos/Releases 17 18/05/2013 05:39 PM
[Tutorial] Usando sscanf em zcmd RebeloX Lançamentos/Releases 58 09/12/2012 02:15 PM


All times are GMT. The time now is 02:13 AM.


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