[Pedido] Função: doSetLanguage.

Lord Stryton
em Resolvidos

Lord Stryton

Programador
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/04/15Posts: 73Char no Tibia: [ADM] Harlock

Oi galera, meu nome é Igor "[ADM] Harlock" do servidor Pokémon Underwater.
Estava tentando desenvolver a função doSetLanguage, mais não estou tendo exito, e queria pedir a ajudar de vocês.

Essa função serve para mudar a linguagem por exemplo:

local texts = {
[PORTUGUESE] = {"Parabéns, você acaba de ganhar um item Raro! ", "Que sorte, acabou de encontrar um : "},
[ENGLISH] = {"Congratulations, you just won a rare item! "" Lucky, just found one: "},
}

Para que isso ocorra também precisa do: getPlayerLanguage para lê o código.
Por favor alguem pode me ajudar, ou então faze-lo e posta-lo no fórum, sei que irá ajudar muita gente.



14WgQWE.png

Venha curti o Pokémon underwater:
https://www.facebook.com/PokemonUnderwater/

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Isso aí você faz em Lua, não em C++. Em qualquer arquivo de data/lib, coloque:

LANGUAGE_STORAGE = 4929

Languages = {
    --["linguagem"] = valor_da_storage,
    ["english"] = 1,
    ["portuguese"] = 2,
    ["spanish"] = 3,
}

function getPlayerLanguage(cid)
    if not isPlayer(cid) then return true end
    
    for lang, value in pairs(Languages) do
        if value == getPlayerStorageValue(cid, LANGUAGE_STORAGE) then
            return lang
        end
    end
    return "none"
end

function setPlayerLanguage(cid, new_language)
    if not isPlayer(cid) or not Languages[new_language] then return true end
    
    setPlayerStorageValue(cid, LANGUAGE_STORAGE, Languages[new_language])
end

Para alterar a linguagem do jogador:

setPlayerLanguage(cid, nova_linguagem)

Ex.:

setPlayerLanguage(cid, "english")
setPlayerLanguage(cid, "portuguese")

Para obter a linguagem do jogador:

getPlayerLanguage(cid)

Que retorna valores como:

english
portuguese

Em login.lua, recomendo colocar, abaixo de:

function onLogin(cid)

o seguinte bloco de código:

if getPlayerLanguage(cid) == "none" then
    setPlayerLanguage(cid, "portuguese")
end

Exemplo de uso do sistema:

local test_messages = {
    ["portuguese"] = "Mensagem de teste.",
    ["english"] = "Test message.",
    ["spanish"] = "Mensaje de prueba."
}

function onSay(cid)
    doPlayerPopupFYI(cid, test_messages[getPlayerLanguage(cid)])
    return true
end

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

Danihcv

I'm Coordenador, Bitch!
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/04/15Posts: 926Gênero: Masculino

Tópico movido para dúvidas / pedidos resolvidos.

Te ajudei?? REP+ e ficamos quites... happyy.png

Atenciosamente,
                    Danihcv.
                           Abraços!