Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

 

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!

"Ainda que eu ande pelo vale da sombra da morte, não temerei mal algum, pois tu estás comigo. Salmos 23:4"

 

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

Top Posters In This Topic

Most Popular Posts

Postado
  • Autor
14 horas atrás, Pedrok22 disse:

opa. tranquilo. instalei certinho, qnd eu entro no jogo vou e equipo o item n acontece nada pq sera?

 

ta dando esse erro na distro

[22:6:28.952] [Error - MoveEvents Interface]
[22:6:28.955] data/movements/scripts/aura.lua:onEquip
[22:6:28.957] Description:
[22:6:28.959] data/movements/scripts/aura.lua:54: attempt to index local 'player' (a number value)
[22:6:28.961] stack traceback:
[22:6:28.966]   data/movements/scripts/aura.lua:54: in function <data/movements/scripts/aura.lua:53>

 

quando vou equipar

Qual TFS esta usando?

 

"Ainda que eu ande pelo vale da sombra da morte, não temerei mal algum, pois tu estás comigo. Salmos 23:4"

 

Postado
  • Autor
Agora, Pedrok22 disse:

0.4

Pois então, no Próprio nome do Post Coloquei a versão do TFS!

 

"Ainda que eu ande pelo vale da sombra da morte, não temerei mal algum, pois tu estás comigo. Salmos 23:4"

 

  • 3 weeks later...
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!

 

Parabéns pela iniciativa e pelo conteudo meu brother, show de bola!

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