[Ajuda] Idioma duplo
#1

Olб, alguem sabe pq esse sistema de idioma dupla quando й chamado, o sistema de Registro/Login tambem e chamado junto com ele!

peguei esse sistema: https://sampforum.blast.hk/showthread.php?tid=359131

e tentei adaptar a GM que estou editando! ficou assim:

Quote:

enum InfoPlayer {

Senha,
Skin,
Score,
Dinheiro,
Admin,
pBackpack,
pSlots,
Matou,
Morreu,
pQuebrado,
pAdmin,
pIdioma,
pSexo,
pFome,
pSkin,
pRespawn,
pSede,
pDTime

};
new Player[MAX_PLAYERS][InfoPlayer];/QUOTE]

PlayerSpawn. (Em qualquer callback que eu coloque, ele ira chamar o sistema de Login/Registro tambem!
Quote:

{
new nome[32];
new strdialog[512];
GetPlayerName(playerid,nome,sizeof nome);
format(arquivo, sizeof arquivo, "lang/%s.ini",nome);
Player[playerid][pIdioma] = DOF2_GetInt(arquivo,"Idioma"); // Puxa o idioma do arquivo
if(Player[playerid][pIdioma]==0) { // aqui verifica se o player nгo escolheu o idioma ainda (=0)
format(strdialog, sizeof(strdialog),"%s%s",strdialog, "Selecione seu idioma/Select your langague");
return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Idioma/Langague", strdialog, "Portuguкs", "English");
}
}

DialogResponse:

Quote:

{
if(dialogid == 5)
{

new nome[MAX_PLAYER_NAME];

format(arquivo, sizeof arquivo, "lang/%s.ini",nome);
if(response == 0) { // Inglкs
Player[playerid][pIdioma]=2; // seta o idioma do player para Inglкs (=2/EN)
DOF2_SetInt(arquivo,"Idioma",Player[playerid][pIdioma]); // salva idioma escolhido no arquivo
DOF2_SaveFile();

}
if(response == 1) { // Portuguкs
Player[playerid][pIdioma]=1; // seta o idioma do player para Portuguкs (=1/PT)
DOF2_SetInt(arquivo,"Idioma",Player[playerid][pIdioma]); // salva idioma escolhido no arquivo

}
}

A GM que estou editando ela ja tem o sistema de idioma duplo! so nao tem o dialog para o player escolher. dai tu tentando emenda os 2 '-'
Reply
#2

Cara cria um sistema eu criei й muito facil....
Reply
#3

o sistema ja tem. so nao sei pq ta dando conflito com o sistema de login/registro!
Reply
#4

Recomendo fazer o seu do seu JEITO dps mesclar com o seu sistema...

@Edit
aqui
Eu aprendi a fazer o meu vendo isso
https://sampforum.blast.hk/showthread.php?tid=599531
Reply
#5

pAdmin
Admin
pra que duas variavel Admin ?
Reply
#6

Quote:
Originally Posted by GuilhermeNunes
Посмотреть сообщение
pAdmin
Admin
pra que duas variavel Admin ?
eu esqueci de tirar uma! obrigado por avisar
Reply
#7

ja conseguir! so que agora tou tentar colocar a mensagem de players entrando/saindo do servidor dependendo do idioma do player. so que nao tou conseguindo!

da uma olhada ai pfv:

Quote:

{
new nome[32];
GetPlayerName(playerid, nome, sizeof(nome));
new strdialog[1000];
for(new i; i < MAX_PLAYERS; i++) {
if(Player[i][pIdioma]==1)
{
format(string221, sizeof(string221) , "[SERVER] %s entrou no servidor.", nome);
}
else
{
format(string221, sizeof(string221), "[SERVER] %s entered in server.", nome);
}
}
SendClientMessageToAll(-1, string221);
format(arquivo, sizeof arquivo, "lang/%s.ini", nome);
Player[playerid][pIdioma] = DOF2_GetInt(arquivo,"Idioma");
if(Player[playerid][pIdioma]==0) {
format(strdialog, sizeof(strdialog),"%s%s",strdialog, "{FFFFFF}Selecione seu idioma/Select your langague");
return ShowPlayerDialog(playerid, Dialog_Idioma, DIALOG_STYLE_MSGBOX, "Idioma/Langague", strdialog, "Portuguкs", "English");
}
}

mesmo que o jogador escolha PT-BR a mensagem de entrou/saiu do servidor aparecera em ENG!

DialogResponse:
Quote:

new nome[32];
GetPlayerName(playerid, nome, sizeof(nome));
if(dialogid == Dialog_Idioma)
{
format(arquivo, sizeof arquivo, "lang/%s.ini", nome);
DOF2_CreateFile(arquivo);
if(response == 0) { // Inglкs
Player[playerid][pIdioma]=2;
SpawnPlayer(playerid);
DOF2_SetInt(arquivo,"Idioma",Player[playerid][pIdioma]);
DOF2_SaveFile();
}
if(response == 1) { // Portuguкs
Player[playerid][pIdioma]=1;
SpawnPlayer(playerid);
DOF2_SetInt(arquivo,"Idioma",Player[playerid][pIdioma]);
DOF2_SaveFile();
}
}

Reply
#8

o erro ta aqui у
PHP код:
new nome[32];
GetPlayerName(playeridnomesizeof(nome));
new 
strdialog[1000];
for(new 
iMAX_PLAYERSi++) {
if(
Player[i][pIdioma]==1)
{
format(string221sizeof(string221) , "[SERVER] %s entrou no servidor."nome);

Primeiro Coloque as funзгo dentro da variavel idioma eu vou mostrar como eu faзo no MEU entгo n adianta copiar que vai dar erro

EXEMPLO DO MEU SISTEMA

PHP код:
if(idioma[playerid] == 1)
{
 
SendClientMessage(playerid" Ola");
}
if(
idioma[playerid] == 2)
{
  
SendClientMessage(playerid, -1" Hola");

se vc reparar eu Coloque as mensagem.dentro da VARIAVEL e tu n colocou vc colocou fora por isso ta dando erro o segundo erro й que tu usou ELSE ou seja tu n definiu que ira mandar a mensagem pro segundo idioma vc definiu que SERA OUTRO.

@Edit

RECOMENDO CRIAR O SEU SISTEMA COM O TUTORIAL QUE EU MANDEI ACIMA E DPS IR FAZENDO MANO Й MAIS FACIL DO QUE PEGAR DOS OUTROS E FICAR RESOLVENDO BUG.
Reply
#9

Olб amigo eu utilizo 2 idiomas em meu servidor! e vocк pode economizar muitas linhas com algumas funзхes simples e ъteis.


SendMessageIdioma(playerid[], COR, MsgIdioma1[],MsgIdioma2[]);


PHP код:
stock SendMessageIdioma(playeridCORMsgIdioma1[],MsgIdioma2[])
{
    if(
idioma[playerid] == 1)
    {
        
SendClientMessage(playeridCORMsgIdioma1);
        return 
1;//retornar a mensagem a cima
    
}
    if(
idioma[playerid] == 2)
    {
        
SendClientMessage(playeridCORMsgIdioma2);
        return 
1;//retornar a mensagem a cima
    
}
    return 
1;

Usando:

PHP код:
SendMessageIdioma(playerid,"Olб amigo!","Hello Friend"); 
Mensagens formatadas para determinado idioma

MsgFormatIDIOMA1(playerid[],COR, String, ValorASerMostrado[])

PHP код:
new str[128];//irб armazenar as strings 
PHP код:
#define MsgFormatIDIOMA1(%0,%1,%2,%3); \ //pula 1 linha
format(strsizeof str, %2, %3); \
if(
idioma[%0]==1) \
SendClientMessage(%0, %1str); 
Usando:

PHP код:
MsgFormatIDIOMA1(playerid0xFF0000FF"Seu dinheiro %d"GetPlayerMoney(playerid)); 
й funзхes simples, mas que pode ajudar muito ;;
Reply
#10

Quote:
Originally Posted by DarkBr
Посмотреть сообщение
Olб amigo eu utilizo 2 idiomas em meu servidor! e vocк pode economizar muitas linhas com algumas funзхes simples e ъteis.


SendMessageIdioma(playerid[], COR, MsgIdioma1[],MsgIdioma2[]);


PHP код:
stock SendMessageIdioma(playeridCORMsgIdioma1[],MsgIdioma2[])
{
    if(
idioma[playerid] == 1)
    {
        
SendClientMessage(playeridCORMsgIdioma1);
        return 
1;//retornar a mensagem a cima
    
}
    if(
idioma[playerid] == 2)
    {
        
SendClientMessage(playeridCORMsgIdioma2);
        return 
1;//retornar a mensagem a cima
    
}
    return 
1;

Usando:

PHP код:
SendMessageIdioma(playerid,"Olб amigo!","Hello Friend"); 
Mensagens formatadas para determinado idioma

MsgFormatIDIOMA1(playerid[],COR, String, ValorASerMostrado[])

PHP код:
new str[128];//irб armazenar as strings 
PHP код:
#define MsgFormatIDIOMA1(%0,%1,%2,%3); \ //pula 1 linha
format(strsizeof str, %2, %3); \
if(
idioma[%0]==1) \
SendClientMessage(%0, %1str); 
Usando:

PHP код:
MsgFormatIDIOMA1(playerid0xFF0000FF"Seu dinheiro %d"GetPlayerMoney(playerid)); 
й funзхes simples, mas que pode ajudar muito ;;
nao tou conseguindo fazer isso para SendClientMessageToAll ;/

A GM que eu uso tem essa:

Quote:

stock Translate(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;
}

mas nao sei botar para SendClientMessageToAll
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)