Bom galera venho trazer aqui meu primeiro tutorial, bem simples porém pode ser de grande utilidade a muitos.
Antes de tudo já aviso que a forma que irei fazer é a forma que aprendi e que acho mais simples.
Explicação
O sistema funcionará da seguinte forma , quando o jogador entrar no servidor irá aparecer um Dialog para que ele escolha a linguagem, a escolha do jogador será armazenada em uma variável global, essa variável não será adicionada na conta do jogador como o score,dinheiro , ou seja, suponhamos que Jogador1 entrou no servidor fez o login e spawnou, nesse momento o Jogador1 escolhe a linguagem que deseja e as configurações serão ajustadas de acordo com sua escolha até que ele deslogue. Quando o Jogador1 entrar no servidor novamente ele escolherá a linguagem que deseja novamente e as configurações que você deseja irão ser atribuídas para ele novamente.
Downloads
Caso queira seguir o tutorial todo e conseguir fazer tudo o que será feito aqui em baixo, baixe a include ZCMD.
Após fazer o download vá na pasta do seu servidor, abra a pasta Pawno e coloque o arquivo dentro da pasta Includes.
Iniciando
* Primeiro Passo : No topo do seu GM(Game-Mode) inclua as includes.
Code:
#include
#include
* Segundo Passo : Após incluir as includes devemos criar a variável Global que armazenará a Linguagem escolhida por cada jogador.
No topo do GM declare :
Code:
new pLinguagem[MAX_PLAYERS] = 0; //Criamos uma váriavel Global com o nome "pLinguagem" para armazenar a linguagem escolhida pelo jogador.
Explicação :
Code:
[MAX_PLAYERS] //Com essa função a variável será criada para cada player que conectar-se ao servidor.
Code:
= 0; //Definimos a variável de início para 0 onde para nós 0 significará NULA
0 = NULA (Sem Linguagem Selecionada)
1 = Inglês (Linguagem EN Selecionada)
2 = Português (Linguagem PT Selecionada)
* Terceiro Passo : Agora iremos definir a Dialog que será usada e a cor que será usada em um comando.
Ainda no topo do GM:
Code:
#define DIALOG_LINGUAGEM 1
Code:
#define amarelo 0xFFFF00FF
Organize seu GM, não deixe tudo junto coloque cores juntas e separadas de Dialogs sempre adicionando comentários em seu GM se possível.
* Quarto Passo : Agora iremos criar a Dialog onde ao spawnar o player irá escolher a linguagem desejada.
Apertando (CTR + F) com o pawno aberto busque pela Public OnPlayerRequestSpawn(playerid) e coloque o código abaixo.
Code:
public OnPlayerRequestSpawn(playerid)
{
ShowPlayerDialog(playerid, DIALOG_LINGUAGEM, DIALOG_STYLE_MSGBOX, "Language/Linguagem",
"Just choose Your Language !\n\
Apenas Escolha sua Linguagem !",
"English", "Português");
return 1;
}
Fiz a Dialog de maneira bem simples, caso queira pode sim implementar cores nas frases, mudar, adicionar ou remover-las.
Explicação :
Code:
public OnPlayerRequestSpawn(playerid) = Dentro dessa Public são colocadas funções para acontecerem assim que o jogador Spawnar.
ShowPlayerDialog = Função para mostrar a Dialog para o Player.
playerid = A Dialog será mostrada para um certo playerid.
DIALOG_LINGUAGEM = O nome da Dialog que será chamada (Definimos ela no topo do GM).
DIALOG_STYLE_MSGBOX = O estilo da Dialog que irá aparecer.
"Language/Linguagem" = Coloque dentro das Aspas o que você deseja como título da Dialog.
"Just choose Your Language !
Apenas Escolha sua Linguagem !" = Coloque dentro das Aspas oque você quer como descrição dentro da Dialog.
\n\ = Use quando quiser passar para a linha de baixo (Quebra de linha).
"English", "Português" = Dentro das primeiras Aspas coloque o nome do Botão1 ena segunda o Botão2.
* Quinto Passo : Agora iremos dar função para os dois botões da Dialog.
Novamente Apertando (CTR + F) busque pela Public public OnDialogResponse e coloque o código abaixo.
Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LINGUAGEM)
{
if(response)
{
linguagem[playerid] = 1;
SendClientMessage(playerid, -1,"{BD0D0D}Try /help , and have a Good Game !");
}else
{
linguagem[playerid] = 2;
SendClientMessage(playerid, -1,"{BD0D0D}Digite /ajuda , e tenha um bom jogo !");
}
}
return 1;
}
Explicação :
Code:
public OnDialogResponse = Nessa public definimos as respostas de cada botão na Dialog.
if(dialogid == DIALOG_LINGUAGEM) = Estrutura condicional para caso for chamada a DIALOG_LINGUAGEM.
if(response) = Estrutura condicional para caso o jogador clicar no primeiro botão (English)
linguagem[playerid] = 1; = Definimos a variável do jogador para 1 (English)
else = Caso não seja no primeiro botão, ou seja, no segundo (Português).
linguagem[playerid] = 2; = Definimos a variável do jogador para 2 (Português)
* Sexto Passo : Aqui será apenas um complemento para iniciantes caso queiram criar o comando /ajuda e /help.
Comando /ajuda :
Code:
CMD:ajuda(playerid)
{
SendClientMessage(playerid, amarelo, "Para ver todos os comandos digite /cmds ou /comandos.");
SendClientMessage(playerid, amarelo, "Para ver as regras do servidor digite /regras.");
SendClientMessage(playerid, amarelo, "Para ver os creditos do servidor digite /creditos.");
return 1;
}
Comando /help:
Code:
CMD:help(playerid)
{
SendClientMessage(playerid, amarelo, "You can see all the commands using /cmds ou /commands.");
SendClientMessage(playerid, amarelo, "You can see the rules writing /rules.");
SendClientMessage(playerid, amarelo, "For see the credits of this server use /credits.");
return 1;
}
Explicação Final
Você pode implementar muito mais esse sistema, eu apenas lhe dei a base mas você pode usar a variável como restrição de alguns comandos, exemplo (Pessoas que escolheram PT não podem usar comandos da área EN) isso é você quem decide ! Espero que façam bom proveito disso. Como foi meu primeiro tutorial e ainda estou estudando MUITO pawn, vejo que tenho muita coisa a aprender pela frente, portanto quaisquer críticas são Bem-Vindas desde que sejam para crescimento. Qualquer dúvida poste e eu tentarei ajudar.
Créditos
- Tutorial feito por mim ZackT.
- Retirei a ideia do SA-MP DayZ pois foi o primeiro servidor que vi com esse sistema.
- Ao Jonathan Feitosa, pois comentei o tutorial dele aqui.
Reajustes serão sempre feitos.
Antes de tudo já aviso que a forma que irei fazer é a forma que aprendi e que acho mais simples.
Explicação
O sistema funcionará da seguinte forma , quando o jogador entrar no servidor irá aparecer um Dialog para que ele escolha a linguagem, a escolha do jogador será armazenada em uma variável global, essa variável não será adicionada na conta do jogador como o score,dinheiro , ou seja, suponhamos que Jogador1 entrou no servidor fez o login e spawnou, nesse momento o Jogador1 escolhe a linguagem que deseja e as configurações serão ajustadas de acordo com sua escolha até que ele deslogue. Quando o Jogador1 entrar no servidor novamente ele escolherá a linguagem que deseja novamente e as configurações que você deseja irão ser atribuídas para ele novamente.
Downloads
Caso queira seguir o tutorial todo e conseguir fazer tudo o que será feito aqui em baixo, baixe a include ZCMD.
Após fazer o download vá na pasta do seu servidor, abra a pasta Pawno e coloque o arquivo dentro da pasta Includes.
Iniciando
* Primeiro Passo : No topo do seu GM(Game-Mode) inclua as includes.
Code:
#include
#include
* Segundo Passo : Após incluir as includes devemos criar a variável Global que armazenará a Linguagem escolhida por cada jogador.
No topo do GM declare :
Code:
new pLinguagem[MAX_PLAYERS] = 0; //Criamos uma váriavel Global com o nome "pLinguagem" para armazenar a linguagem escolhida pelo jogador.
Explicação :
Code:
[MAX_PLAYERS] //Com essa função a variável será criada para cada player que conectar-se ao servidor.
Code:
= 0; //Definimos a variável de início para 0 onde para nós 0 significará NULA
0 = NULA (Sem Linguagem Selecionada)
1 = Inglês (Linguagem EN Selecionada)
2 = Português (Linguagem PT Selecionada)
* Terceiro Passo : Agora iremos definir a Dialog que será usada e a cor que será usada em um comando.
Ainda no topo do GM:
Code:
#define DIALOG_LINGUAGEM 1
Code:
#define amarelo 0xFFFF00FF
Organize seu GM, não deixe tudo junto coloque cores juntas e separadas de Dialogs sempre adicionando comentários em seu GM se possível.
* Quarto Passo : Agora iremos criar a Dialog onde ao spawnar o player irá escolher a linguagem desejada.
Apertando (CTR + F) com o pawno aberto busque pela Public OnPlayerRequestSpawn(playerid) e coloque o código abaixo.
Code:
public OnPlayerRequestSpawn(playerid)
{
ShowPlayerDialog(playerid, DIALOG_LINGUAGEM, DIALOG_STYLE_MSGBOX, "Language/Linguagem",
"Just choose Your Language !\n\
Apenas Escolha sua Linguagem !",
"English", "Português");
return 1;
}
Fiz a Dialog de maneira bem simples, caso queira pode sim implementar cores nas frases, mudar, adicionar ou remover-las.
Explicação :
Code:
public OnPlayerRequestSpawn(playerid) = Dentro dessa Public são colocadas funções para acontecerem assim que o jogador Spawnar.
ShowPlayerDialog = Função para mostrar a Dialog para o Player.
playerid = A Dialog será mostrada para um certo playerid.
DIALOG_LINGUAGEM = O nome da Dialog que será chamada (Definimos ela no topo do GM).
DIALOG_STYLE_MSGBOX = O estilo da Dialog que irá aparecer.
"Language/Linguagem" = Coloque dentro das Aspas o que você deseja como título da Dialog.
"Just choose Your Language !
Apenas Escolha sua Linguagem !" = Coloque dentro das Aspas oque você quer como descrição dentro da Dialog.
\n\ = Use quando quiser passar para a linha de baixo (Quebra de linha).
"English", "Português" = Dentro das primeiras Aspas coloque o nome do Botão1 ena segunda o Botão2.
* Quinto Passo : Agora iremos dar função para os dois botões da Dialog.
Novamente Apertando (CTR + F) busque pela Public public OnDialogResponse e coloque o código abaixo.
Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LINGUAGEM)
{
if(response)
{
linguagem[playerid] = 1;
SendClientMessage(playerid, -1,"{BD0D0D}Try /help , and have a Good Game !");
}else
{
linguagem[playerid] = 2;
SendClientMessage(playerid, -1,"{BD0D0D}Digite /ajuda , e tenha um bom jogo !");
}
}
return 1;
}
Explicação :
Code:
public OnDialogResponse = Nessa public definimos as respostas de cada botão na Dialog.
if(dialogid == DIALOG_LINGUAGEM) = Estrutura condicional para caso for chamada a DIALOG_LINGUAGEM.
if(response) = Estrutura condicional para caso o jogador clicar no primeiro botão (English)
linguagem[playerid] = 1; = Definimos a variável do jogador para 1 (English)
else = Caso não seja no primeiro botão, ou seja, no segundo (Português).
linguagem[playerid] = 2; = Definimos a variável do jogador para 2 (Português)
* Sexto Passo : Aqui será apenas um complemento para iniciantes caso queiram criar o comando /ajuda e /help.
Comando /ajuda :
Code:
CMD:ajuda(playerid)
{
SendClientMessage(playerid, amarelo, "Para ver todos os comandos digite /cmds ou /comandos.");
SendClientMessage(playerid, amarelo, "Para ver as regras do servidor digite /regras.");
SendClientMessage(playerid, amarelo, "Para ver os creditos do servidor digite /creditos.");
return 1;
}
Comando /help:
Code:
CMD:help(playerid)
{
SendClientMessage(playerid, amarelo, "You can see all the commands using /cmds ou /commands.");
SendClientMessage(playerid, amarelo, "You can see the rules writing /rules.");
SendClientMessage(playerid, amarelo, "For see the credits of this server use /credits.");
return 1;
}
Explicação Final
Você pode implementar muito mais esse sistema, eu apenas lhe dei a base mas você pode usar a variável como restrição de alguns comandos, exemplo (Pessoas que escolheram PT não podem usar comandos da área EN) isso é você quem decide ! Espero que façam bom proveito disso. Como foi meu primeiro tutorial e ainda estou estudando MUITO pawn, vejo que tenho muita coisa a aprender pela frente, portanto quaisquer críticas são Bem-Vindas desde que sejam para crescimento. Qualquer dúvida poste e eu tentarei ajudar.
Créditos
- Tutorial feito por mim ZackT.
- Retirei a ideia do SA-MP DayZ pois foi o primeiro servidor que vi com esse sistema.
- Ao Jonathan Feitosa, pois comentei o tutorial dele aqui.
Reajustes serão sempre feitos.