Ir para conteúdo
  • Cadastre-se

(Resolvido)Spell de Area


Ir para solução Resolvido por ernaix69,

Posts Recomendados

Bom tropa to tentando fazer com que essa spell de area sigar o player. Mas não estou conseguido, a spell só ficar bufando no mesmo local.

 

 

 

Scritp da spell que estou tentando arruma;

 

Spoiler




local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 487)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.0, -2600, -0.0, -3000)



arr1 = {
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 1, 1, 1, 0, 0},
	{0, 1, 1, 1, 1, 1, 0},
	{0, 1, 1, 3, 1, 1, 0},
	{0, 1, 1, 1, 1, 1, 0},
	{0, 0, 1, 1, 1, 0, 0},
	{0, 0, 0, 0, 0, 0, 0}
}

local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)

local function onCastSpell1(parameters)
    return isCreature(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell1, 500, parameters)
addEvent(onCastSpell1, 1000, parameters)
addEvent(onCastSpell1, 1500, parameters)
addEvent(onCastSpell1, 2000, parameters)
addEvent(onCastSpell1, 2500, parameters)
addEvent(onCastSpell1, 3000, parameters)
return true
end

 

TFS 0.4 versao do servidor 8.60.

 

@Vodkart @xWhiteWolf 

Editado por BangxD (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • BangxD mudou o título para Spell de Area
  • 3 weeks later...
Em 09/12/2020 em 20:29, BangxD disse:

Bom tropa to tentando fazer com que essa spell de area sigar o player. Mas não estou conseguido, a spell só ficar bufando no mesmo local.

 

 

 

 

Scritp da spell que estou tentando arruma;

 

  Ocultar conteúdo





local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 487)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.0, -2600, -0.0, -3000)



arr1 = {
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 1, 1, 1, 0, 0},
	{0, 1, 1, 1, 1, 1, 0},
	{0, 1, 1, 3, 1, 1, 0},
	{0, 1, 1, 1, 1, 1, 0},
	{0, 0, 1, 1, 1, 0, 0},
	{0, 0, 0, 0, 0, 0, 0}
}

local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)

local function onCastSpell1(parameters)
    return isCreature(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell1, 500, parameters)
addEvent(onCastSpell1, 1000, parameters)
addEvent(onCastSpell1, 1500, parameters)
addEvent(onCastSpell1, 2000, parameters)
addEvent(onCastSpell1, 2500, parameters)
addEvent(onCastSpell1, 3000, parameters)
return true
end

 

TFS 0.4 versao do servidor 8.60.

 

@Vodkart @xWhiteWolf 

 

Tentei fazer aqui, não testei então testa e me fala se funciona...

 

Em tempo coloque a quantide de segundos que a spell ira ficar repetindo, e em effect qual o efeito que ira usar

 

Spoiler
local tempo = 3 -- tempo em segundos.
local effect = 487 -- efeito da magia.
 
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.0, -2600, -0.0, -3000)
 
arr1 = {
    {0000000}, 
    {0011100}, 
    {0111110},
    {0113110}, 
    {0111110}, 
    {0011100},
    {0000000}
}
 
local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)
 
local function onCastSpell1(parameters)
    if (isCreature(parameters.cid)) then
        local position = {
            x = getPlayerPosition(parameters.cid).x,
            y = getPlayerPosition(parameters.cid).y,
            z = getPlayerPosition(parameters.cid).z
        }
        doSendMagicEffect(position, effect)
        return isCreature(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
    end
end
 
function onCastSpell(cidvar)
    local parameters = {cid = cid, var = var}
    tempo2 = 0
    while (tempo2 ~= (tempo * 1000)) do
        addEvent(onCastSpell1, tempo2, parameters)
        tempo2 = tempo2 + 300
    end
    return true
end

 

Editado por FeehLoveCes (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
17 horas atrás, FeehLoveCes disse:

 

Tentei fazer aqui, não testei então testa e me fala se funciona...

 

Em tempo coloque a quantide de segundos que a spell ira ficar repetindo, e em effect qual o efeito que ira usar

 

  Ocultar conteúdo
local tempo = 3 -- tempo em segundos.
local effect = 487 -- efeito da magia.
 
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.0, -2600, -0.0, -3000)
 
arr1 = {
    {0000000}, 
    {0011100}, 
    {0111110},
    {0113110}, 
    {0111110}, 
    {0011100},
    {0000000}
}
 
local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)
 
local function onCastSpell1(parameters)
    if (isCreature(parameters.cid)) then
        local position = {
            x = getPlayerPosition(parameters.cid).x,
            y = getPlayerPosition(parameters.cid).y,
            z = getPlayerPosition(parameters.cid).z
        }
        doSendMagicEffect(position, effect)
        return isCreature(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
    end
end
 
function onCastSpell(cidvar)
    local parameters = {cid = cid, var = var}
    tempo2 = 0
    while (tempo2 ~= (tempo * 1000)) do
        addEvent(onCastSpell1, tempo2, parameters)
        tempo2 = tempo2 + 300
    end
    return true
end

 

Obrigado por me responde, mas não funcionou como queria. está saindo somente um efeito em cima do player e não como mostra no video.

Link para o post
Compartilhar em outros sites

você não queria que a spell seguisse o player? agora quando ele usa e anda ela o acompanha... se não for isso, explica com mais detalhes pra min pois não entendi kk

Link para o post
Compartilhar em outros sites

 

Sim, quero que a spell sigar o player. tanto como efeito em area como o dano da spell.

 

olha como está o seu. o efeito é unico não está como mostrei no video la em cima e o dano fica bufando no mesmo local.

 

 

 

 

 

 

 

 

 

 

 

 

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

Agora é só trocar no xml, tirar de area e por self

Spoiler
local tempo = 3 -- tempo em segundos.
local effect = 487 -- efeito da magia.

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.0, -2600, -0.0, -3000)
 
local function onCastSpell1(parameters)
    if (isCreature(parameters.cid)) then
        local position = {
            x = getPlayerPosition(parameters.cid).x,
            y = getPlayerPosition(parameters.cid).y,
            z = getPlayerPosition(parameters.cid).z
        }
        doSendMagicEffect(position, effect)
        return isCreature(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
    end
end

 

function onCastSpell(cidvar)
    local parameters = {cid = cid, var = var}
    tempo2 = 0
    while (tempo2 ~= (tempo * 1000)) do
        addEvent(onCastSpell1, tempo2, parameters)
        tempo2 = tempo2 + 300
    end
    return true
end

 

Link para o post
Compartilhar em outros sites
9 horas atrás, ernaix69 disse:

Agora é só trocar no xml, tirar de area e por self

  Mostrar conteúdo oculto
local tempo = 3 -- tempo em segundos.
local effect = 487 -- efeito da magia.

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.0, -2600, -0.0, -3000)
 
local function onCastSpell1(parameters)
    if (isCreature(parameters.cid)) then
        local position = {
            x = getPlayerPosition(parameters.cid).x,
            y = getPlayerPosition(parameters.cid).y,
            z = getPlayerPosition(parameters.cid).z
        }
        doSendMagicEffect(position, effect)
        return isCreature(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
    end
end

 

function onCastSpell(cidvar)
    local parameters = {cid = cid, var = var}
    tempo2 = 0
    while (tempo2 ~= (tempo * 1000)) do
        addEvent(onCastSpell1, tempo2, parameters)
        tempo2 = tempo2 + 300
    end
    return true
end

 

 

Agora funcionou como queria. Não sabia dessa de self na tag da spell.

 

Muito obrigado aos dois por ter tentado me ajuda vlw.

 

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo