SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 27/01/2016, 03:11 AM   #1
ZackT
Little Clucker
 
Join Date: Nov 2014
Posts: 33
Reputation: 3
Post Criando um servidor em dois Idiomas [INICIANTES]

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.
__________________

Last edited by ZackT; 29/01/2016 at 02:44 AM.
ZackT is offline   Reply With Quote
Old 27/01/2016, 04:41 PM   #2
ClaudioF
Huge Clucker
 
ClaudioF's Avatar
 
Join Date: Oct 2014
Location: Marília - SP
Posts: 424
Reputation: 23
Default Re: Criando um servidor em dois Idiomas [INICIANTES]

Parabéns, isso e simples porem Útil !, apenas tente implementar algumas coisas, exemplo:

PHP Code:
CMD:ajuda(playeridparams[])
{
  if(
linguagem[playerid] = 2;)
  {
    
SendClientMessage(playeridamarelo"Para ver todos os comandos digite /cmds ou /comandos.");
    
SendClientMessage(playeridamarelo"Para ver as regras do servidor digite /regras.");
    
SendClientMessage(playeridamarelo"Para ver os creditos do servidor digite /creditos.");
    return 
1;
  }
   else if(
linguagem[playerid] = 1;)
  {
    
SendClientMessage(playeridAMARELO"Sua linguagem é inglês e não poderá usar este comando !");
    return 
1;
  }

ClaudioF is offline   Reply With Quote
Old 27/01/2016, 07:52 PM   #3
CaioTJF
Gangsta
 
CaioTJF's Avatar
 
Join Date: Sep 2012
Location: Rio de Janeiro
Posts: 545
Reputation: 164
Default Re: Criando um servidor em dois Idiomas [INICIANTES]

Se eu fosse fazer um sistema assim, faria desse jeito:

PHP Code:
stock Translation(languagetext_PT[], text_EN[])
{
    new 
string[256];
    
    if(
language == 1)
        
format(stringsizeof(string), text_PT);
    else if(
language == 2)
        
format(stringsizeof(string), text_EN);
        
    return 
string;

Em uso ficaria: Translation(variavel_language, "Texto em PT", "Texto em Inglês");
__________________
owner
IP: server.gtatorcidas.net:2009 / Website: www.gtatorcidas.net



CaioTJF is offline   Reply With Quote
Old 28/01/2016, 11:08 PM   #4
JonathanFeitosa
High-roller
 
Join Date: Jan 2011
Location: Manaus/AM
Posts: 2,761
Reputation: 351
Default Re: Criando um servidor em dois Idiomas [INICIANTES]

Quote:
Originally Posted by CaioTJF View Post
Se eu fosse fazer um sistema assim, faria desse jeito:

PHP Code:
stock Translation(languagetext_PT[], text_EN[])
{
    new 
string[256];
    
    if(
language == 1)
        
format(stringsizeof(string), text_PT);
    else if(
language == 2)
        
format(stringsizeof(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.
__________________
Desenvolvedor Full Stack
Instagram: jonathanfeitosajfs
JonathanFeitosa is offline   Reply With Quote
Old 29/01/2016, 12:24 AM   #5
[BOPE]Seu._.Madruga
High-roller
 
[BOPE]Seu._.Madruga's Avatar
 
Join Date: Nov 2011
Location: São Paulo - SP
Posts: 1,079
Reputation: 79
Default Re: Criando um servidor em dois Idiomas [INICIANTES]

Bem legal, só não precisa do params[] HSUAHSAUHSAU :3
PHP Code:
CMD:help(playeridparams[])
{
  
SendClientMessage(playeridamarelo"You can see all the commands using /cmds ou /commands.");
  
SendClientMessage(playeridamarelo"You can see the rules writing /rules.");
  
SendClientMessage(playeridamarelo"For see the credits of this server use /credits.");
  return 
1;

__________________

_\|/_ Ei vey é Nozes _\|/_

Nick: LeozinIMPERATUS

Patente: Coronel 3

Página Oficial: Leonardo " lbs " Bradoks » www.facebo ok.com/leobradoks
Página de Programação: Programação em Foco » www.facebo ok.com/groups/ProgramacaoEmFoco
Atualmente focado ao competitivo de Point Blank
Email | Site Pessoal | Skype | Discord
O topo da inteligência é alcançar a humildade
[BOPE]Seu._.Madruga is offline   Reply With Quote
Old 29/01/2016, 02:43 AM   #6
ZackT
Little Clucker
 
Join Date: Nov 2014
Posts: 33
Reputation: 3
Default Re: Criando um servidor em dois Idiomas [INICIANTES]

Quote:
Originally Posted by ClaudioF View Post
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 View Post
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 View Post
Bem legal, só não precisa do params[] HSUAHSAUHSAU :3
Valeu mano ! heuheueh agora que vi que coloquei os params[] valeu por lembrar ^^
__________________
ZackT is offline   Reply With Quote
Old 29/01/2016, 12:21 PM   #7
Coringa_Vilao
High-roller
 
Coringa_Vilao's Avatar
 
Join Date: Sep 2012
Location: Brasil
Posts: 1,113
Reputation: 8
Default Re: Criando um servidor em dois Idiomas [INICIANTES]

Ficou ótimo parabéns !
__________________
[Projeto] Project Cloud [ZombieXP] | NEW MOD !
http://forum.sa-mp.com/showthread.php?p=3713519


Coringa_Vilao is offline   Reply With Quote
Old 30/01/2016, 10:54 PM   #8
BykiLler
Huge Clucker
 
BykiLler's Avatar
 
Join Date: Oct 2015
Posts: 211
Reputation: 6
Default Re: Criando um servidor em dois Idiomas [INICIANTES]

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;
}
__________________
Há mais pessoas que desistem, do que pessoas que fracassam!(Henry Ford)
Quote:
[FliterScript]:Sistema de aeroporto V.2(BETA)
[FliterScript]:World Timer
BykiLler is offline   Reply With Quote
Old 30/01/2016, 11:01 PM   #9
MtC
Big Clucker
 
MtC's Avatar
 
Join Date: Nov 2014
Location: Guarulhos - SP
Posts: 76
Reputation: 53
Default Re: Criando um servidor em dois Idiomas [INICIANTES]

Boa iniciativa, parabéns!
MtC is offline   Reply With Quote
Old 30/01/2016, 11:42 PM   #10
InspireD
Little Clucker
 
InspireD's Avatar
 
Join Date: Jan 2016
Posts: 13
Reputation: 11
Default Re: Criando um servidor em dois Idiomas [INICIANTES]

Boa mano, bom tutorial (:
__________________
InspireD is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[FilterScript] [FS/TuT] Criando FilterScript -Iniciantes- zSuYaNw Lançamentos/Releases 16 09/04/2020 10:46 PM
[Tutorial] Criando Um Gamemode [GM] Do 0 (Iniciantes) Completo. i7Core Lançamentos/Releases 15 07/12/2013 02:54 PM
[Tutorial] Criando GM com 2 ou mais idiomas [XPG]MarlonCS Lançamentos/Releases 19 14/07/2012 09:07 PM
[Tutorial] Iniciantes: Criando Comandos Simples Dr_Pawno Lançamentos/Releases 16 15/07/2011 06:51 PM


All times are GMT. The time now is 02:41 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.