Ir para conteúdo

Featured Replies

Postado

Galera, boa tarde, tenho esse script

 

 function onSay(cid, words, param) 
if getPlayerStorageValue(cid,49015) - os.time() > 0 then
   doPlayerSendTextMessage(cid, 23,"Tempo para acabar a Exp Potion:")
return true
end
return true
end 

 

Bom...eu queria que quando falasse: !exptime...ele mostrasse quanto tempo falta para acabar o exp potion.

 

Expo.lua

 function onUse(cid, item, frompos, item2, topos)
local pausa = 120*60*120000 -- (1000 = 1 segundos) Tempo que o script durará
local texto = "Você dobrou sua Experiencia por 2 Horas" -- Texto que irá receber ao usar a potion.
textofinal = "Acabou o potion de Experiencia." -- Texto que irá receber quando o efeito da potion acabar.
local exp = 3 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server.
expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal.
remoitem = true --irá remover o item.
local limitedeuso = 49015
local tempo = 120*60*1000 -- 1000 = 1s então 1000 vezes 60 vezes 30 = 30 minutos
local textofinal1 = "Você já esta sob efeito da pot de experiência espere o efeito acabar."
local seuitem = 7440 -- seu item que dará double exp
local efeito1 = 13 -- efeito que ficara com o char por meia hora
local efeito2 = 35 -- efeito que acontecera no momento que usar a pot
 
 
--fim da parte configuravel não mecha se nao tiver conhecimento de scripting
local timeEffect = 1801 -- tempo em segundos que o efeito vai apareceer no player, 31 = 30 segundos. sempre coloque 1 segundo a mais.
 
      function effect()
         if isPlayer(cid) then
            local pos = getCreaturePosition(cid)
            doSendMagicEffect(pos, efeito1)
         end
      end
         
if item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() <= 0) then
  doRemoveItem(item.uid,1)
   doPlayerSetExperienceRate(cid,exp)
    doSendMagicEffect(frompos,efeito2)
     setPlayerStorageValue(cid, limitedeuso, os.time() + 1800)
    doPlayerSendTextMessage(cid,22,texto)
addEvent(potion,pausa,cid)
 
   a = 1
  while a ~= timeEffect do
        addEvent(effect, a * 1000)
          a = a + 1
  end
 
elseif item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() > 0) then
  doPlayerSendTextMessage(cid,22,textofinal1)
end
 
 
return true
end
 
 
function potion(cid)
doPlayerSetExperienceRate(cid,expfinal)
doPlayerSendTextMessage(cid,22,textofinal)
end

.

 

 

Se puderem me ajudar...+3rep.

  • Respostas 15
  • Visualizações 1.4k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • function timeString(timeDiff) local dateFormat = { {"day", timeDiff / 60 / 60 / 24}, {"hour", timeDiff / 60 / 60 % 24}, {"minute", timeDiff / 60 % 60}, {"second", timeDiff % 60} } local out

  • vllw man, deu certo aqui, obrigadão

  • Não achei uma função especifica na lib.  mais tenta trocar por esse script:   function onUse(cid, item, frompos, item2, topos) local pausa = 120*60*120000 -- (1000 = 1 segundos) Tempo qu

Postado
function timeString(timeDiff)
	local dateFormat = {
		{"day", timeDiff / 60 / 60 / 24},
		{"hour", timeDiff / 60 / 60 % 24},
		{"minute", timeDiff / 60 % 60},
		{"second", 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 ' and ') .. 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(" and ")
		ret = ret:sub(b+1)
	end
	
	return ret
end
function onSay(cid, words, param) 
if getPlayerStorageValue(cid,49015) - os.time() <= 0 then
doPlayerSendTextMessage(cid, 23,"você não tem Exp Potion ativa.")
return true
end
local time = timeString((os.time() - getPlayerStorageValue(cid, 49015)))
return doPlayerSendTextMessage(cid, 23,"você ainda tem "..time.." de Exp Potion.")
end 

 

vodkart_logo.png

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

 

DISCORDvodkart#6090

 

Postado
  • Autor

Cara, eu acho que meu script ta bugado, pq eu coloquei la o que vc posto e funciono normal, ai aparece que tenho 23:00 horas de exp, só que eu coloquei 2 horas, pode me ajudar? e também ao invez dele diminuir o tempo ele aumenta...tipo:

 

17:18 você ainda tem 23 hours, 43 minutes and 33 seconds de Exp Potion.

17:18 você ainda tem 23 hours, 43 minutes and 45 seconds de Exp Potion.

 

ele vai aumentando, e nao diminui...pode me ajudar ou indicar um melhor?

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

Postado

deixa assim pra ver

 

function onUse(cid, item, frompos, item2, topos)
local texto = "Você dobrou sua Experiencia por 2 Horas" -- Texto que irá receber ao usar a potion.
textofinal = "Acabou o potion de Experiencia." -- Texto que irá receber quando o efeito da potion acabar.
local exp = 3 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server.
expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal.
remoitem = true --irá remover o item.
local limitedeuso = 49015
local hours = 2
local textofinal1 = "Você já esta sob efeito da pot de experiência espere o efeito acabar."
local seuitem = 7440 -- seu item que dará double exp
local efeito1 = 13 -- efeito que ficara com o char por meia hora
local efeito2 = 35 -- efeito que acontecera no momento que usar a pot
local timeEffect = 1801 -- tempo em segundos que o efeito vai apareceer no player, 31 = 30 segundos. sempre coloque 1 segundo a mais.
      function effect()
         if isPlayer(cid) then
            local pos = getCreaturePosition(cid)
            doSendMagicEffect(pos, efeito1)
         end
      end  
if item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() <= 0) then
  doRemoveItem(item.uid,1)
   doPlayerSetExperienceRate(cid,exp)
    doSendMagicEffect(frompos,efeito2)
     setPlayerStorageValue(cid, limitedeuso, os.time() + hours*3600)
    doPlayerSendTextMessage(cid,22,texto)
addEvent(potion,pausa,cid)
   a = 1
  while a ~= timeEffect do
        addEvent(effect, a * 1000)
          a = a + 1
  end
elseif item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() > 0) then
  doPlayerSendTextMessage(cid,22,textofinal1)
end
return true
end
function potion(cid)
doPlayerSetExperienceRate(cid,expfinal)
doPlayerSendTextMessage(cid,22,textofinal)
end

 

 

e o talk assim

 

function timeString(timeDiff)
	local dateFormat = {
		{"day", timeDiff / 60 / 60 / 24},
		{"hour", timeDiff / 60 / 60 % 24},
		{"minute", timeDiff / 60 % 60},
		{"second", 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 ' and ') .. 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(" and ")
		ret = ret:sub(b+1)
	end
	
	return ret
end
function onSay(cid, words, param) 
if getPlayerStorageValue(cid,49015) - os.time() <= 0 then
doPlayerSendTextMessage(cid, 23,"você não tem Exp Potion ativa.")
return true
end
local time = timeString(-(os.time() - getPlayerStorageValue(cid, 49015)))
return doPlayerSendTextMessage(cid, 23,"você ainda tem "..time.." de Exp Potion.")
end 

 

vodkart_logo.png

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

 

DISCORDvodkart#6090

 

Postado
  • Autor
4 minutos atrás, Vodkart disse:

deixa assim pra ver

 


function onUse(cid, item, frompos, item2, topos)
local texto = "Você dobrou sua Experiencia por 2 Horas" -- Texto que irá receber ao usar a potion.
textofinal = "Acabou o potion de Experiencia." -- Texto que irá receber quando o efeito da potion acabar.
local exp = 3 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server.
expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal.
remoitem = true --irá remover o item.
local limitedeuso = 49015
local hours = 2
local textofinal1 = "Você já esta sob efeito da pot de experiência espere o efeito acabar."
local seuitem = 7440 -- seu item que dará double exp
local efeito1 = 13 -- efeito que ficara com o char por meia hora
local efeito2 = 35 -- efeito que acontecera no momento que usar a pot
local timeEffect = 1801 -- tempo em segundos que o efeito vai apareceer no player, 31 = 30 segundos. sempre coloque 1 segundo a mais.
      function effect()
         if isPlayer(cid) then
            local pos = getCreaturePosition(cid)
            doSendMagicEffect(pos, efeito1)
         end
      end  
if item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() <= 0) then
  doRemoveItem(item.uid,1)
   doPlayerSetExperienceRate(cid,exp)
    doSendMagicEffect(frompos,efeito2)
     setPlayerStorageValue(cid, limitedeuso, os.time() + hours*3600)
    doPlayerSendTextMessage(cid,22,texto)
addEvent(potion,pausa,cid)
   a = 1
  while a ~= timeEffect do
        addEvent(effect, a * 1000)
          a = a + 1
  end
elseif item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() > 0) then
  doPlayerSendTextMessage(cid,22,textofinal1)
end
return true
end
function potion(cid)
doPlayerSetExperienceRate(cid,expfinal)
doPlayerSendTextMessage(cid,22,textofinal)
end

 

 

e o talk assim

 


function timeString(timeDiff)
	local dateFormat = {
		{"day", timeDiff / 60 / 60 / 24},
		{"hour", timeDiff / 60 / 60 % 24},
		{"minute", timeDiff / 60 % 60},
		{"second", 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 ' and ') .. 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(" and ")
		ret = ret:sub(b+1)
	end
	
	return ret
end
function onSay(cid, words, param) 
if getPlayerStorageValue(cid,49015) - os.time() <= 0 then
doPlayerSendTextMessage(cid, 23,"você não tem Exp Potion ativa.")
return true
end
local time = timeString(-(os.time() - getPlayerStorageValue(cid, 49015)))
return doPlayerSendTextMessage(cid, 23,"você ainda tem "..time.." de Exp Potion.")
end 

 

agr ta dando isso:

 

17:36 Você dobrou sua Experiencia por 2 Horas
17:36 Sua Exp Voltou Ao Normal.

 

as 2 mensagens ao mesmo tempo.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo