Criando um teleport em dialog com ZCMD. -
Đeagle - 06.03.2012
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
Definimos o nosso dialog, que usaremos no teleporte, topo do GameMode/FilterScript.
PHP код:
#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 код:
#define COLOR_RED 0xFF0000FF
Explicaзгo
Definimos a COR no topo, para usar-mos no nosso dialog.
Agora adicione ao seu GameMode/FilterScript.
PHP код:
COMMAND:tutorial(playerid, params[])
{
ShowPlayerDialog(playerid, Tutorial, DIALOG_STYLE_LIST, "Tutorial - Criando teleport por Dialog", "Teleporte 1\nTeleporte 2", "Selecionar", "Sair");
return 1;
}
Ou se vocк preferir, pode usar dessa forma
PHP код:
CMD:tutorial(playerid, params[])
{
ShowPlayerDialog(playerid, Tutorial, DIALOG_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 код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Tutorial)
{
if(response)
{
if(listitem == 0)
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,Float:x,Float:y,Float:z);
SendClientMessage(playerid, COLOR_RED, "[INFO] Vocк teletransportou para o Teleporte nъmero 1.");
return 1;
}
else if(listitem == 1)
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,Float:x,Float:y,Float:z);
SendClientMessage(playerid, COLOR_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.
Zeex - Criaзгo da include zCMD.
Re: Criando um teleport em dialog com ZCMD. -
Jeffrey_Hatrix Jeffrey_ - 06.03.2012
Quote:
Originally Posted by Đeagle
Agora vб atй a public OnPlayerCommandText() й adicione.
PHP код:
COMMAND:tutorial(playerid, params[])
{
ShowPlayerDialog(playerid, Tutorial, DIALOG_STYLE_LIST, "Tutorial - Criando teleport por Dialog", "Teleporte 1\nTeleporte 2", "Selecionar", "Sair");
return 1;
}
Ou se vocк preferir, pode usar dessa forma
PHP код:
CMD:tutorial(playerid, params[])
{
ShowPlayerDialog(playerid, Tutorial, DIALOG_STYLE_LIST, "{FF0000}Tutorial - Criando teleport por Dialog", "Teleporte 1\nTeleporte 2", "Ok", "Cancelar");
return 1;
}
|
ZCMD nгo usa esta callback, correto...? Aliбs, nгo usa nenhuma callback, й como se fosse uma funзгo a ser definida, entгo fica fora de callbacks...
Podia praticar uma identaзгo gostosinha tambйm e.e
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Tutorial)
{
if(response)
{
if(listitem == 0)
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,Float:x,Float:y,Float:z);
SendClientMessage(playerid, COLOR_RED, "[INFO] Vocк teletransportou para o Teleporte nъmero 1.");
return 1;
}
else if(listitem == 1)
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,Float:x,Float:y,Float:z);
SendClientMessage(playerid, COLOR_RED, "[INFO] Vocк teletransportou para o Teleporte nъmero 2.");
return 1;
}
}
}
return 1;
}
Legal o tutorial, me serб ъtil...
Re: Criando um teleport em dialog com ZCMD. -
GraziFerreira - 06.03.2012
Digo a mesma coisa que o amigo disse acima, ZCMD nгo se usa em callback, pode ser colocado em qualquer canto !
Re: Criando um teleport em dialog com ZCMD. -
Lucas_Alemao - 06.03.2012
LoL q crйditos й esses ai kkkkkkkkkkkkkkk
Re: Criando um teleport em dialog com ZCMD. -
Abravanel - 06.03.2012
pawn Код:
public OnDialogResponse() //cade os paramкtros? rs
O certo seria:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
pawn Код:
return 0; //final da callback OnDialogResponse vocк ta returnando false? ._.'
O certo seria:
pawn Код:
return true;
//ou
return 1;
Foi boa sua intenзгo, mas tutoriais sobre teleport й o que nгo falta nessa board.
Re: Criando um teleport em dialog com ZCMD. -
Hugo_Matos - 06.03.2012
Otimo tutorial
Re: Criando um teleport em dialog com ZCMD. -
BiGThAsE - 06.03.2012
bom Tutorial gostei.
Re: Criando um teleport em dialog com ZCMD. -
Lуs - 07.03.2012
Se for um
FilterScript, deverб sim retornar
false em
OnDialogResponse, caso contrбrio darб conflito com o
OnDialogResponse do
GameMode.
Re: Criando um teleport em dialog com ZCMD. -
DarkScripter - 07.03.2012
Quote:
Originally Posted by Jeffrey_Hatrix Jeffrey_
ZCMD nгo usa esta callback, correto...? Aliбs, nгo usa nenhuma callback, й como se fosse uma funзгo a ser definida, entгo fica fora de callbacks...
Podia praticar uma identaзгo gostosinha tambйm e.e
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == Tutorial) { if(response) { if(listitem == 0) { SetPlayerInterior(playerid, 0); SetPlayerPos(playerid,Float:x,Float:y,Float:z); SendClientMessage(playerid, COLOR_RED, "[INFO] Vocк teletransportou para o Teleporte nъmero 1."); return 1; } else if(listitem == 1) { SetPlayerInterior(playerid, 0); SetPlayerPos(playerid,Float:x,Float:y,Float:z); SendClientMessage(playerid, COLOR_RED, "[INFO] Vocк teletransportou para o Teleporte nъmero 2."); return 1; } } } return 1; }
Legal o tutorial, me serб ъtil...
|
Cada comando do ZCMD й uma callback.
por isto, ele usa callbacks.
(veja mais lendo o suorce do ZCMD).
Re: Criando um teleport em dialog com ZCMD. -
Đeagle - 07.03.2012
Quote:
Originally Posted by DarkScripter
Cada comando do ZCMD й uma callback.
por isto, ele usa callbacks.
(veja mais lendo o suorce do ZCMD).
|
Eu nгo sabia dessa nгo, eu utilizava ele dentro da
public OnPlayerCommandText(playerid, cmdtext[]) . Sу fiquei sabendo depois que traduzi, e lн por completo o tуpico em que ele foi postado.
Valeu ae, por avisar.