Ir para conteúdo
  • Cadastre-se

(Resolvido)Ajuda Aura System


Ir para solução Resolvido por Nysman,

Posts Recomendados

Bom Dia Galera Do TK

 

preciso de ajuda em um script, ja que eu tenho um mais nao faz o que eu to querendo. veia

 

-- CONFIGURAÇÕES
	aurastrs = 25950 -- storage da aura
	estrs = 25951 -- storage para o exhaust
	porcentagems = 70 -- chance de curar em cada volta da aura, em porcentagems
	quantheal = 15 -- porcentagems do hp máximo que cada cura irá curar. (No caso, irá curar 5% do hp máximo cada cura)
	quantheals = 20
	tempos = 1000 -- tempos para dar uma volta no player (este tempos foi o que achei mais agradável visualmente, é recomendável não mudar)
	tipoauras = 35 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
	efeitocuras = 37 -- 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 efeitosAura2s(i,tm,cid)
	if(isCreature(cid)) then
        	local atuals = getCreaturePosition(cid)
		local posauras = {
			{x=(atuals.x)-1, y=(atuals.y)-1, z=atuals.z},
			{x=atuals.x, y=(atuals.y)-1, z=atuals.z},
			{x=(atuals.x)+1, y=(atuals.y)-1, z=atuals.z},
			{x=(atuals.x)+1, y=atuals.y, z=atuals.z},
			{x=(atuals.x)+1, y=(atuals.y)+1, z=atuals.z},
			{x=atuals.x, y=(atuals.y)+1, z=atuals.z},
			{x=(atuals.x)-1, y=(atuals.y)+1, z=atuals.z},
			{x=(atuals.x)-1, y=atuals.y, z=atuals.z},
		}
		local chances = math.random(100)
		if(chances<=porcentagems/8) then
			doCreatureAddMana(cid, getCreatureMaxMana(cid)/quantheals)
			if(i<=8 and i>1) then
				doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, atuals, tipoauras)
			else
				doSendDistanceShoot({x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, atuals, tipoauras)
			end
			doSendMagicEffect(atuals, efeitocuras)
		end
		if(i==8) then
			doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, tipoauras)
		elseif(i<8) then
			doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[i+1].x, y=posauras[i+1].y, z=posauras[i+1].z}, tipoauras)
		end
		if(i<=8 and getPlayerStorageValue(cid, aurastrs)==2) then
			i = i+1
			tm = tempos/8
			return addEvent(efeitosAura2s,tm,i,tm,cid)
		elseif(i>8 and getPlayerStorageValue(cid, aurastrs)==2) then
			return efeitosAura2s(1,0,cid)
		else
			return TRUE
		end
	else
		return TRUE
	end
end

function efeitosAura2s(i,tm,cid)
	if(isCreature(cid)) then
        	local atuals = getCreaturePosition(cid)
		local posauras = {
			{x=(atuals.x)-1, y=(atuals.y)-1, z=atuals.z},
			{x=atuals.x, y=(atuals.y)-1, z=atuals.z},
			{x=(atuals.x)+1, y=(atuals.y)-1, z=atuals.z},
			{x=(atuals.x)+1, y=atuals.y, z=atuals.z},
			{x=(atuals.x)+1, y=(atuals.y)+1, z=atuals.z},
			{x=atuals.x, y=(atuals.y)+1, z=atuals.z},
			{x=(atuals.x)-1, y=(atuals.y)+1, z=atuals.z},
			{x=(atuals.x)-1, y=atuals.y, z=atuals.z},
		}
		local chances = math.random(100)
		if(chances<=porcentagems/8) then
			doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
			if(i<=8 and i>1) then
				doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, atuals, tipoauras)
			else
				doSendDistanceShoot({x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, atuals, tipoauras)
			end
			doSendMagicEffect(atuals, efeitocuras)
		end
		if(i==8) then
			doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, tipoauras)
		elseif(i<8) then
			doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[i+1].x, y=posauras[i+1].y, z=posauras[i+1].z}, tipoauras)
		end
		if(i<=8 and getPlayerStorageValue(cid, aurastrs)==2) then
			i = i+1
			tm = tempos/8
			return addEvent(efeitosAura2s,tm,i,tm,cid)
		elseif(i>8 and getPlayerStorageValue(cid, aurastrs)==2) then
			return efeitosAura2s(1,0,cid)
		else
			return TRUE
		end
	else
		return TRUE
	end
end

-- Função principal
function onSay(cid, words, param, channel)
if getPlayerStorageValue(cid, 89124) <= 0 then
doPlayerSendCancel(cid, "Você precisa ter feito a quest.")
return true
end
if getPlayerStorageValue(cid, 25952) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 1.")
return true
end
if getPlayerStorageValue(cid, 27651) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 3.")
return true
end
if getPlayerStorageValue(cid, 28911) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 4.")
return true
end
	if(param=="on") then
		if getPlayerStorageValue(cid, estrs) > os.time() then
			doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estrs) - os.time()).." segundos para poder habilitar aura level 2 novamente.")
		else
			if(getPlayerStorageValue(cid, aurastrs)==2) then
				doPlayerSendCancel(cid,"Sua Aura Level 2 já está habilitada.")
			elseif(getPlayerStorageValue(cid, aurastrs)==-1) then
				doPlayerSendCancel(cid,"Aura Level 2 ligada!")
				setPlayerStorageValue(cid, aurastrs, 2)
				efeitosAura2s(1,tempos/8,cid)
		end
		end
	elseif(param=="off") then
		if(getPlayerStorageValue(cid, aurastrs)== 2) then
			setPlayerStorageValue(cid, estrs, os.time()+2)
			setPlayerStorageValue(cid, aurastrs, -1)
			doPlayerSendCancel(cid,"Aura Level 2 desligada!")
		end
	else	
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura1 on' para ligar sua aura, e '!aura1 off' para desligá-la.")
	end
	return true
end 

 

Eu tenho esse sistema de aura mais ele so heala a heal e eu quero ela healar mana e heal jontas, e possivel isso?

 

Do Rep+ Pra melhor reposta ;)

Link para o post
Compartilhar em outros sites

Este tópico foi movido para a seção de Suporte Otserv.

 

 

 

 

 

                                                                                                                                                     tumblr_nwmv2z4VEM1ujiquxo1_100.gif.2db64bb36f0f565e68ff2a90cb98f439.gif.59f4c4cf234d2f6906621cac0553a862.gif

https://github.com/italoxxx1

 

Link para o post
Compartilhar em outros sites
  • Solução

Seu script já heala a mana irmão, mas testa esse aqui:

Spoiler

-- CONFIGURAÇÕES
    aurastrs = 25950 -- storage da aura
    estrs = 25951 -- storage para o exhaust
    porcentagems = 70 -- chance de curar em cada volta da aura, em porcentagems
    quantheal = 15 -- porcentagems do hp máximo que cada cura irá curar. (No caso, irá curar 5% do hp máximo cada cura)
    quantheals = 50
    tempos = 1000 -- tempos para dar uma volta no player (este tempos foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoauras = 35 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocuras = 37 -- 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 efeitosAura2s(i,tm,cid)
    if(isCreature(cid)) then
            local atuals = getCreaturePosition(cid)
        local posauras = {
            {x=(atuals.x)-1, y=(atuals.y)-1, z=atuals.z},
            {x=atuals.x, y=(atuals.y)-1, z=atuals.z},
            {x=(atuals.x)+1, y=(atuals.y)-1, z=atuals.z},
            {x=(atuals.x)+1, y=atuals.y, z=atuals.z},
            {x=(atuals.x)+1, y=(atuals.y)+1, z=atuals.z},
            {x=atuals.x, y=(atuals.y)+1, z=atuals.z},
            {x=(atuals.x)-1, y=(atuals.y)+1, z=atuals.z},
            {x=(atuals.x)-1, y=atuals.y, z=atuals.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagems/8) then
            doCreatureAddMana(cid, getCreatureMaxMana(cid)/quantheals)
            if(i<=8 and i>1) then
                doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, atuals, tipoauras)
            else
                doSendDistanceShoot({x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, atuals, tipoauras)
            end
            doSendMagicEffect(atuals, efeitocuras)
        end
        if(i==8) then
            doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, tipoauras)
        elseif(i<8) then
            doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[i+1].x, y=posauras[i+1].y, z=posauras[i+1].z}, tipoauras)
        end
        if(i<=8 and getPlayerStorageValue(cid, aurastrs)==2) then
            i = i+1
            tm = tempos/8
            return addEvent(efeitosAura2s,tm,i,tm,cid)
        elseif(i>8 and getPlayerStorageValue(cid, aurastrs)==2) then
            return efeitosAura2s(1,0,cid)
        else
            return TRUE
        end
    else
        return TRUE
    end
end

function efeitosAura2s(i,tm,cid)
    if(isCreature(cid)) then
            local atuals = getCreaturePosition(cid)
        local posauras = {
            {x=(atuals.x)-1, y=(atuals.y)-1, z=atuals.z},
            {x=atuals.x, y=(atuals.y)-1, z=atuals.z},
            {x=(atuals.x)+1, y=(atuals.y)-1, z=atuals.z},
            {x=(atuals.x)+1, y=atuals.y, z=atuals.z},
            {x=(atuals.x)+1, y=(atuals.y)+1, z=atuals.z},
            {x=atuals.x, y=(atuals.y)+1, z=atuals.z},
            {x=(atuals.x)-1, y=(atuals.y)+1, z=atuals.z},
            {x=(atuals.x)-1, y=atuals.y, z=atuals.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagems/8) then
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
            doCreatureAddMana(cid, getCreatureMaxMana(cid)/quantheal)
            if(i<=8 and i>1) then
                doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, atuals, tipoauras)
            else
                doSendDistanceShoot({x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, atuals, tipoauras)
            end
            doSendMagicEffect(atuals, efeitocuras)
        end
        if(i==8) then
            doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[1].x, y=posauras[1].y, z=posauras[1].z}, tipoauras)
        elseif(i<8) then
            doSendDistanceShoot({x=posauras[i].x, y=posauras[i].y, z=posauras[i].z}, {x=posauras[i+1].x, y=posauras[i+1].y, z=posauras[i+1].z}, tipoauras)
        end
        if(i<=8 and getPlayerStorageValue(cid, aurastrs)==2) then
            i = i+1
            tm = tempos/8
            return addEvent(efeitosAura2s,tm,i,tm,cid)
        elseif(i>8 and getPlayerStorageValue(cid, aurastrs)==2) then
            return efeitosAura2s(1,0,cid)
        else
            return TRUE
        end
    else
        return TRUE
    end
end

-- Função principal
function onSay(cid, words, param, channel)
if getPlayerStorageValue(cid, 89124) <= 0 then
doPlayerSendCancel(cid, "Você precisa ter feito a quest.")
return true
end
if getPlayerStorageValue(cid, 25952) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 1.")
return true
end
if getPlayerStorageValue(cid, 27651) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 3.")
return true
end
if getPlayerStorageValue(cid, 28911) == 2 then
doPlayerSendCancel(cid, "Você precisa desativar sua aura level 4.")
return true
end
    if(param=="on") then
        if getPlayerStorageValue(cid, estrs) > os.time() then
            doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estrs) - os.time()).." segundos para poder habilitar aura level 2 novamente.")
        else
            if(getPlayerStorageValue(cid, aurastrs)==2) then
                doPlayerSendCancel(cid,"Sua Aura Level 2 já está habilitada.")
            elseif(getPlayerStorageValue(cid, aurastrs)==-1) then
                doPlayerSendCancel(cid,"Aura Level 2 ligada!")
                setPlayerStorageValue(cid, aurastrs, 2)
                efeitosAura2s(1,tempos/8,cid)
        end
        end
    elseif(param=="off") then
        if(getPlayerStorageValue(cid, aurastrs)== 2) then
            setPlayerStorageValue(cid, estrs, os.time()+2)
            setPlayerStorageValue(cid, aurastrs, -1)
            doPlayerSendCancel(cid,"Aura Level 2 desligada!")
        end
    else    
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura1 on' para ligar sua aura, e '!aura1 off' para desligá-la.")
    end
    return true
end 

 

Editado por Nysman (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo