Ir para conteúdo

Featured Replies

Postado
Citar

local config = {
velocidade = 200, -- intervalo entre os giros (quanto menor, mais rapido)
hits = 40, -- quantos hits vai dar
msg = "Cyclone", -- msg ao soltar a spell
key = 13871, -- storage que sera utilizado pro cooldown
cooldown = 6, -- tempo em segundos de cooldown entre um uso da spell e outro.
effect1 = 22, -- efeito de distancia que vai ficar rodando
effect2 = 269, -- efeito no sqm do item
effect3 = 37, -- efeito ao castar a spell
effect4 = 341 -- efeito ao acertar a roda no player
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 255)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -150.0, 0, -260.0, 0)
function onTargetCreature(cid, target)
   doSendMagicEffect(getCreaturePosition(target), config.effect4)
end
setCombatCallback(combat, 4, "onTargetCreature")

local arr = {
{1, 1, 1},
{1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando
{1, 1, 1},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function initEffect(position)
	for i = 0, 3 do
		local pos = {x = position.x, y = position.y, z = position.z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(position, dir, config.effect1)
	end
addEvent(doSendMagicEffect, 300, position, config.effect2)
return true
end

function middleEffect(cid, param, position, lim, count)
n = count or 0
	if isCreature(cid) and n < lim then
		for i = 0, 3 do
			local pos = {x = position.x, y = position.y, z = position.z}
			local pos2 = {x = position.x, y = position.y, z = position.z}
			local dir = getPosByDir(pos, i)
			local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0)
			doSendDistanceShoot(dir, dir2, config.effect1)
		end
		doCombat(cid, combat, param)
		addEvent(middleEffect, config.velocidade, cid, param, position, lim, n + 1)
	end
return true
end

function endEffect(position)
	for i = 0, 3 do
		local pos = {x = position.x, y = position.y, z = position.z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(dir, position, config.effect1)
	end
	local item = getTileItemById(position, 2180)
	if item.uid > 0 then
		doRemoveItem(item.uid)
	end
return true
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, config.key) - os.time() <= 0 then
	setPlayerStorageValue(cid, config.key, os.time() + config.cooldown)
	local position = getCreaturePosition(cid)
	doCreatureSay(cid, config.msg, 20)
	local orb = doCreateItem(2180, 1, position)
	addEvent(endEffect, 8.55 * 1000, position)
	doSendMagicEffect(position, config.effect3)
	initEffect(position)
	addEvent(middleEffect, 200, cid, var, position, config.hits)
else
	doPlayerSendCancel(cid, "You're exhausted.")
	return false
end
return true
end

 

eu queria que quando alguem fosse atacado por essa spell ele ficasse paralyzado e imovel ate a spell acabar

 

REP+

  • Respostas 5
  • Visualizações 1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • local config = { velocidade = 200, -- intervalo entre os giros (quanto menor, mais rapido) hits = 40, -- quantos hits vai dar msg = "Cyclone", -- msg ao soltar a spell key = 13871, -- storage que sera

  • Aaaah já vi meu erro  Na linha onde tá combat1 troca pra combat   setCombatCondition(combat1, condition)   setCombatCondition(combat, condition)

  • Aumenta o 1500 até quando ele travar  Acho que no máximo 20000 pega depois de não me engano da erro

Postado
local config = {
velocidade = 200, -- intervalo entre os giros (quanto menor, mais rapido)
hits = 40, -- quantos hits vai dar
msg = "Cyclone", -- msg ao soltar a spell
key = 13871, -- storage que sera utilizado pro cooldown
cooldown = 6, -- tempo em segundos de cooldown entre um uso da spell e outro.
effect1 = 22, -- efeito de distancia que vai ficar rodando
effect2 = 269, -- efeito no sqm do item
effect3 = 37, -- efeito ao castar a spell
effect4 = 341 -- efeito ao acertar a roda no player
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 255)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -150.0, 0, -260.0, 0)

local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
setConditionParam(condition, CONDITION_PARAM_SPEED, -1500)
setConditionFormula(condition, -0.2, 0, -0.2, 0)
setCombatCondition(combat1, condition)

function onTargetCreature(cid, target)
   doSendMagicEffect(getCreaturePosition(target), config.effect4)
end
setCombatCallback(combat, 4, "onTargetCreature")

local arr = {
{1, 1, 1},
{1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando
{1, 1, 1},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function initEffect(position)
	for i = 0, 3 do
		local pos = {x = position.x, y = position.y, z = position.z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(position, dir, config.effect1)
	end
addEvent(doSendMagicEffect, 300, position, config.effect2)
return true
end

function middleEffect(cid, param, position, lim, count)
n = count or 0
	if isCreature(cid) and n < lim then
		for i = 0, 3 do
			local pos = {x = position.x, y = position.y, z = position.z}
			local pos2 = {x = position.x, y = position.y, z = position.z}
			local dir = getPosByDir(pos, i)
			local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0)
			doSendDistanceShoot(dir, dir2, config.effect1)
		end
		doCombat(cid, combat, param)
		addEvent(middleEffect, config.velocidade, cid, param, position, lim, n + 1)
	end
return true
end

function endEffect(position)
	for i = 0, 3 do
		local pos = {x = position.x, y = position.y, z = position.z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(dir, position, config.effect1)
	end
	local item = getTileItemById(position, 2180)
	if item.uid > 0 then
		doRemoveItem(item.uid)
	end
return true
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, config.key) - os.time() <= 0 then
	setPlayerStorageValue(cid, config.key, os.time() + config.cooldown)
	local position = getCreaturePosition(cid)
	doCreatureSay(cid, config.msg, 20)
	local orb = doCreateItem(2180, 1, position)
	addEvent(endEffect, 8.55 * 1000, position)
	doSendMagicEffect(position, config.effect3)
	initEffect(position)
	addEvent(middleEffect, 200, cid, var, position, config.hits)
else
	doPlayerSendCancel(cid, "You're exhausted.")
	return false
end
return true
end

setConditionParam(condition, CONDITION_PARAM_SPEED, -1500)

 

 

onde tá -1500 é a Speed que o alvo fica no caso vai zerar por que o maximo de speed é 1500 então ela vai ficar nula deixando o player Imovel... caso o player use spell que da speed ele ira remover parte da paralisia mas ela vai se renovar a cada hit que ele tomar



Qualquer coisa só comentar

 

 

Abraços VLW!

Postado
  • Autor
Agora, Xz Death Xz disse:

Aaaah já vi meu erro 

Na linha onde tá combat1 troca pra combat

 


setCombatCondition(combat1, condition)

 


setCombatCondition(combat, condition)

 

Puts nem eu vi isso tbm kkk, bom agora o lyze pegou direitinho porem o player so fica lento, ainda nao ta imovel

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo