Introdução
Para fazermos os comandos iremos precisar de duas includes, Sscanf2 e zCMD.
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 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 // 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
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
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.