Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Eis que trago mais uma função à biblioteca matemática de Lua, a math.percent.
Sendo objetivo, ela calcula o percentual de um valor numérico, independentemente desse valor ser um inteiro ou decimal.

math.percent = function (value, percentage) -- Developed by Wise ~ TibiaKing.com
	return tonumber(value) and tonumber(percentage) and math.abs(tonumber(string.format('%.f', tostring(percentage * (value/100))))) or nil
end



Exemplo de um cálculo:
Mensagem maldita
"Você atingiu 80% da sua franquia diária de 30MB. Ao atingir 100%, sua navegação será bloqueada."


E agora, brother? Quantos MB eu usei?

math.percent(30, 80) -- (valor númerico, %)
24



Enfim, se for disponibilizar este script em outro meio, deixe meu nick nos créditos.
;]

Editado por Wise (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
51mutNo.png Seu tópico foi aprovado e movido para a seção correta!
 Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
 Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
Link para o post
Compartilhar em outros sites
14 horas atrás, Matheus disse:

 Seu tópico foi aprovado

Valeu, meu brother.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
  • 3 weeks later...

math.percent = function (value, percentage) -- Developed by Wise ~ TibiaKing.com
    return math.ceil(math.floor(value)*math.floor(percentage)/100)
end



			
		

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart

O script que você sugeriu, dá pra concluir que os decimais não serão arredondados corretamente. Por exemplo: 32,83 -> 32 ao invés de 33. Além de que há a possibilidade de ocorrer um conflito aritmético entre as variáveis.

Mas agradeço a intenção, brother.

Editado por Wise (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

hmm vdd '-'

 

era só usar então

 

return (math.floor(value)*math.floor(percentage)/100)


 

acho, mas a sua função é bem útil! parabéns

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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 Anderson Sacani
      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.
    • Por danielsort
      A minha poke ball nao esta funcionando como contador aonde consigo ageitar isso?
       
       

    • Por yurikil
      Saudações a todos, venho por meio deste tópico pedir uma ajuda no qual estou tentando fazer a muito tempo. Já vi alguns post aqui mesmo no TK, mas nenhum eu tive êxito. Por isso venho pedir um socorro de como eu consigo aumentar a quantidade de MagicEffects acima de 255 no meu NewClient OTC? Se alguém puder fortalecer ficarei muito grato!!
    • Por Vodkart
      Uma função que ao invés de usar o "cid" para pegar o valor de uma storage, usa o ip do jogador.
       
      baseado neste pedido:
       
       
       
       
      INSTALAÇÃO:
       
       
      Execute essa query:
       
      CREATE TABLE `ip_storages` (         `ip` int NOT NULL default 0,         `key` int NOT NULL default 0,         `value` varchar(255) NOT NULL default 0         )  
      funções para serem adicionadas na lib:
       
      function setIpStorageValue(ip, key, value) local func = db.executeQuery or db.query local query = db.getResult("SELECT `value` FROM `ip_storages` WHERE `key` = "..key.." AND `ip` = "..ip) if query:getID() == -1 then return func("INSERT INTO `ip_storages` (`ip`, `key`, `value`) VALUES ("..ip..", "..key..", "..value..")") end return func("UPDATE `ip_storages` SET `value` = "..value.." WHERE `key` = "..key.." AND `ip` = "..ip) end function getIpStorageValue(ip, key) local ret = db.getResult("SELECT `value` FROM `ip_storages` WHERE `ip` = "..ip.." AND `key` = "..key) if ret:getID() == -1 then return -1 end return ret:getDataInt("value") or ret:getDataString("value") end  
       
       
       
      exemplo de uso:
       
      pegar baú a cada X horas:
       
      function onUse(cid, item, fromPosition, itemEx, toPosition)     local storage, hours = 18000, 24     local ip = getPlayerIp(cid)     local item = 2160     if getIpStorageValue(ip, storage) - os.time() <= 0 then         doPlayerSendTextMessage(cid,22,"Tome seu prêmio.")         setIpStorageValue(ip, storage, os.time()+hours*3600)         doPlayerAddItem(cid, item, 100)          return true     end      return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Espere para pegar um novo item!") end  

      ou só podendo pegar 1x:
       
      function onUse(cid, item, fromPosition, itemEx, toPosition)     local storage, ip = 18000, getPlayerIp(cid)     local item = 2160     if getIpStorageValue(ip, storage) > 1 then     doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"voce ja pegou o item!") return true     end         doPlayerSendTextMessage(cid,22,"Tome seu prêmio.")         setIpStorageValue(ip, storage, 1)         doPlayerAddItem(cid, item, 100)          return true end
       
    • Por Drafenous
      Toda vez que vou carregar o meu servidor ocorrer isto:
      [25/05/2014 18:54:27] >> Loading items [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:27] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:28] [Warning - Items::loadFromXml] Unknown type rune [25/05/2014 18:54:29] [Warning - Items::loadFromXml] Unknown key value fieldAbsorbPercentFire Como posso corrigir? D:
       
      Versão do ot: TFS 0.3.6 - Edited By Cyko V8
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo