Ir para conteúdo
  • 0

Efeito especifo em quem acertar


Fjinst

Pergunta

Olá a todos(as), gostaria de pedir ajuda em uma magia de area, É uma magia que no caso teria uma area invisivel, porém, quando acertar essa pessoa/criatura na area, surge o efeito em cima da pessoa. só isso.

 

Antes que me mandem fazer por target, se possivel eu queria fazer sendo em área, uma área invisivel, porém, se acertar a pessoa/criatura aparece o efeito especificamente nessa pessoa na qual foi atingida.

 

A area É um quadrado, o efeito no qual apareceria quando acertar uma pessoa/criatura seria o número "52"

local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(combat, COMBAT_PARAM_EFFECT, 130)setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)local area = createCombatArea(AREADIAGONAL_QUADRADO)setCombatArea(combat, area)function onCastSpell(cid, var)	return doCombat(cid, combat, var)end

Agradeço pela atenção.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(combat, COMBAT_PARAM_EFFECT, 130)setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)local area = createCombatArea(AREADIAGONAL_QUADRADO)setCombatArea(combat, area)function onCastSpell(cid, var)  doSendMagicEffect({x = var[pos][x], y = var[pos][y], z = var[pos][z]}, 52)	return doCombat(cid, combat, var)end

 

Tenta aí.

Link para o comentário
Compartilhar em outros sites

  • 0

Não funcionou, a magia simplesmente não saiu, segue o erro abaixo.

 

 

[15:59:39.554] [Error - Spell Interface]
[15:59:39.557] data/spells/scripts/berserker/ezodus.lua:onCastSpell
[15:59:39.558] Description:
[15:59:39.565] data/spells/scripts/berserker/ezodus.lua:14: attempt to index field '?' (a nil value)
[15:59:39.567] stack traceback:
[15:59:39.568]  data/spells/scripts/berserker/ezodus.lua:14: in function <data/spells/scripts/ berserker/ezodus.lua:12>

Link para o comentário
Compartilhar em outros sites

  • 0
local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(combat, COMBAT_PARAM_EFFECT, 130)setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)local area = createCombatArea(AREADIAGONAL_QUADRADO)setCombatArea(combat, area)function onCastSpell(cid, var)  doSendMagicEffect({x = var[pos].x, y = var[pos].y, z = var[pos].z}, 52)	return doCombat(cid, combat, var)end

 

Link para o comentário
Compartilhar em outros sites

  • 0

Se fosse para poketibia eu até sabia fazer , vou deixar aqui pq pode ser útil caso você ou alguém consiga entender e adaptar...

 

elseif spell == "Nome da Spell" then    local ret = {}    ret.id = 0    ret.cd = 7    ret.check = 0    ret.eff = 52   -- esse efeito vai aparecer só em quem for acertado pela magia    ret.spell = spell  --  ret.cond = 0                 -- (cid, effect, area, DanoType, min, max, spell, ret)  (esses 2: spell e ret só se tiver aquilo acima)                               doMoveInArea2(cid, 0, quadrado, FIREDAMAGE, min, max, spell, ret)  -- área = quadrado(essa area fica em outro arquivo junto com outras areas)                    -- 0 pq como disse o dano em area é "invisível" saindo effect só em quem acertar (ret.effect)					-- caso a magia não cause dano, seria só trocar "min, max," por  "0, 0,"    

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...