Jump to content
Close
LeoTK

Scripting [0.3.6, 8.54] Stamina Potion 1.0 Edited By Brunds

Recommended Posts

Salve galera bom eu procurei bastante nos fóruns por ai, podemos dizer que tem muita coisa do tipo, mesmo assim eu resolvi trazer esse conteúdo, achei bem interessante e claro para quem gosta de detalhes como eu vai ser muito útil, espero que gostem.

 

Requisitos

Alteração na 050-Functions

Caminho: Pasta do servidor/data/lib

Ir até o final de tudo dar dois enters e adicionar o seguinte código
 

Spoiler

 


function convertTime(a)
  if(type(tonumber(a)) == "number" and a > 0) then
    if (a <= 3599) then
      local minute = math.floor(a/60)
      local second = a - (60 * minute)

      if(second == 0) then
        return ((minute)..((minute > 1) and " minutos" or " minuto"))
      else
        return ((minute ~= 0) and ((minute>1) and minute.." minutos e " or minute.." minuto e ").. ((second>1) and second.." segundos" or second.." segundo") or ((second>1) and second.." segundos" or second.. " segundo"))
      end
    else
      local hour = math.floor(a/3600)
      local minute = math.floor((a - (hour * 3600))/60)
      local second = (a - (3600 * hour) - (minute * 60))

      if (minute == 0 and second > 0) then
        return (hour..((hour > 1) and " horas e " or " hora e "))..(second..((second > 1) and " segundos" or " segundo"))
      elseif (second == 0 and minute > 0) then
        return (hour..((hour > 1) and " horas e " or " hora e "))..(minute..((minute > 1) and " minutos" or " minuto"))
      elseif (second == 0 and minute == 0) then
        return (hour..((hour > 1) and " horas" or " hora"))
      end
      return (hour..((hour > 1) and " horas, " or " hora, "))..(minute..((minute > 1) and " minutos e " or " minuto e "))..(second..((second > 1) and " segundos" or " segundo"))
    end
  end
end

 

 

 

 

 

Configuração Explicada no próprio script

	storage = 62163, -- Storage para após usar começar a contagem de tempo após o próximo uso
	tempo = 120, -- Tempo em minutos que vai curar a stamina 120 = 2 horas
	delay = 12, -- Tempo em horas que vai demorar para usar novamente 1 = 1 hora
	effect = 592, -- Efeito que vai aparecer ao usar o item para regenerar a stamina
	remove_on_use = true, -- Se o item vai sumir ao usar ou não sendo true = sim e false = nao
	stamina_full = 42 * 60 -- aqui é o valor da stamina completa em MINUTOS OBS: NÃO MEXER

 

Actions.xml

Tag 

<action itemid="ITEM ID" event="script" value="NOME DO ARQUIVO.lua"/>

ATENÇÃO: O script esta utilizando uma configuração para enviar a mensagem de erro para uma channel, quase certeza que pode dar erro em seu servidor caso quiser colocar a função no seu servidor de criar novas channels e ao logar aparecer as channels Clique Aqui

 

Caso quiser que o script mande a mensagem de aviso para o default basta editar essa parte

return doPlayerSendChannelMessage(cid, MESSAGE_STATUS_CONSOLE, "Voce precisa esperar " .. timeString(getPlayerStorageValue(cid, config.storage) - os.time()) ..", para regenerar a stamina novamente.", TALKTYPE_CHANNEL_O, CHANNEL_INFO)

Por essa

 

return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Voce precisa esperar " .. timeString(getPlayerStorageValue(cid, config.storage) - os.time()) ..", para regenerar a stamina novamente.")

 

 

Script

Obs: O script vai mostrar o tempo em horas, minutos e segundos que falta para usar novamente
 

Spoiler

 


local config = {
	storage = 62163, -- Storage para após usar começar a contagem de tempo após o próximo uso
	tempo = 120, -- Tempo em minutos que vai curar a stamina 120 = 2 horas
	delay = 12, -- Tempo em horas que vai demorar para usar novamente 1 = 1 hora
	effect = 592, -- Efeito que vai aparecer ao usar o item para regenerar a stamina
	remove_on_use = true, -- Se o item vai sumir ao usar ou não sendo true = sim e false = nao
	stamina_full = 42 * 60 -- aqui é o valor da stamina completa em MINUTOS OBS: NÃO MEXER
}

function timeString(timeDiff)
	local dateFormat = {
		{"dia", timeDiff / 60 / 60 / 24},
		{"hora", timeDiff / 60 / 60 % 24},
		{"minuto", timeDiff / 60 % 60},
		{"segundo", timeDiff % 60}
	}
	local out = {}
	for k, t in ipairs(dateFormat) do
		local v = math.floor(t[2])
		if(v > 0) then
			table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' e ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or ''))
		end
	end
	local ret = table.concat(out)
	if ret:len() < 16 and ret:find("second") then
		local a, b = ret:find(" e ")
		ret = ret:sub(b+1)
	end	
	return ret
end
function onUse(cid, item, frompos, item2, topos)
	if (getPlayerStorageValue(cid, config.storage) >= os.time()) then
		return doPlayerSendChannelMessage(cid, MESSAGE_STATUS_CONSOLE, "Voce precisa esperar " .. timeString(getPlayerStorageValue(cid, config.storage) - os.time()) ..", para regenerar a stamina novamente.", TALKTYPE_CHANNEL_O, CHANNEL_INFO)
	elseif getPlayerStamina(cid) >= config.stamina_full then
		return doPlayerSendCancel(cid, "Sua stamina ja esta cheia!")
	end
	doPlayerAddStamina(cid, config.tempo)
	doSendMagicEffect(getThingPos(cid), config.effect)
	setPlayerStorageValue(cid, config.storage, os.time() + config.delay * 60 * 60)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua stamina foi regenerada em 2 horas.") -- Mensagem quando a stamina for regenerada
	if config.remove_on_use then
		doRemoveItem(item.uid, 1)
	end
	return true
end

 

 

 

 

Créditos:

Brunds

@Vodkart 

gryLLo

 





Share this post


Link to post
Share on other sites

show de bola, muitos membros procuram por isso! parabéns.



vodkart_logo.png

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

 

Dota System 8.6 Com Buffs Automáticos + MAPA (100%) - PVP

Link para Downloadhttps://www.4shared.com/rar/SMta8CQ8fi/Dota_Venda.html?

[+]--------------------------------------[+]-------------------------------------------[+]

 

DISCORDvodkart#6090

 




Share this post


Link to post
Share on other sites

@Vodkart Dei uma editada falando sobre o detalhe de channels acho que agora ficou completo 





Share this post


Link to post
Share on other sites

Show de bola! :)





Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...