Novidades

07 março 2012

 Paulinho

[Tutorial] Criando um teleport em dialog com ZCMD.

E aí pessoal.

Eu procurei é não achei nada relacionado a isso, então eu resolvi criar um tutorial, ensinando passo-a-passo de como criar um teleport em dialog usando a include ZCMD, que e praticamente a mais utilizada atualmente.


Introdução
• Primeiramente você terá que ter a include ZCMD, é óbvio, você pode baixa-la clicando aqui.
• É um simples tutorial, muito simples, mais eu fis com o intuito de ajudar os novatos na área.


Iniciando
• Após ter baixado a include, coloque-a na pasta "pawno/include".
• Logo após abra o pawno, que se encontra na pasta anterior que você colocou as includes, clique File e em seguida clique em New, ou se você já tiver o GameMode/FilterScript pronto, basta abrir-lo, clicando em File e logo em seguida em "Open" selecione o seu GameMode/FilterScript e abra-o, é assim faça o comando.

Topo do GameMode/FilterScript

PHP Code:
#include <zcmd> 


Definimos o nosso dialog, que usaremos no teleporte, topo do GameMode/FilterScript.


PHP Code:
#define Tutorial 2728 

Explicação
Usado para definir a nossa dialog. Observação: Cuidado para não ter nenhum dialog além desse definido como "2728".



Definindo a cor, topo do GameMode/FilterScript.

PHP Code:
#define COLOR_RED           0xFF0000FF 

Explicação
Definimos a COR no topo, para usar-mos no nosso dialog.



Agora adicione ao seu GameMode/FilterScript.

PHP Code:
COMMAND:tutorial(playeridparams[])
{
      
ShowPlayerDialog(playeridTutorialDIALOG_STYLE_LIST"Tutorial - Criando teleport por Dialog""Teleporte 1\nTeleporte 2""Selecionar""Sair");
      return 
1;
Ou se você preferir, pode usar dessa forma

PHP Code:
CMD:tutorial(playeridparams[])
{
      
ShowPlayerDialog(playeridTutorialDIALOG_STYLE_LIST"{FF0000}Tutorial - Criando teleport por Dialog""Teleporte 1\nTeleporte 2""Ok""Cancelar");
      return 
1;

Explicação


ShowPlayerDialog - Para executar o dialog.
Playerid - Aparecer o dialog somente o ID que digitou o comando.
Tutorial - Nome do nosso dialog, que definimos no topo.
DIALOG_STYLE_LIST - Dialog usado para listas com opções.
{FF0000} - Cor que usaremos no titulo do nosso dialog.
Tutorial - Criando teleport por Dialog - Titulo que usaremos no nosso dialog.
Teleporte 1 - Primeira opção(teleporte).
\n - Use isso, para pular linhas, ou seja, ir para a próxima linha.
Teleporte 2 - Segunda opção(teleporte).
Ok - Botão usado para selecionar a opção desejada.
Cancelar - Para fechar o dialog, e cancelar.



Agora vá até a public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

PHP Code:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == Tutorial)
    {
        if(
response)
        {
            if(
listitem == 0)
            {
                
SetPlayerInterior(playerid0);
                
SetPlayerPos(playerid,Float:x,Float:y,Float:z);
                
SendClientMessage(playeridCOLOR_RED"[INFO] Você teletransportou para o Teleporte número 1.");
                return 
1;
            }
            else if(
listitem == 1)
            {
                
SetPlayerInterior(playerid0);
                
SetPlayerPos(playerid,Float:x,Float:y,Float:z);
                
SendClientMessage(playeridCOLOR_RED"[INFO] Você teletransportou para o Teleporte número 2.");
            }
        }
    }
    return 
1;
Explicação

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) - Public onde contem todos os dialogs do GameMode/Filterscripter.

if(dialogid == Tutorial) - Colocamos a "palavra-chave" do nosso dialog, que definimos no topo, e para executar o diaog, ao digitar o comando.


if(listitem == 0)
- Primeira opção(Teleporte 1).

else if(listitem == 1) - Segunda opção(Teleporte 2).

SetPlayerPos(playerid,Float: x,Float:y,Float:z) - Teletransporta o player para a posição desejada.

Playerid - Teleportar somente o ID que digitou o comando.
Float: x - A coordenada X para posicionar o jogador.
Float:y - A coordenada Y para posicionar o jogador.
Float:z - A coordenada Z para posicionar o jogador.

SetPlayerInterior(playerid, 0); - Interior/Virtual World que a posição se encontra(em casos de teleporte para algum lugar que não esteja em interior, essa parte e inútil e não precisa ser utilizada).

SendClientMessage(playerid, COLOR_RED, "[INFO] Você teletransportou para o Teste número 1."); - Manda a mensagem, ao jogar que digitou/teleportou para o local.

return 1; - Fechamos a public OnDialogResponse().



Questionario


Pergunta: Como eu posso ver os interiores, ids e cordenadas?
Resposta: Existe um site que disponibiliza todos os interiores, seus IDs e suas posições, clique aqui para acessa-lo.

Pergunta: Como posso fazer um teleporte para um interior?
Resposta: Siga o tutorial, somente mude as posições e o ID para teleportar a algum interior.

Pergunta: Aonde acho cores para colocar em meu dialog?
Resposta: Eu uso em códigos HTML. Clique aqui para ver o site, depois que escolher a cor, copie o segundo número que aparecer, copie somente os números depois do #, após copia-los, coloque ele nesse modelo {CódigoDaCor}, é coloque antes da mensagem do dialog.

Pergunta: Tem como fazer pra mandar uma mensagem para todos que o player foi ao teleporte?
Resposta: Sim, use a função SendClientMessageToAll.

Atenção dispenso, comentários fúteis e ofensas. Se quiser critícas, critíque, mais por favor, seja construtivo com sua critíca. Se quiser dar alguma sugestão de tutoriais, entre outras, faça uma sugestão construtiva, por gentileza.




Créditos: 
 Đeagle - Criação do Tutorial.
Wiki SA-MP - Funções e bases.
Zeex - Criação da include zCMD.

Subscribe to this Blog via Email :