Postado Maio 21, 2014 11 anos único erro aparente é que o os.time() não usa milisegundos, ele usa o tempo em segundos.. então não precisa multiplicar por mil; local pausa = days*24*60*60*1000 ficaria local pausa = days*24*60*60 e um adendo: quando vc pretende colocar action por itemid você não precisa colocar esse if item.itemid == seuitem porque o script só vai ser ativado quando for aquele itemid então não faz sentido isso. A gente coloca essa condicional quando tiver mexendo com dois ou mais items no mesmo script ou em alguns casos extremos quando o cara quer ter certeza absoluta que o action/uniqueid pertence aquele item específico Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Maio 21, 2014 11 anos Vish esqueci que os time é em segundos, vou testar o script aqui em casa depois te mando funcional Unico... Testado e funcionando aura.lua -- CONFIGURAÇÕES aurastr = 25950 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura) tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo) efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) local storitem = 32222 local texto = "Voce nao tem acesso ao comando !aura, compre o item para obte-lo" -- Função que chama a aura function efeitosAura(i,tm,cid) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local posaura = { {x=(atual.x)-1, y=(atual.y)-1, z=atual.z}, {x=atual.x, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=atual.y, z=atual.z}, {x=(atual.x)+1, y=(atual.y)+1, z=atual.z}, {x=atual.x, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=atual.y, z=atual.z}, } local chances = math.random(100) if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal) if(i<=8 and i>1) then doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, atual, tipoaura) else doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura) end doSendMagicEffect(atual, efeitocura) end if(i==8) then doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura) elseif(i<8) then doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura) end if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then return efeitosAura(1,0,cid) else return TRUE end else return TRUE end end -- Função principal function onSay(cid, words, param, channel) if(param=="on") and (getPlayerStorageValue(cid, storitem) - os.time() > 0) then if getPlayerStorageValue(cid, estr) > os.time() then doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura novamente.") else if(getPlayerStorageValue(cid, aurastr)==2) then doPlayerSendCancel(cid,"Sua aura já está habilitada.") elseif(getPlayerStorageValue(cid, aurastr)==-1) then doPlayerSendCancel(cid,"Aura ligada!") setPlayerStorageValue(cid, aurastr, 2) efeitosAura(1,tempo/8,cid) end end elseif(param=="off") then if(getPlayerStorageValue(cid, aurastr)==2) then setPlayerStorageValue(cid, estr, os.time()+2) setPlayerStorageValue(cid, aurastr, -1) doPlayerSendCancel(cid,"Aura desligada!") end else if (getPlayerStorageValue(cid, storitem) - os.time() < 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,texto) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desliga-la.") end end return TRUE end talkaction.xml <talkaction words="!aura" event="script" value="aura.lua"/> itemaura.lua function onUse(cid, item, frompos, item2, topos) local pausa = 1*24*60*60-- Tempo que o player tera acesso ao comando(sbistitua days pelo tempo em dias local texto = "Voce ganhou acesso ao comando !aura " -- Texto que irá receber ao usar o item. local storage = 32222 local textofinal1 = "Você ja tem acesso ao comando !aura." local seuitem = 2213 -- id do seu item que dara o comando local efeito2 = 13 -- fim da parte configurável se não tiver conhecimentos de script não mecha if item.itemid == seuitem and (getPlayerStorageValue(cid, storage) - os.time() <= 0) then doRemoveItem(item.uid,1) doSendMagicEffect(frompos,efeito2) setPlayerStorageValue(cid, storage, os.time() + pausa) doPlayerSendTextMessage(cid,22,texto) elseif item.itemid == seuitem and (getPlayerStorageValue(cid, storage) - os.time() > 0) then doPlayerSendTextMessage(cid,22,textofinal1) end return true end action.xml <action itemid="seuitem" event="script" value="itemaura.lua"/> Unico desculpe-me a demora , ontem estava com sono e devo ter feito alguma merda no meio do script... Agora está totalmente funcional... Qualquer dúvida só chamar (configure nas partes configuráveis do script) Obs2: Eu sou extremista ho yeah ... Sqn .. Vlw pelas dicas white. Editado Maio 21, 2014 11 anos por llucas75 (veja o histórico de edições) Scripter: |||||||||| 10% Te ajudei?? REP + e ficamos quites... Atenciosamente, Lucas. Abraços!
Postado Maio 21, 2014 11 anos Autor Manow continua nao funcionando, só que agora, da esta dando para da USE no item e como no caso nao da pra da USE no item nao tem como eu testar e ver se o talkactions estar ou nao funcionando, além do mais vc colocou o ID de um anel como item x, sendo assim creio que nao tem como da USE num anel e ele sumir, certo ???
Postado Maio 21, 2014 11 anos Eduardo tenho uma dúvida se fizer isso o ostime não vai contar só quando o player estiver on ou ele roda enquanto player estiver off também? obs: deixe eu fazer o script pro unico pra treinar . Não, quando o player ta off também. Exemplos disso são as vip's que usam os.time(), mesmo o player estando off, seus dias de vip vão acabando. Dica : elseif é usado para fazer uma outra verificação, antes que o if seja executado, então no caso seria melhor um else. Exemplo : if getPlayerLevel(cid) >= 200 then ... else ... end tradução : se o level do player cid for maior ou igual à 200 então ... senão ... fim facilita, e muito ! -------- Manow continua nao funcionando, só que agora, da esta dando para da USE no item e como no caso nao da pra da USE no item nao tem como eu testar e ver se o talkactions estar ou nao funcionando, além do mais vc colocou o ID de um anel como item x, sendo assim creio que nao tem como da USE num anel e ele sumir, certo ??? tem sim amigo, se ele falou que testou, então creio que você configurou errado ;/ Skype : duhw.carvalho Ajude-nos a crescer, clicando em curtir
Postado Maio 21, 2014 11 anos Autor Configurei oq ? o meu CTRL C e CTRL V ? O Lucas passou a configuração ja acertada, que eu tive q mudar foi so o ID do item na actions.xml que ele nao colocou .. O resto ja estava tudo configurado !!
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.