Ir para conteúdo
  • Cadastre-se

(Resolvido)Magia por Posição.


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

Ola pessoal, meu pedido é o seguinte. preciso que fique saindo magia  das 4 direções < Esqueda | > Direita | \/ Baixo | /\ Cima. do lugar que eu colocar tal ActionID.

Que a magia saia de 3 em 3 segundos, E que em cada direção saia 5 SQMS de magia.

                                                                                        TFS 0.4

Agradeço desde já !

Pedido.png

Editado por OutSider Server (veja o histórico de edições)

Banner-iloveimg-resized.png.1bb17721fa62d05f04e8e19b68c94f08.png

 

Link para o post
Compartilhar em outros sites

Se entendi bem, é para os efeitos ficarem saindo de 3 em 3 segundos numa posição do mapa, certo? Não testei, qualquer coisa só falar. Em globalevents/scripts crie um arquivo.lua:

 

local center = {x=1,y=1,z=1} -- posição central 
local varX, varY = 5,5 -- quantos sqms em X, quantos sqms em Y a partir do centro
local effect = CONST_ME_TELEPORT -- efeito

function onThink(interval, lastExecution)
for i, v in ipairs(getArea(center, varX, varY)) do
    if (v.x == center.x or v.y == center.y) and (not doComparePositions(center, v)) then
        doSendMagicEffect(v, effect)
    end
end
return true
end

 

Em globalevents.xml, adicione a tag: <globalevent name="EfeitoChao" interval="3000" event="script" value="NOMEDOARQUIVO.lua"/>

 

Aqui em interval="3000", você edita para o tempo que desejar, coloquei 3 segundos como exemplo.

Contato:

 

Link para o post
Compartilhar em outros sites
3 horas atrás, Dwarfer disse:

Se entendi bem, é para os efeitos ficarem saindo de 3 em 3 segundos numa posição do mapa, certo? Não testei, qualquer coisa só falar. Em globalevents/scripts crie um arquivo.lua:

 


local center = {x=1,y=1,z=1} -- posição central 
local varX, varY = 5,5 -- quantos sqms em X, quantos sqms em Y a partir do centro
local effect = CONST_ME_TELEPORT -- efeito

function onThink(interval, lastExecution)
for i, v in ipairs(getArea(center, varX, varY)) do
    if (v.x == center.x or v.y == center.y) and (not doComparePositions(center, v)) then
        doSendMagicEffect(v, effect)
    end
end
return true
end

 

Em globalevents.xml, adicione a tag: <globalevent name="EfeitoChao" interval="3000" event="script" value="NOMEDOARQUIVO.lua"/>

 

Aqui em interval="3000", você edita para o tempo que desejar, coloquei 3 segundos como exemplo.

Bom ele não está dando Dano, eu quero que alem de sair os efeitos, toda vez que o efeito sair de um dano tbm, como se fosse realmente uma magia !

Editado por OutSider Server (veja o histórico de edições)

Banner-iloveimg-resized.png.1bb17721fa62d05f04e8e19b68c94f08.png

 

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

Não tirou dano porque você não tinha dito que era pra tirar. Enfim:

 

Spoiler

local center = {x=1,y=1,z=1} -- posição central 
local varX, varY = 5,5 -- quantos sqms em X, quantos sqms em Y a partir do centro
local effect = CONST_ME_TELEPORT -- efeito
local min, max = 100, 200 -- dano mínimo, dano máximo

function onThink(interval, lastExecution)
for i, v in ipairs(getArea(center, varX, varY)) do
    if (v.x == center.x or v.y == center.y) and (not doComparePositions(center, v)) then
        doSendMagicEffect(v, effect)
        local player = getTopCreature(v).uid
        if isPlayer(player) then
            local value = -math.random(min,max)
            doCreatureAddHealth(player, value)
            doSendAnimatedText(v, value, COLOR_RED)
        end
    end
end
return true
end

 

 

 

Contato:

 

Link para o post
Compartilhar em outros sites
10 minutos atrás, Dwarfer disse:

Não tirou dano porque você não tinha dito que era pra tirar. Enfim:

 

  Ocultar conteúdo


local center = {x=1,y=1,z=1} -- posição central 
local varX, varY = 5,5 -- quantos sqms em X, quantos sqms em Y a partir do centro
local effect = CONST_ME_TELEPORT -- efeito
local min, max = 100, 200 -- dano mínimo, dano máximo

function onThink(interval, lastExecution)
for i, v in ipairs(getArea(center, varX, varY)) do
    if (v.x == center.x or v.y == center.y) and (not doComparePositions(center, v)) then
        doSendMagicEffect(v, effect)
        local player = getTopCreature(v).uid
        if isPlayer(player) then
            local value = -math.random(min,max)
            doCreatureAddHealth(player, value)
            doSendAnimatedText(v, value, COLOR_RED)
        end
    end
end
return true
end

 

 

 

Agradeço !

Banner-iloveimg-resized.png.1bb17721fa62d05f04e8e19b68c94f08.png

 

Link para o post
Compartilhar em outros sites
Spoiler

local center = Position(1,1,1)
local varX, varY = 5,5
local effect = CONST_ME_TELEPORT
local min, max = 100, 300

function onThink(interval)
local f = Position(center.x-varX, center.y-varY, center.z)
local t = Position(center.x+varX, center.y+varY, center.z)
iterateArea(function(p)
    if (p.x == center.x or p.y == center.y) and p ~= center then
        p:sendMagicEffect(effect)
        local tile = Tile(p)
        if tile then
            local creature = tile:getTopCreature()
            if creature and creature:isPlayer() then
                local value = -math.random(min, max)
                creature:addHealth(value)
            end
        end
    end
end, f, t)   
return true
end

function iterateArea(func, from, to)
	for z = from.z, to.z do
		for y = from.y, to.y do
			for x = from.x, to.x do
				func(Position(x, y, z))
			end
		end
	end
end

 

 

No globalevents.xml: <globalevent name="EfeitoChao" interval="3000" script="NOMEDOARQUIVO.lua" />

Contato:

 

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