[Ajuda] Apenas uma dъvida...
#1

Bom pessoal, tenho um sistema de 2 idiomas q funfa de boas, porйm tem um detalhe que eu quero modificar:
Alterar NUMBER para STRING...

Segue o code:
PHP код:
public OnPlayerSelectedMenuRow(playeridrow)
{
    new 
Menu:CurrentMenu GetPlayerMenu(playerid);
    new 
string[128];
    if(
CurrentMenu == languageMenu)
    {
        switch(
row)
        {
            case 
0LanguageID[playerid] = 0;
            case 
1LanguageID[playerid] = 1;
        }
        
TogglePlayerControllable(playerid0);
     }
    if(
LanguageID[playerid] == 0)
    {
        
tkUSER[playerid][TKU_PlayerLanguage] = 0;
        
format(stringsizeof(string),"Vocк selecionou a linguagem: %s [PT]"tkPlayerName(playerid), LanguageID);
        
SendClientMessage(playerid, -1string);
    }
    else if(
LanguageID[playerid] == 1)
    {
        
tkUSER[playerid][TKU_PlayerLanguage] = 1;
        
format(stringsizeof(string),"Vocк selecionou a linguagem: %s [EN]"tkPlayerName(playerid), LanguageID);
        
SendClientMessage(playerid, -1string);
    }
    new 
langkey DB::RetrieveKey(gGlobal[TKT_MultiLanguage], "username"tkPlayerName(playerid));
    
DB::SetIntEntry(gGlobal[TKT_MultiLanguage], langkey"player language"tkUSER[playerid][TKU_PlayerLanguage]);
    
SavePlayerLanguage(playerid);
    return 
1;
}
public 
OnPlayerExitedMenu(playerid)
{
    new 
Menu:CurrentMenu GetPlayerMenu(playerid);
    if(
CurrentMenu == languageMenu)
    {
        
ShowMenuForPlayer(languageMenuplayerid);
    }
    
TogglePlayerControllable(playerid1);
    
SavePlayerLanguage(playerid);

Gostaria de "converter" o NUMBER para STRING, ou seja:
0 = Portugues
1 = Ingles
Reply
#2

Talvez dessa forma possa funcionar, tente.

PHP код:
public OnPlayerSelectedMenuRow(playeridrow

    new 
Menu:CurrentMenu GetPlayerMenu(playerid); 
    new 
string[128], lStr[15]; 
    if(
CurrentMenu == languageMenu)
    { 
        
LanguageID[playerid] = tkUSER[playerid][TKU_PlayerLanguage] = row
        
TogglePlayerControllable(playerid0);
        if(
row == 0strcat(lStr"Portuguкs [PT]");
        else 
strcat(lStr"Inglкs [ENG]");        
        
format(stringsizeof(string),"Vocк selecionou a linguagem: %s"lStr); 
        
SendClientMessage(playerid, -1string); 
        
        new 
langkey DB::RetrieveKey(gGlobal[TKT_MultiLanguage], "username"tkPlayerName(playerid)); 
        
DB::SetIntEntry(gGlobal[TKT_MultiLanguage], langkey"player language"tkUSER[playerid][TKU_PlayerLanguage]); 
        
SavePlayerLanguage(playerid);
    } 
    return 
1

@EDIT

Arrumei algumas coisas no seu cуdigo.

O que eu fiz foi verificar o valor da variбvel e formatar uma string com o tipo de linguagem, no caso se a variбvel for 0 formata a string para Portuguкs [PT], caso for falso irб setar a variбvel Inglкs [ENG].
Reply
#3

Quote:
Originally Posted by EditPawn
Посмотреть сообщение
Talvez dessa forma possa funcionar, tente.

PHP код:
public OnPlayerSelectedMenuRow(playeridrow

    new 
Menu:CurrentMenu GetPlayerMenu(playerid); 
    new 
string[128], lStr[15]; 
    if(
CurrentMenu == languageMenu)
    { 
        
LanguageID[playerid] = tkUSER[playerid][TKU_PlayerLanguage] = row
        
TogglePlayerControllable(playerid0); 
        
format(stringsizeof(string),"Vocк selecionou a linguagem: %s"tkPlayerName(playerid), LanguageID == strcat(lStr"Portuguкs [PT]") : strcat(lStr"Inglкs [ENG]")); 
        
SendClientMessage(playerid, -1string); 
        
        new 
langkey DB::RetrieveKey(gGlobal[TKT_MultiLanguage], "username"tkPlayerName(playerid)); 
        
DB::SetIntEntry(gGlobal[TKT_MultiLanguage], langkey"player language"tkUSER[playerid][TKU_PlayerLanguage]); 
        
SavePlayerLanguage(playerid); 
    } 
    return 
1

@EDIT

Arrumei algumas coisas no seu cуdigo.

O que eu fiz foi verificar o valor da variбvel e formatar uma string com o tipo de linguagem, no caso se a variбvel for 0 formata a string para Portuguкs [PT], caso for falso irб setar a variбvel Inglкs [ENG].
Vlw pela organizaзгo kkkkkk
mas... sempre tem um mas...
Quote:

gadminv2.pwn(2262) : error 033: array must be indexed (variable "LanguageID")

PHP код:
format(stringsizeof(string),"Vocк selecionou a linguagem: %s"tkPlayerName(playerid), LanguageID == strcat(lStr"Portuguкs [PT]") : strcat(lStr"Inglкs [ENG]")); 
Reply
#4

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
Vlw pela organizaзгo kkkkkk
mas... sempre tem um mas...

PHP код:
format(stringsizeof(string),"Vocк selecionou a linguagem: %s"tkPlayerName(playerid), LanguageID == strcat(lStr"Portuguкs [PT]") : strcat(lStr"Inglкs [ENG]")); 
Atualizei o cуdigo, percebi alguns erros bobos meu. tente novamente.
Reply
#5

@TESTANDO

@EDIT
Obrigado cara, me salvou = + rep

@TOPIC
Modifiquei a String da linguagem, a outra bugou kkkkkk:
PHP код:
//Code original:
DB::SetStringEntry(gGlobal[TKT_MultiLanguage], langkey"player language"tkUSER[playerid][TKU_PlayerLanguage]); 
//Code modificado
DB::SetStringEntry(gGlobal[TKT_MultiLanguage], langkey"player language"lStr); 
ERRAR Й HUMANO, mais uma vez, obrigado!!!

OBS: caso eu queia add mais linguagens, me corrija se estiver errado:

Estou correto?
PHP код:
new Menu:CurrentMenu GetPlayerMenu(playerid); 
    new 
string[128], lStr[15]; 
    if(
CurrentMenu == languageMenu)
    { 
        
LanguageID[playerid] = tkUSER[playerid][TKU_PlayerLanguage] = row
        
TogglePlayerControllable(playerid0);
        if(
row == 0strcat(lStr"Portuguкs [PT]");
        if(
row == 1strcat(lStr"Inglкs [EN]");
        if(
row == 2strcat(lStr"Espanhol [ES]");      
        
format(stringsizeof(string),"Vocк selecionou a linguagem: %s"lStr); 
        
SendClientMessage(playerid, -1string); 
        
        new 
langkey DB::RetrieveKey(gGlobal[TKT_MultiLanguage], "username"tkPlayerName(playerid)); 
        
DB::SetStringEntry(gGlobal[TKT_MultiLanguage], langkey"player language"tkUSER[playerid][TKU_PlayerLanguage]); 
        
SavePlayerLanguage(playerid);
    } 
Reply
#6

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
@TESTANDO

@EDIT
Obrigado cara, me salvou = + rep

@TOPIC
Modifiquei a String da linguagem, a outra bugou kkkkkk:
PHP код:
//Code original:
DB::SetStringEntry(gGlobal[TKT_MultiLanguage], langkey"player language"tkUSER[playerid][TKU_PlayerLanguage]); 
//Code modificado
DB::SetStringEntry(gGlobal[TKT_MultiLanguage], langkey"player language"lStr); 
ERRAR Й HUMANO, mais uma vez, obrigado!!!
Quando vocк for verificar qual a linguagem estб salva terб que comparar strings jб que vocк salvou como string e nгo inteiro, lembre-se disso.

Aliбs, caso for adicionar mais linguagem terб que trocar "else" para "else if" ou utilizar "switch".

@EDIT

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
@TESTANDO

@EDIT
Obrigado cara, me salvou = + rep

@TOPIC
Modifiquei a String da linguagem, a outra bugou kkkkkk:
PHP код:
//Code original:
DB::SetStringEntry(gGlobal[TKT_MultiLanguage], langkey"player language"tkUSER[playerid][TKU_PlayerLanguage]); 
//Code modificado
DB::SetStringEntry(gGlobal[TKT_MultiLanguage], langkey"player language"lStr); 
ERRAR Й HUMANO, mais uma vez, obrigado!!!

OBS: caso eu queia add mais linguagens, me corrija se estiver errado:

Estou correto?
PHP код:
new Menu:CurrentMenu GetPlayerMenu(playerid); 
    new 
string[128], lStr[15]; 
    if(
CurrentMenu == languageMenu)
    { 
        
LanguageID[playerid] = tkUSER[playerid][TKU_PlayerLanguage] = row
        
TogglePlayerControllable(playerid0);
        if(
row == 0strcat(lStr"Portuguкs [PT]");
        if(
row == 1strcat(lStr"Inglкs [EN]");
        if(
row == 2strcat(lStr"Espanhol [ES]");      
        
format(stringsizeof(string),"Vocк selecionou a linguagem: %s"lStr); 
        
SendClientMessage(playerid, -1string); 
        
        new 
langkey DB::RetrieveKey(gGlobal[TKT_MultiLanguage], "username"tkPlayerName(playerid)); 
        
DB::SetStringEntry(gGlobal[TKT_MultiLanguage], langkey"player language"tkUSER[playerid][TKU_PlayerLanguage]); 
        
SavePlayerLanguage(playerid);
    } 
Utilize Switch ou If e else if, se vocк somente utilizar "if", ele irб verificar todos sendo que nгo й necessбrio

Exemplo:
PHP код:
        switch(row) {
            case 
0strcat(lStr"Portuguкs [PT]"); 
            case 
1strcat(lStr"Inglкs [ENG]"); 
            case 
2strcat(lStr"Italiano [ITA]");
            case 
3strcat(lStr"Francкs [FRA]"); 
        } 
ou
PHP код:
if(row == 0strcat(lStr"Portuguкs [PT]"); 
else if(
row == 1strcat(lStr"Inglкs [ENG]"); 
else if(
row == 2strcat(lStr"Italiano [ITA]");
else if(
row == 3strcat(lStr"Francкs [FRA]"); 
Reply
#7

Acho que entendi:
PHP код:
new Menu:CurrentMenu GetPlayerMenu(playerid); 
    new 
string[128], lStr[15]; 
    if(
CurrentMenu == languageMenu)
    { 
        
LanguageID[playerid] = tkUSER[playerid][TKU_PlayerLanguage] = row
        
TogglePlayerControllable(playerid0);
        if(
row == 0strcat(lStr"Portuguкs [PT]");
        else if(
row == 1strcat(lStr"Inglкs [EN]");
        else if(
row == 2strcat(lStr"Espanhol [ES]");
        
format(stringsizeof(string),"Vocк selecionou a linguagem: %s"lStr); 
        
SendClientMessage(playerid, -1string); 
        
        new 
langkey DB::RetrieveKey(gGlobal[TKT_MultiLanguage], "username"tkPlayerName(playerid)); 
        
DB::SetStringEntry(gGlobal[TKT_MultiLanguage], langkey"player language"tkUSER[playerid][TKU_PlayerLanguage]); 
        
SavePlayerLanguage(playerid);
    } 
Obrigado...

@EDIT
Entendi o que vc falou para getar o dado dentro da coluna:
Pego apenas o valor da string, e nгo como um inteiro.
PHP код:
DB::GetStringEntry(gGlobal[TKT_MultiLanguage], langkey"player language"lStr); 
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)