Ir para conteúdo

[PEDIDO] Colocar magic effect no exp ring (a cada 1 segundo)

Featured Replies

Postado

Queria Colocar magic effect no exp ring (a cada 1 segundo) quando for equipado

 

 

 

meu exp ring é esse

function onEquip(cid, item, slot)


local rate = {}


if getPlayerLevel(cid) <= 1000 then
rate = 2
elseif getPlayerLevel(cid) > 1001 and getPlayerLevel(cid) <= 2000 then
rate = 2
elseif getPlayerLevel(cid) > 2001 and getPlayerLevel(cid) <= 3000 then
rate = 2
elseif getPlayerLevel(cid) > 3001 and getPlayerLevel(cid) <= 4000 then
rate = 2
elseif getPlayerLevel(cid) > 4001 then
rate = 2
end


doTransformItem(item.uid, 10309, 1)
doPlayerSendTextMessage(cid, 22, "Sua experiencia foi multiplicada (2x).")
doPlayerSetExperienceRate(cid, rate)
return TRUE
end


function onDeEquip(cid, item, slot)
doTransformItem(item.uid, 10310, 1)
doPlayerSendTextMessage(cid, 22, "Sua experiencia esta de volta ao normal.")
doPlayerSetExperienceRate(cid, 1.0)
return TRUE
end

 

ps: eu tenho um double exp potion que quando é usado ele fika saindo um magic effect a cada 1 segundo até  o efeito acabar, só que esse exp potion ta bugado, se morrer perde o efeito, ai eu queria que botasse esse efeito no exp ring

 

 

o script do potion é esse se facilitar pra por no ring '-', obrigado desde ja

 

 

 

exp potion com efeito

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


local pausa = 30*60*1000 -- (1000 = 1 segundos) Tempo que o script durará
local texto = "Você dobrou sua Experiencia por 30 minutos" -- 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 = 2 -- 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 limitedeuso = 49015
local tempo = 30*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 = 12289 -- seu item que dará double exp
local efeito1 = 53 -- efeito que ficara com o char por meia hora
local efeito2 = 14 -- 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 

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

  • Respostas 27
  • Visualizações 1.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Amigo, tentei de todos os jeitos que eu consegui pensar. Essa foi a forma final que consegui chegar, vê se dá certo: local efeito = 15 local storage = 27398 function onEquip(cid, item, slot, fromPo

Postado

Tenta ae:

local start = os.time()
local efeito = 15

function onEquip(cid, item, slot, fromPosition, toPosition)

local rate = {}

if getPlayerLevel(cid) <= 1000 then
rate = 2
elseif getPlayerLevel(cid) > 1001 and getPlayerLevel(cid) <= 2000 then
rate = 2
elseif getPlayerLevel(cid) > 2001 and getPlayerLevel(cid) <= 3000 then
rate = 2
elseif getPlayerLevel(cid) > 3001 and getPlayerLevel(cid) <= 4000 then
rate = 2
elseif getPlayerLevel(cid) > 4001 then
rate = 2
end

if start >= 1000 then
doSendMagicEffect(getPlayerPosition(cid),efeito)
start = 0;
end

doTransformItem(item.uid, 10309, 1)
doPlayerSendTextMessage(cid, 22, "Sua experiencia foi multiplicada (2x).")
doPlayerSetExperienceRate(cid, rate)
return TRUE
end


function onDeEquip(cid, item, slot)
doTransformItem(item.uid, 10310, 1)
doPlayerSendTextMessage(cid, 22, "Sua experiencia esta de volta ao normal.")
doPlayerSetExperienceRate(cid, 1.0)
return TRUE
end

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

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Postado

Tenta agora:

local efeito = 15

function onEquip(cid, item, slot, fromPosition, toPosition)


local rate = {}


if getPlayerLevel(cid) <= 1000 then
rate = 2
elseif getPlayerLevel(cid) > 1001 and getPlayerLevel(cid) <= 2000 then
rate = 2
elseif getPlayerLevel(cid) > 2001 and getPlayerLevel(cid) <= 3000 then
rate = 2
elseif getPlayerLevel(cid) > 3001 and getPlayerLevel(cid) <= 4000 then
rate = 2
elseif getPlayerLevel(cid) > 4001 then
rate = 2
end

addEvent(doSendMagicEffect, 1000, getPlayerPosition(cid), efeito)

doTransformItem(item.uid, 10309, 1)
doPlayerSendTextMessage(cid, 22, "Sua experiencia foi multiplicada (2x).")
doPlayerSetExperienceRate(cid, rate)
return TRUE
end


function onDeEquip(cid, item, slot)
doTransformItem(item.uid, 10310, 1)
doPlayerSendTextMessage(cid, 22, "Sua experiencia esta de volta ao normal.")
doPlayerSetExperienceRate(cid, 1.0)
return TRUE
end

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

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