Ir para conteúdo
  • Cadastre-se

(Resolvido)Magia por Itens


Ir para solução Resolvido por Mathias Kenfi,

Posts Recomendados

Alguém sabe como posso fazer um item lançar magia.

Ex. uma sword quando clicada para usar, lançaria uma spell death_strike no alvo alem do dano normal de ataque. Lembrando que não é para ser automático é só quando clicar na espada.

Ela tbm teria range 4 e gastaria 150 de mana. Utilizo TFS 1.2.

 

image.thumb.png.5f19c3b496ea4037b5ad6e8b3cd44675.png

 

Coloquei uma action para usar a spell, porem deu esse erro ai em cima alguem sabe pq? Segue a spell abaixo.

 

local primeiroCombat = Combat()
primeiroCombat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
primeiroCombat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONHIT)
primeiroCombat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
primeiroCombat:setParameter(COMBAT_PARAM_BLOCKSHIELD, true)

local segundoCombat = Combat()
segundoCombat:setParameter(COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
segundoCombat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
segundoCombat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
segundoCombat:setParameter(COMBAT_PARAM_BLOCKSHIELD, true)

local area = createCombatArea( { 
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0}, 
{0, 1, 1, 3, 1, 1, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0} } )

local area2 = createCombatArea( { 
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 0, 1, 1, 0}, 
{1, 0, 0, 3, 0, 0, 1},
{0, 1, 1, 0, 1, 1, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0} } )

primeiroCombat:setArea (area)
segundoCombat:setArea (area2)

 function onGetFormulaValues(player, skill, attack, factor)
    local min = (player:getLevel() / 1) + (skill * attack * 0.03) + 50
    local max = (player:getLevel() / 1) + (skill * attack * 0.08) + 50  
    return -min, -max
end

primeiroCombat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

 function onGetFormulaValues(player, skill, attack, factor)
    local min = (player:getLevel() / 1) + (skill * attack * 0.01) + 50
    local max = (player:getLevel() / 1) + (skill * attack * 0.02) + 50  
    return -min, -max
end
segundoCombat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")


function onUse(player, item, fromPosition, itemEx, toPosition)

    primeiroCombat:execute(player, variant)
    segundoCombat:execute(player, variant)
    return true

end


 

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

Ao invés de registrar em uma função de Action, registre-o como uma runa (Sudden Death Rune por exemplo

 

E no local do "idrune" você coloque o id de uma Sword (use with) 

Link para o post
Compartilhar em outros sites
  • 1 month later...

Tentei fazer como runa mais não deu certo.

tipo, quando registra como runa nos "items.xml" dentro do jogo a espada perde os atributos (ataque, defesa etc..) na verdade só a descrição do texto mais a espada funciona normal.

 

Link para o post
Compartilhar em outros sites
  • Solução
17 horas atrás, lazarus321 disse:

Tentei fazer como runa mais não deu certo.

tipo, quando registra como runa nos "items.xml" dentro do jogo a espada perde os atributos (ataque, defesa etc..) na verdade só a descrição do texto mais a espada funciona normal.

 

 

Você deve deixar Normal no Items.xml, você deve registrar como Runa no Spells.xml

 

Exemplo:

<rune name="Sword" id="ID" allowfaruse="1" charges="1" lvl="60" maglv="1" exhaustion="1000" needtarget="1" blocktype="solid" event="script" value="NOME DO ARQUIVO.lua"/>

Link para o post
Compartilhar em outros sites

Perfeito Joaovettor,

 

Muito obrigado pela ajuda, deu certinho aqui.

Rep+

 

Só nao sei pq itens com dano elemental não funciona. Utilizando espada com dano físico funciona normal. 

Editado por lazarus321 (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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo