Ir para conteúdo
  • Cadastre-se

(Resolvido)Exausted


Ir para solução Resolvido por MatteusDeli,

Posts Recomendados

Gostaria que alguem colocasse exausted nesse script.

o script da 30 min de tempo.

 

queria q ele so podesse usar depois dos 30 min. 

 

alguem pode ajudar pf

 

tfs 0.4

 

 

 

Citar

function onUse(cid, item, frompos, item2, topos)

local time = 1800 -- Tempo que durará em segundos
local texto = 'Voce Ganhou 30 Minutos de Exp [3x]' -- Texto que irá receber ao usar a potion.
textofinal = 'Bonus de Exp [3x] Finalizada' -- Texto que irá receber quando o efeito da potion acabar.
local exp = 3.0 -- 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.
local stor = 12132

if item.itemid == 7440 then
doRemoveItem(item.uid, 1)
doPlayerSetExperienceRate(cid, exp)
doSendMagicEffect(frompos, 13)
doPlayerSendTextMessage(cid, 22, texto)
addEvent(potion, time * 1000, cid)
setPlayerStorageValue(cid, stor, os.time() + time)
end
end


function potion(pos, cid)
doPlayerSetExperienceRate(pos, expfinal)
doPlayerSendTextMessage(pos,22, textofinal)
end

 

Link para o post
Compartilhar em outros sites
  • Moderador
7 minutos atrás, Doidodepeda disse:

Gostaria que alguem colocasse exausted nesse script.

o script da 30 min de tempo.

 

queria q ele so podesse usar depois dos 30 min. 

 

alguem pode ajudar pf

 

tfs 0.4

 

 

 

 

se ele dura 30 minutos e voce quer um exhausted de 30 minutos, nao precisa necessariamente trabalhar com exhaustion, apenas verificar se o item está em uso
 

function onUse(cid, item, frompos, item2, topos)

local time = 1800 -- Tempo que durará em segundos
local texto = 'Voce Ganhou 30 Minutos de Exp [3x]' -- Texto que irá receber ao usar a potion.
textofinal = 'Bonus de Exp [3x] Finalizada' -- Texto que irá receber quando o efeito da potion acabar.
local exp = 3.0 -- 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.
local stor = 12132

local stortime = getPlayerStorageValue(stor) - os.time()

if (stortime >= 1) then

   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "em uso")

end

if item.itemid == 7440 then
doRemoveItem(item.uid, 1)
doPlayerSetExperienceRate(cid, exp)
doSendMagicEffect(frompos, 13)
doPlayerSendTextMessage(cid, 22, texto)
addEvent(potion, time * 1000, cid)
setPlayerStorageValue(cid, stor, os.time() + time)
end
end


function potion(pos, cid)
doPlayerSetExperienceRate(pos, expfinal)
doPlayerSendTextMessage(pos,22, textofinal)
end

Link para o post
Compartilhar em outros sites
8 minutos atrás, So volto tarde disse:

se ele dura 30 minutos e voce quer um exhausted de 30 minutos, nao precisa necessariamente trabalhar com exhaustion, apenas verificar se o item está em uso
 

function onUse(cid, item, frompos, item2, topos)

local time = 1800 -- Tempo que durará em segundos
local texto = 'Voce Ganhou 30 Minutos de Exp [3x]' -- Texto que irá receber ao usar a potion.
textofinal = 'Bonus de Exp [3x] Finalizada' -- Texto que irá receber quando o efeito da potion acabar.
local exp = 3.0 -- 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.
local stor = 12132

local stortime = getPlayerStorageValue(stor) - os.time()

if (stortime >= 1) then

   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "em uso")

end

if item.itemid == 7440 then
doRemoveItem(item.uid, 1)
doPlayerSetExperienceRate(cid, exp)
doSendMagicEffect(frompos, 13)
doPlayerSendTextMessage(cid, 22, texto)
addEvent(potion, time * 1000, cid)
setPlayerStorageValue(cid, stor, os.time() + time)
end
end


function potion(pos, cid)
doPlayerSetExperienceRate(pos, expfinal)
doPlayerSendTextMessage(pos,22, textofinal)
end

Deu o Seguinte Errro

 

1.png

Link para o post
Compartilhar em outros sites
  • Moderador
36 minutos atrás, Doidodepeda disse:

Deu o Seguinte Errro

 

1.png

function onUse(cid, item, frompos, item2, topos)

local time = 1800 -- Tempo que durará em segundos
local texto = 'Voce Ganhou 30 Minutos de Exp [3x]' -- Texto que irá receber ao usar a potion.
textofinal = 'Bonus de Exp [3x] Finalizada' -- Texto que irá receber quando o efeito da potion acabar.
local exp = 3.0 -- 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.
local stor = 12132

if ((tonumber(getPlayerStorageValue(cid, stor) - os.time())) >= 1) then

   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "em uso")

end

if item.itemid == 7440 then
doRemoveItem(item.uid, 1)
doPlayerSetExperienceRate(cid, exp)
doSendMagicEffect(frompos, 13)
doPlayerSendTextMessage(cid, 22, texto)
addEvent(potion, time * 1000, cid)
setPlayerStorageValue(cid, stor, os.time() + time)
end
end


function potion(pos, cid)
doPlayerSetExperienceRate(pos, expfinal)
doPlayerSendTextMessage(pos,22, textofinal)
end

Link para o post
Compartilhar em outros sites
21 minutos atrás, So volto tarde disse:

function onUse(cid, item, frompos, item2, topos)

local time = 1800 -- Tempo que durará em segundos
local texto = 'Voce Ganhou 30 Minutos de Exp [3x]' -- Texto que irá receber ao usar a potion.
textofinal = 'Bonus de Exp [3x] Finalizada' -- Texto que irá receber quando o efeito da potion acabar.
local exp = 3.0 -- 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.
local stor = 12132

if ((tonumber(getPlayerStorageValue(cid, stor) - os.time())) >= 1) then

   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "em uso")

end

if item.itemid == 7440 then
doRemoveItem(item.uid, 1)
doPlayerSetExperienceRate(cid, exp)
doSendMagicEffect(frompos, 13)
doPlayerSendTextMessage(cid, 22, texto)
addEvent(potion, time * 1000, cid)
setPlayerStorageValue(cid, stor, os.time() + time)
end
end


function potion(pos, cid)
doPlayerSetExperienceRate(pos, expfinal)
doPlayerSendTextMessage(pos,22, textofinal)
end

Agora foi sem erro, pois esta dando pra usar quantas eu quiser. o exausted n funfou =[

Link para o post
Compartilhar em outros sites

@Doidodepeda Boa tarde, tente assim: 

 

OBS: Se o script funcionar os créditos é do @So volto tarde, eu só ajustei mais ele foi quem criou.

 

function onUse(cid, item, frompos, item2, topos)

local time = 1800 -- Tempo que durará em segundos
local texto = 'Voce Ganhou 30 Minutos de Exp [3x]' -- Texto que irá receber ao usar a potion.
textofinal = 'Bonus de Exp [3x] Finalizada' -- Texto que irá receber quando o efeito da potion acabar.
local exp = 3.0 -- 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.
local stor = 12132

if (getPlayerStorageValue(cid, stor) > os.time()) then
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "em uso")
   return;
end

if item.itemid == 7440 then
   doRemoveItem(item.uid, 1)
   doPlayerSetExperienceRate(cid, exp)
   doSendMagicEffect(frompos, 13)
   doPlayerSendTextMessage(cid, 22, texto)
   addEvent(potion, time * 1000, cid)
   setPlayerStorageValue(cid, stor, (os.time() + time))
end
end


function potion(pos, cid)
doPlayerSetExperienceRate(pos, expfinal)
doPlayerSendTextMessage(pos,22, textofinal)
end

 

Link para o post
Compartilhar em outros sites
19 horas atrás, MatteusDeli disse:

@Doidodepeda Boa tarde, tente assim: 

 

OBS: Se o script funcionar os créditos é do @So volto tarde, eu só ajustei mais ele foi quem criou.

 


function onUse(cid, item, frompos, item2, topos)

local time = 1800 -- Tempo que durará em segundos
local texto = 'Voce Ganhou 30 Minutos de Exp [3x]' -- Texto que irá receber ao usar a potion.
textofinal = 'Bonus de Exp [3x] Finalizada' -- Texto que irá receber quando o efeito da potion acabar.
local exp = 3.0 -- 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.
local stor = 12132

if (getPlayerStorageValue(cid, stor) > os.time()) then
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "em uso")
   return;
end

if item.itemid == 7440 then
   doRemoveItem(item.uid, 1)
   doPlayerSetExperienceRate(cid, exp)
   doSendMagicEffect(frompos, 13)
   doPlayerSendTextMessage(cid, 22, texto)
   addEvent(potion, time * 1000, cid)
   setPlayerStorageValue(cid, stor, (os.time() + time))
end
end


function potion(pos, cid)
doPlayerSetExperienceRate(pos, expfinal)
doPlayerSendTextMessage(pos,22, textofinal)
end

 

Irmao, tem como colocar uma storage de exausted por favor ?

Pq tenho varias exp potion. ai ta dando pra usar todas de vez.

Link para o post
Compartilhar em outros sites
--///////////////CONFIGURAÇÃO///////////////////////
function onUse(cid, item, frompos, item2, topos)
local Iditem = 7440 --ID DO ITEM
local storage = 1524
local Exp = 3.0
local texto = 'Voce Ganhou 30 Minutos de Exp [3x]'
local days = 1
--///////////////FINAL DA CONF//////////////////////

if getPlayerStorageValue(cid, storage) <= 0 then
    doSendMagicEffect(getPlayerPosition(cid), 10)
    setPlayerStorageValue(cid, storage, os.time()+days*76*24) -- configurar o tempo
    doPlayerSendTextMessage(cid, 22, texto)
    doPlayerSetExperienceRate(cid, Exp)
    doPlayerRemoveItem(cid, Iditem, 1)
else
    horas = math.floor((getPlayerStorageValue(cid, storage) - os.time())/(76))
    minutos = math.floor((getPlayerStorageValue(cid, storage) - os.time())/(60))
             if horas >= 1 then
    return doPlayerSendCancel(cid, "Voce podera usar a pocao em "..(minutos < 0 and 0 or minutos).." minutos")
end
end
end

Fiz esse aqui, testa ai.

Editado por Saawsss (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
7 horas atrás, Saawsss disse:

--///////////////CONFIGURAÇÃO///////////////////////
function onUse(cid, item, frompos, item2, topos)
local Iditem = 7440 --ID DO ITEM
local storage = 1524
local Exp = 3.0
local texto = 'Voce Ganhou 30 Minutos de Exp [3x]'
local days = 1
--///////////////FINAL DA CONF//////////////////////

if getPlayerStorageValue(cid, storage) <= 0 then
    doSendMagicEffect(getPlayerPosition(cid), 10)
    setPlayerStorageValue(cid, storage, os.time()+days*76*24) -- configurar o tempo
    doPlayerSendTextMessage(cid, 22, texto)
    doPlayerSetExperienceRate(cid, Exp)
    doPlayerRemoveItem(cid, Iditem, 1)
else
    horas = math.floor((getPlayerStorageValue(cid, storage) - os.time())/(76))
    minutos = math.floor((getPlayerStorageValue(cid, storage) - os.time())/(60))
             if horas >= 1 then
    return doPlayerSendCancel(cid, "Voce podera usar a pocao em "..(minutos < 0 and 0 or minutos).." minutos")
end
end
end

Fiz esse aqui, testa ai.

as vezes da pra usar, e as vezes da isso ''you cannot use this object''

2 horas atrás, Doidodepeda disse:

as vezes da pra usar, e as vezes da isso ''you cannot use this object''

Outro bug que acabei de ver, caso vc jogue a potion no chao e vc sa user nela, ela n some. fica la no chao pra qlq pessoa usar e sem sumir.

Link para o post
Compartilhar em outros sites
  • Solução

@Doidodepeda Boa noite, tente assim:

 

Altere o xml para:

Separe cada itemid da potion por ";", como está abaixo

<action itemid="7440;7439" script="expPotions.lua"/>

 

Altere o script para esse, está comentado como usar:

local expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal.
local textoPotionUsada =  "em uso"

local potions = {
   -- [ID_POTION] = { tempo = DURAÇÃO, experiencia = EXPERIENCIA, quantidade = QUANTIDADE_DE_POTIONS, texto = 'Voce Ganhou 30 Minutos de Exp [3x]', textofinal = 'Bonus de Exp [3x] Finalizada', storage = STORAGE_UNICO_PARA_CADA_POTION, textoClasse = 22, efeito = 1 },
   [7440] = { tempo = 1800, experiencia = 3.0, quantidade = 1, texto = 'Voce Ganhou 30 Minutos de Exp [3x]', textofinal = 'Bonus de Exp [3x] Finalizada', storage = 33330, textoClasse = 22, efeito = 1 },
   [7439] = { tempo = 2000, experiencia = 5.0, quantidade = 1, texto = 'Voce Ganhou 30 Minutos de Exp [5x]', textofinal = 'Bonus de Exp [5x] Finalizada', storage = 33331, textoClasse = 22, efeito = 1 }
}

function onUse(cid, item, frompos, item2, topos)

   for potionId, potionConfig in pairs(potions) do
      if item.itemid == potionId then

         if (getPlayerStorageValue(cid, potionConfig.storage) > os.time()) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, textoPotionUsada)
            return;
         end

         local quantidadePotionPlayer = getPlayerItemCount(cid, potionId)
         if quantidadePotionPlayer < potionConfig.quantidade or quantidadePotionPlayer <= 0 then
            return;
         end
         doRemoveItem(item.uid, potionConfig.quantidade)
         doPlayerSetExperienceRate(cid, potionConfig.experiencia)
         doSendMagicEffect(frompos, potionConfig.efeito)
         doPlayerSendTextMessage(cid, potionConfig.textoClasse, potionConfig.texto)
         addEvent(potion, potionConfig.tempo * 1000, cid, potionConfig)
         setPlayerStorageValue(cid, potionConfig.storage, (os.time() + potionConfig.tempo))
      end   
   end

end

function potion(cid, potionConfig)
   doPlayerSetExperienceRate(cid, expfinal)
   doPlayerSendTextMessage(cid, potionConfig.textoClasse, potionConfig.textofinal)
end

 

Link para o post
Compartilhar em outros sites
Em 22/08/2021 em 18:49, Doidodepeda disse:

as vezes da pra usar, e as vezes da isso ''you cannot use this object''

Outro bug que acabei de ver, caso vc jogue a potion no chao e vc sa user nela, ela n some. fica la no chao pra qlq pessoa usar e sem sumir.

Vai no script que te mandei procura a linha >> 

doPlayerRemoveItem(cid, Iditem, 1)

e muda pra

doRemoveItem(IdItem.uid, 1)

ver se funciona e me avisa

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo