Postado Abril 13, 2018 7 anos Peguei um script de aura aqui no TK, quando um player loga no meu server, ele ja ganha essa aura automatica que fica girando em torno do player. eu queria colocar pra quando o player logasse no server, nao so tivesse a opção HOLY eu queria que o player pudesse escolher o distance effect (aquele comando /x 1...2...3...) Script da aura: Spoiler -- CONFIGURAÇÕES aurastr = 25950 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 50 -- chance de curar em cada volta da aura, em porcentagem quantheal = 1 -- 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 = 37 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo) efeitocura = 28 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) -- 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 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 onLogin(cid) if isPremium(cid) == true and getPlayerGroupId(cid) < 4 then if getPlayerStorageValue(cid, estr) > os.time() then doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura novamente.") elseif(getPlayerStorageValue(cid, aurastr)==-1) and getPlayerPremiumDays(cid) >= 1 then doPlayerSendCancel(cid,"Aura ligada!") setPlayerStorageValue(cid, aurastr, 2) efeitosAura(1,tempo/8,cid) elseif(getPlayerStorageValue(cid, aurastr)==-1) and isPremium(cid) == false then doPlayerSendCancel(cid,"Voce nao tem VIP") end end return TRUE end Alguem pode me ajudar a botar um math.random nessa linha no script? tipoaura = 37 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
Postado Abril 15, 2018 7 anos Se colocar math.random o player não vai escolher. Acontecerá que terá chance de quando, por exemplo, o player logar sair x, x, x ou x efeito... Afinal, vc quer q o player escolha ou que seja random?
Postado Abril 16, 2018 7 anos Autor queria que ele pudesse escolher Editado Abril 16, 2018 7 anos por poko360 (veja o histórico de edições)
Postado Abril 16, 2018 7 anos vc pode salvar o número do efeito que o jogador escolher em uma storage, quando logar vai chegar essa storage, exemplo: tipoaura = getPlayerStorageValue(cid, 789635) <= 0 and 37 or getPlayerStorageValue(cid, 789635) ai na talk quando jogador escolher a efeito, salva assim: if not param or not tonumber(param) then doPlayerSendCancel(cid, "You must choose an number.") return true elseif tonumber(param) <= 0 or tonumber(param) > 65 then -- 65 limit do effect no /x n sei se eh esse msm doPlayerSendCancel(cid, "chosse 1 - 65 effect.") return true end setPlayerStorageValue(cid, 789635, tonumber(param))
Postado Abril 16, 2018 7 anos Autor @Vodkart tipo eu uso o TFS 0.4 , dai são 41 efeitos (/x) ai eu tenho 1 duvida... aquele 37 ali é a quantidade de /x que vai salvar? tipo do 0 ate o 37? n seria ate o 41 nao? ou to errado tipoaura = getPlayerStorageValue(cid, 789635) <= 0 and 37 or getPlayerStorageValue(cid, 789635) ,,, 2 horas atrás, Vodkart disse: if not param or not tonumber(param) then doPlayerSendCancel(cid, "You must choose an number.") return true elseif tonumber(param) <= 0 or tonumber(param) > 65 then -- 65 limit do effect no /x n sei se eh esse msm doPlayerSendCancel(cid, "chosse 1 - 65 effect.") return true end setPlayerStorageValue(cid, 789635, tonumber(param)) e onde eu coloco isso? tipo, fui adicionar em uma linha e ta dando um error na distro <eof>... acredito q falta um end (ou coloquei errado), podes me ajudar? Aura (talkaction) Spoiler -- CONFIGURAÇÕES aurastr = 25950 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 0 -- chance de curar em cada volta da aura, em porcentagem quantheal = 1 -- 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 = 37 -- 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) -- 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 endend -- Função principalfunction onSay(cid, words, param, channel) if(param=="on") and isPremium(cid) == true 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) and getPlayerPremiumDays(cid) >= 1 then doPlayerSendCancel(cid,"Aura ligada!") setPlayerStorageValue(cid, aurastr, 2) efeitosAura(1,tempo/8,cid) elseif(getPlayerStorageValue(cid, aurastr)==-1) and getPlayerPremiumDays(cid) == 0 then doPlayerSendCancel(cid,"Voce nao tem VIP") 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 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la. \n (Voce precisa de VIP)") end return TRUEend Editado Abril 16, 2018 7 anos por poko360 (veja o histórico de edições)
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.