Criando um servidor em dois Idiomas [INICIANTES] -
ZackT - 27.01.2016
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 (
Clique Aqui).
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 <a_samp>
#include <zcmd>
* 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. (Caso queira estudar mais sobre Dialogs "Clique Aqui")
"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.
Re: Criando um servidor em dois Idiomas [INICIANTES] -
ClaudioF - 27.01.2016
Parabйns, isso e simples porem Ъtil !, apenas tente implementar algumas coisas, exemplo:
PHP Code:
CMD:ajuda(playerid, params[])
{
if(linguagem[playerid] = 2;)
{
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;
}
else if(linguagem[playerid] = 1;)
{
SendClientMessage(playerid, AMARELO, "Sua linguagem й inglкs e nгo poderб usar este comando !");
return 1;
}
}
Re: Criando um servidor em dois Idiomas [INICIANTES] -
CaioTJF - 27.01.2016
Se eu fosse fazer um sistema assim, faria desse jeito:
PHP Code:
stock Translation(language, text_PT[], text_EN[])
{
new string[256];
if(language == 1)
format(string, sizeof(string), text_PT);
else if(language == 2)
format(string, sizeof(string), text_EN);
return string;
}
Em uso ficaria: Translation(variavel_language, "Texto em PT", "Texto em Inglкs");
Re: Criando um servidor em dois Idiomas [INICIANTES] -
JonathanFeitosa - 28.01.2016
Quote:
Originally Posted by CaioTJF
Se eu fosse fazer um sistema assim, faria desse jeito:
PHP Code:
stock Translation(language, text_PT[], text_EN[])
{
new string[256];
if(language == 1)
format(string, sizeof(string), text_PT);
else if(language == 2)
format(string, sizeof(string), text_EN);
return string;
}
Em uso ficaria: Translation(variavel_language, "Texto em PT", "Texto em Inglкs");
|
Ficaria melhor um Tradutor feito com HTTP via ****** Translate. Assim ficaria meio "robф" fazer um por um.
Muito bom o tutorial, jб que englobou nгo sу o manuseio de variбveis como tambйm dialogs e comandos.
Re: Criando um servidor em dois Idiomas [INICIANTES] -
[BOPE]Seu._.Madruga - 29.01.2016
Bem legal, sу nгo precisa do params[] HSUAHSAUHSAU :3
PHP Code:
CMD:help(playerid, params[])
{
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;
}
Re: Criando um servidor em dois Idiomas [INICIANTES] -
ZackT - 29.01.2016
Quote:
Originally Posted by ClaudioF
Parabйns, isso e simples porem Ъtil !, apenas tente implementar algumas coisas
|
Obrigado ^^ ! Como eu disse, vai da criatividade de cada um o que fazer com o conhecimento que eu passei hehe..
Quote:
Originally Posted by JonathanFeitosa
Muito bom o tutorial, jб que englobou nгo sу o manuseio de variбveis como tambйm dialogs e comandos.
|
Valeu Jonathan !
Quote:
Originally Posted by [BOPE]Seu._.Madruga
Bem legal, sу nгo precisa do params[] HSUAHSAUHSAU :3
|
Valeu mano ! heuheueh agora que vi que coloquei os params[] valeu por lembrar ^^
Re: Criando um servidor em dois Idiomas [INICIANTES] -
Coringa_Vilao - 29.01.2016
Ficou уtimo parabйns !
Re: Criando um servidor em dois Idiomas [INICIANTES] -
BykiLler - 30.01.2016
po mano para que fazer um trabalho tгo grande desses , nгo seria mais facil desenvolver uma funзгo ?
Quote:
//um exemplo
forward OnDialogResponseTranslate(playerid, dialogid, , text[], textoT[] , L)
public OnDialogResponseTranslate(playerid, dialogid, text[], textoT[] , L)
{
return 1;
}
|
Re: Criando um servidor em dois Idiomas [INICIANTES] -
MtC - 30.01.2016
Boa iniciativa, parabйns!
Re: Criando um servidor em dois Idiomas [INICIANTES] -
InspireD - 30.01.2016
Boa mano, bom tutorial (:
Re: Criando um servidor em dois Idiomas [INICIANTES] -
HardWar - 31.01.2016
Й bem pra iniciantes mesmo xD
Tambйm dб pra fazer algo assim:
pawn Код:
new Textos[][] = {
{"msgAjuda", "Mensagem de ajuda", "Help message"},
{"msgBemvindo", "Bem vindo", "Welcome"}
};
stock Traduzir(playerid, textoid) {
new tamanho = sizeof Textos;
for (new i = 0; i < tamanho; i++) {
if (Textos[i][0] == textoid) {
return Textos[i][Linguagem[playerid]];
}
}
return false;
}
Mas teria que mudar o ID do inglкs pra 2 e o do portuguкs pra 1
Seria entгo possнvel fazer algo do tipo:
pawn Код:
SendClientMessage(playerid, -1, Traduzir(playerid, "msgAjuda"));
Re: Criando um servidor em dois Idiomas [INICIANTES] -
Dayvison_ - 31.01.2016
Quote:
Originally Posted by HardWar
Й bem pra iniciantes mesmo xD
Tambйm dб pra fazer algo assim:
pawn Код:
new Textos[][] = { {"msgAjuda", "Mensagem de ajuda", "Help message"}, {"msgBemvindo", "Bem vindo", "Welcome"} };
stock Traduzir(playerid, textoid) { new tamanho = sizeof Textos; for (new i = 0; i < tamanho; i++) { if (Textos[i][0] == textoid) { return Textos[i][Linguagem[playerid]]; } } return false; }
Mas teria que mudar o ID do inglкs pra 2 e o do portuguкs pra 1
Seria entгo possнvel fazer algo do tipo:
pawn Код:
SendClientMessage(playerid, -1, Traduzir(playerid, "msgAjuda"));
|
Isto nгo vai funcionar, e quando corrigir este cуdigo, o mйtodo vai entupir seu .amx
Re: Criando um servidor em dois Idiomas [INICIANTES] -
ZackT - 31.01.2016
Quote:
Originally Posted by Coringa_Vilao
Ficou уtimo parabйns !
|
Valeu mano !
Quote:
Originally Posted by BykiLler
po mano para que fazer um trabalho tгo grande desses , nгo seria mais facil desenvolver uma funзгo ?
|
Na minha opiniгo nгo tem nada de muito grande nisso kk, sу ficou grande por ser um tutorial e eu expliquei varias coisas mas de resto nгo vi um sistema grande nisso.
Quote:
Originally Posted by InspireD
Boa mano, bom tutorial (:
|
Valeu maninho !
Re: Criando um servidor em dois Idiomas [INICIANTES] -
Hax0rlib - 02.02.2016
- тtimo tutorial, deu pra absorver bastante coisa ainda mais eu que sou iniciante em pawn!
Re: Criando um servidor em dois Idiomas [INICIANTES] -
Jimmmy - 02.02.2016
Parabens
Re: Criando um servidor em dois Idiomas [INICIANTES] -
undername - 02.02.2016
Muito bom
Re: Criando um servidor em dois Idiomas [INICIANTES] -
ZackT - 03.02.2016
Quote:
Originally Posted by Hax0rlib
- тtimo tutorial, deu pra absorver bastante coisa ainda mais eu que sou iniciante em pawn!
|
Fico feliz em ter conseguido te passar isso.
Quote:
Originally Posted by Jimmmy
Parabens
|
Obrigado
Quote:
Originally Posted by undername
Muito bom 
|
Valeu
Re: Criando um servidor em dois Idiomas [INICIANTES] -
DarkBr - 14.04.2017
Vocк estб de parabйns !!!!
Re: Criando um servidor em dois Idiomas [INICIANTES] -
renatog - 14.04.2017
Esse definitivamente nгo й o modo correto de desenvolver um gamemode multi idioma.
Re: Criando um servidor em dois Idiomas [INICIANTES] -
GuilhermeNunes - 14.04.2017
dps eu olho.