Ir para conteúdo

Featured Replies

Postado

Tenta aí, fiz de cabeça, porque estou no trabalho.

local combat = {}

local area = {
	[1] = {
		{3},
	},
	[2] = {
		{1, 1, 1},
		{0, 2, 0},
	},
	[3] = {
		{1, 1, 1, 1, 1},
		{0, 0, 0, 0, 0},
		{0, 0, 2, 0, 0},
	},
	[4] = {
		{1, 1, 1, 1, 1, 1, 1},
		{0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 2, 0, 0, 0},
	},
}

area[5] = area[3]
area[6] = area[2]
area[7] = area[1]
	
	

for i = 1, 7 do
	combat[i] = createCombatObject()
	setCombatParam(combat[i], COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
	setCombatParam(combat[i], COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
	if i == 1 then
		setCombatParam(combat[i], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
	end
	setCombatFormula(combat[i], COMBAT_FORMULA_LEVELMAGIC, -2, -5, -2, -5)
	
	setCombatArea(combat[i], createCombatArea(area[i]))
end

function callback_spell(cid, var)
	for i = 1, 7 do
		local delay = (i * 100) - 100
		addEvent(function()
			doCombat(cid, combat[i], var)
		end, delay)
	end
end

function onCastSpell(cid, var)
	callback_spell(cid, var)
	return true
end

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

  • Respostas 13
  • Visualizações 742
  • Created
  • Última resposta

Top Posters In This Topic

Postado
  • Autor

Continua mudando direção após andar depois que solta a spell. Ex: Solto pra cima, ando pra ca >, ela vira o resto da spell pra la <.
Por isso fiz o pedido do nomove.



 tumblr_mwfeg45FIV1qk4cb3o4_500.gif

Postado

Vê aí se isso abaixo resolve

 

Se não, só quando eu chegar em casa

 

P.S: Particularmente prefiro resolver sem apelar para doCreatureSetNoMove

local combat = {}

local area = {
	[1] = {
		{3},
	},
	[2] = {
		{1, 1, 1},
		{0, 2, 0},
	},
	[3] = {
		{1, 1, 1, 1, 1},
		{0, 0, 0, 0, 0},
		{0, 0, 2, 0, 0},
	},
	[4] = {
		{1, 1, 1, 1, 1, 1, 1},
		{0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 0, 0, 0, 0},
		{0, 0, 0, 2, 0, 0, 0},
	},
}

area[5] = area[3]
area[6] = area[2]
area[7] = area[1]
	
	

for i = 1, 7 do
	combat[i] = createCombatObject()
	setCombatParam(combat[i], COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
	setCombatParam(combat[i], COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
	if i == 1 then
		setCombatParam(combat[i], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
	end
	setCombatFormula(combat[i], COMBAT_FORMULA_LEVELMAGIC, -2, -5, -2, -5)
	
	setCombatArea(combat[i], createCombatArea(area[i]))
end

function callback_spell(cid, var)
	for i = 1, 7 do
		local delay = (i * 100) - 100
		addEvent(function()
			doCombat(cid, combat[i], var)
		end, delay)
	end
end

function onCastSpell(cid, var)
	local position = getCreatureLookPosition(cid)
	callback_spell(cid, positionToVariant(position))
	return true
end

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

Postado

É meio chato isso mesmo, eu lembro que eu consegui arrumar isso fazendo um sistema de magias com doAreaCombatHealth, sem usar createCombatObject e setCombatArea.

 

Vou deixar a treta para programadores mais experientes.

 

Abraços.

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

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.8k

Informação Importante

Confirmação de Termo