Postado Junho 6, 2014 10 anos 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 Junho 6, 2014 10 anos por poko360 (veja o histórico de edições)
Postado Junho 6, 2014 10 anos 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 Junho 6, 2014 10 anos por danihcv (veja o histórico de edições) Te ajudei?? REP + e ficamos quites... http://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'> Atenciosamente, Daniel. Abraços! Meus tutoriais: Programação: Resolvendo QUALQUER erro na data base. Scripts (system's, creaturescripts, mod's, NPC's, etc): (Sistema) GOD Ambient Light Full. Adicionando novas mounts ao servidor [NPC] Papai Noel que dá presente todo ano. Web-site: Resolvendo problema de caracteres especiais em PHP Formatando textos em PHP! Mudando a cor, tamanho, fonte, etc. Criando e configurando tabelas para paginas PHP
Postado Junho 6, 2014 10 anos Autor tipo, esse efeito só adiciona quando o ring é equipado (nao fica a cada 1 segundo até acabar o ring)
Postado Junho 6, 2014 10 anos 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... http://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'> Atenciosamente, Daniel. Abraços! Meus tutoriais: Programação: Resolvendo QUALQUER erro na data base. Scripts (system's, creaturescripts, mod's, NPC's, etc): (Sistema) GOD Ambient Light Full. Adicionando novas mounts ao servidor [NPC] Papai Noel que dá presente todo ano. Web-site: Resolvendo problema de caracteres especiais em PHP Formatando textos em PHP! Mudando a cor, tamanho, fonte, etc. Criando e configurando tabelas para paginas PHP
Postado Junho 6, 2014 10 anos Autor agora quando equipa o ring, depois de 1 segundo ele solta o efeito (1x só) ainda n pegou =c
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.