Ir para conteúdo

Featured Replies

Postado
Em 01/02/2021 em 13:10, QuebradaZN disse:

 

Boa Tarde, Hoje venho trazer a vocês um Sistema de Aura!

Feito pelo @bielzinhocrazy [Fakezim/BielzinhoCrazy/GMLeal

 

Mudanças que Foram feitas...

Retirei a ativação da Aura por Talk e coloquei por Equip

Fixei o Bug que a aura Não Girava em torno do Player

Fixei o Bug que o Player Parava de receber a aura assim que Tinha o Efeito da Cura!

 

Em Movements/scripts/ Crie um Arquivo com nome de aura.lua


-- 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 = 20 -- 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 = 31 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 54 -- 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[i].x, y=posaura[i].y, z=posaura[i].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[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
        elseif(i<8) then
            doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].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

function onEquip(player, item, slot, isCheck)
    local slot_ = player:getSlotItem(CONST_SLOT_RING)
                    if slot_ and slot_.itemid == item.itemid then
                        return false 
                    end
    	            doPlayerSendCancel(player,"Você Ativou a Aura!")
            setPlayerStorageValue(player, aurastr, 2)
            efeitosAura(1,tempo/8,player.uid)
    return true
end
function onDeEquip(player, item, slot, isCheck)
    if(getPlayerStorageValue(player, aurastr)==2) then
            setPlayerStorageValue(player, estr, os.time()+2)
            setPlayerStorageValue(player, aurastr, -1)
            doPlayerSendCancel(player,"Você Desativou a Aura!")
    return true
end
end

 

Feito Isso Vamos Registrar esse Script

Em Movements/movements.xml


<movevent event="Equip" itemid="9003" slot="ring" script="aura.lua" />
<movevent event="DeEquip" itemid="9003" slot="ring" script="aura.lua" />

OBS: Usei o Golden Falcon como Item

 

Agora em Creaturescripts/scripts crie um Arquivos Chamado aura.lua


function onLogin(cid)
	if(getPlayerStorageValue(cid, 25950)==2) then
		return efeitosAura(1,tempo/8,cid.uid)
	end
	return TRUE
end

Caso o Player Deslogue com a Aura Ativa, Quando retornar Online Continuará com a Aura!

Registrando no Login.lua


player:registerEvent("AuraLogin")

 

Em Creaturescripts/creaturescripts.xml


    <event type="login" name="AuraLogin" script="others/aura.lua" />

Nesse Caso minha Aura.lua está na Pasta others!

 

Então é isso Pessoal, Qualquer problema Tentarei ajudar todos por Aqui

 

Espero ter ajudado!

Prints

  • Respostas 5
  • Visualizações 3.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

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