Ir para conteúdo

Featured Replies

Postado

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.

5ad0cf69b135b_Semttulo.png.5735d47aa0236f151b37f8e283e65b44.png

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)

Resolvido por Vodkart

Ir para solução
  • Respostas 15
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • consegui editar aqui, funcionou perfeitamente, obg

  • mto estranho, testei aqui e funcionou. Teste assim:       -- CONFIGURAÇÕES aurastr = 25950 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 50 --

Posted Images

Postado

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

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
  • 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
    end
end

-- Função principal
function 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 TRUE
end 

 

 

Editado 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.

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