Ir para conteúdo

[0.3.6, 8.54] Stamina Potion 1.0 Edited By Brunds


LeoTK

Posts Recomendados

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

Editado por Brunds
Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...