Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Estou criando um servidor com base nos scripts de TFS 1.x e voltado ao público da america latina por causa do baixo ping na VPS... Argentina, Bolívia, Brasil, Chile, entre outros, portanto sei que falamos em português e nossos vizinhos em espanhol.

Todos os sistemas do meu servidor são pensados para terem traduções e venho por meio deste tópico compartilhar à vocês algumas dessas funções:

 

Antes de qualquer coisa, você precisará adicionar a seguinte variável em alguma biblioteca:

USER_LANGUAGE = 1022118443

 

Agora que adicionou essa variável em alguma biblioteca, poderá adicionar as seguintes funções na mesma biblioteca, porém a baixo da variável USER_LANGUAGE.

 

A primeira função serve para retornar qual idioma o player está usando:

--[[
    getLanguage, how to use:
    player:getLanguage()
]]
function Player.getLanguage(self)
    if self:isPlayer() then
        if self:getStorageValue(USER_LANGUAGE) < 1 then
            return "portuguese"
        else
            return "spanish"
        end
    else
        print("getLanguage: Only works on players..")
    end
end

Um exemplo de como usar: player:getLanguage()

 

A segunda função serve para alterar o idioma do player. O ideal é que seja usada na primeira vez em que o player loga no servidor:

--[[
    setLanguage, how to use:
    player:setLanguage("portuguese")
]]
function Player.setLanguage(self, language)
    local value = 0
    if self:isPlayer() then
        if language == "portuguese" then
            value = 0
        elseif language == "spanish" then
            value = 1
        else
            print("setLanguage: Only two options available. Choose one of them: 'portuguese' or 'spanish'.")
        end
        return self:setStorageValue(USER_LANGUAGE, value)
    else
        print("setLanguage: Only works on players..")
    end
end

Exemplos de como usar:

player:setLanguage("portuguese")

ou

player:setLanguage("spanish")

 

A terceira e não menos importante função, serve para mandar uma mensagem de texto ao jogador, porém ele receberá no idioma em que escolheu:

--[[
    sendLanguageTextMessage, how to use:
    local portugueseMessage = "Ola, tudo bom? Isto aqui é um algoritmo!"
    local spanishMessage = "Hola todo bien? Esto de aqui es un algoritmo!"
    player:sendLanguageTextMessage(MESSAGE_EVENT_ADVANCE, portugueseMessage,spanishMessage)
]]
function Player.sendLanguageTextMessage(self, type, portugueseMessage, spanishMessage)
    if self:isPlayer() then
        if self:getStorageValue(USER_LANGUAGE) < 1 then
            return self:sendTextMessage(type, portugueseMessage)
        else
            return self:sendTextMessage(type, spanishMessage)
        end
    else
        print("sendLanguageTextMessage: Only works on players..")
    end
end

Um exemplo de como usar:
player:sendLanguageTextMessage(MESSAGE_EVENT_ADVANCE, portugueseMessage, spanishMessage)

O primeiro parâmetro é o tipo de mensagem, o segundo parâmetro será a mensagem em português e o terceiro parâmetro será em espanhol.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por luanluciano93
      Olá pessoal, estou desenvolvendo esse sistema vip para TFS 1.x, se precisarem de alguma função nova é só comentar, criei para usar em um servidor meu e resolvi postar, bom proveito a todos.
       
      É só ir no arquivo data/lib/core/player.lua e adicionar esse código no começo do script:
      -- ALTER TABLE `accounts` ADD `vip_time` BIGINT(20) NOT NULL DEFAULT 0; -- player:getVipTime() function Player.getVipTime(self) local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';") local time = resultId ~= false and result.getNumber(resultId, "vip_time") or 0 result.free(resultId) return time end -- player:isVip() function Player.isVip(self) return self:getVipTime() > os.time() and true or false end -- player:addVipDays(days) function Player.addVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVipDays(days) function Player.removeVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:setVipDays(days) function Player.setVipDays(self, days) return db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVip() function Player.removeVip(self) db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:sendVipDaysMessage() function Player.sendVipDaysMessage(self) if self:isVip() then local vipTime = self:getVipTime() - os.time() local vipDays = 1 + (math.floor(vipTime / 86400)) return self:getVipTime() ~= false and self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You have '.. vipDays .. ' vip day(s) in your account.') end end -- player:checkVipLogin() function Player.checkVipLogin(self) if self:getVipTime() > 0 and not self:isVip() then return self:removeVip() and self:teleportTo(self:getTown():getTemplePosition()) end end  
       
      As funções são:
      • player:getVipTime() - Retorna o valor da tabela vip_time (igual esta na database).
      • player:isVip() - Retorna se o player é vip ou não.
      • player:addVipDays(days) - Usa-se em algum script para para adicionar dias de vip ao player (parâmetro de entrada "days").
      • player:removeVipDays(days) - Usa-se em algum script para para remover dias de vip do player (parâmetro de entrada "days").
      • player:setVipDays(days) - Usa-se em algum script para para mudar os dias de vip do player (parâmetro de entrada "days").
      • player:removeVip() - Usa-se em algum script para para remover todo tempo de vip do player.
      • player:sendVipDaysMessage() - Retorna uma mensagem no player mostrando os dias de vip que ainda restam ao player.
      • player:checkVipLogin() - Checa se a vip do player acabou, se sim teleporta ele para o templo.
       

      Qualquer dúvida ou erro/bug poste aqui.
    • Por looktsx
      Salve Rapaziada ...

      sera q tem como cria um script de addon doll ou mont doll ? 
      ou um npc q vende addon e montaria, pra versao 13.11 do tibia ?
       
      pode me ajuda fico muito grato 
    • Por Rpzada
      Oi boa tarde.
      Sera q tu pode me ajudar como uma duvida... no meu otserver. Tenho cliente 13 e client otc... ai os npcs no 13 ele reconhece dinheiro do banco quando vou comprar... porem no otc eu tenho q estar com dinheiro na bag.... tu sabe o pq e como arrumo isso... queria q no otc ele reconhecesse o dinheiro no bank
    • Por Rodrigo Querobim
      Salve rapaziada eu tenho o server canary open source e quando implementei os bosses atuais começou dar este erro, nem mexi nessa linha que esta dando os erros, alguem sabe me dizer oq pode ser?



       
    • Por danielsort
      A minha poke ball nao esta funcionando como contador aonde consigo ageitar isso?
       
       

  • Estatísticas dos Fóruns

    96842
    Tópicos
    519600
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo