Ir para conteúdo

Featured Replies

Postado

Bom dia

Qual servidor ou website você utiliza como base? 

TFS 1.3

Qual o motivo deste tópico? 

 

Gostaria de uma spell para monstro, onde o monstro usa um efeito em área e não cause dano, após 2 segundos, solta outro efeito na mesma área anterior e este efeito causa dano. Os dois efeitos devem sair no mesmo lugar independentemente do monstro ou o alvo andar.

O efeito 1 pode ser o efeito do exori; O efeito 2 pode ser o efeito da GFB; a área pode ser a área do exevo flam hur.

 

  • Respostas 20
  • Visualizações 1.8k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

Então Não Entendi Direito Porem Acho Que É Assim

(Para Alterar O Dano Eu Deixei Dentro Do Script Uma Explicaçãozinha)

Script

Spoiler

-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_TELEPORT)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0},
{0, 1, 1, 1, 0},
{0, 0, 3, 0, 0}}))
function getDmg_Brush(cid, level, maglevel)
	return (0)*-1,(0)*-1 
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 900ms
local combat9_Brush_2 = createCombatObject()
setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatArea(combat9_Brush_2,createCombatArea({{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0},
{0, 1, 1, 1, 0},
{0, 0, 3, 0, 0}}))
function getDmg_Brush_2(cid, level, maglevel)
	return (10)*-1,(20)*-1 -- O DANO IRA VARIAR ENTRE 10 A 20 EDITE AQUI CASO QUEIRA ALTERAR
end
setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
	if (isCreature(cid)) then
		doCombat(cid, c, var)
		if (dirList ~= nil) then -- Emit distance effects
			local i = 2;
			while (i < #dirList) do
				if (startDir == 0) then -- N
					doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
				elseif (startDir == 2) then -- S
					doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
				elseif (startDir == 1) then -- E
					doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1])
				else -- W / Something weird happened
					doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList[i],z=dirEmitPos.z},dirList[1])
				end
				i = i + 2
			end		
		end
	end
end

function onCastSpell(cid, var)
	local startPos = creature:getPosition ()
	local startDir = creature:getDirection()
	RunPart(combat0_Brush,cid,var)
	addEvent(RunPart,900,combat9_Brush_2,cid,var)
	return true
end

 

 

Tag No Spells

Spoiler

<instant name="MAGIA" words="MAGIA" lvl="1" maglv="1" mana="25" exhaustion="1000" prem="0" needlearn="0" casterTargetOrDirection="1" blockwalls="0" aggressive="1" event="script" value="SCRIPT.lua">

 

 

Editado por Thony D. Serv (veja o histórico de edições)

Postado
  • Autor
4 minutos atrás, Thony D. Serv disse:

Então Não Entendi Direito Porem Acho Que É Assim

 

Script

  Ocultar conteúdo


-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_TELEPORT)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0},
{0, 1, 1, 1, 0},
{0, 0, 3, 0, 0}}))
function getDmg_Brush(cid, level, maglevel)
	return (0)*-1,(0)*-1 
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")

-- Areas/Combat for 800ms
local combat8_Brush_2 = createCombatObject()
setCombatParam(combat8_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
setCombatParam(combat8_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatArea(combat8_Brush_2,createCombatArea({{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0},
{0, 1, 1, 1, 0},
{0, 0, 3, 0, 0}}))
function getDmg_Brush_2(cid, level, maglevel)
	return (10)*-1,(20)*-1 -- O DANO VAI VARIAR ENTRE 10 E 20 TROQUE SE QUISER
end
setCombatCallback(combat8_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
	if (isCreature(cid)) then
		doCombat(cid, c, var)
		if (dirList ~= nil) then -- Emit distance effects
			local i = 2;
			while (i < #dirList) do
				if (startDir == 0) then -- N
					doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
				elseif (startDir == 2) then -- S
					doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
				elseif (startDir == 1) then -- E
					doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1])
				else -- W / Something weird happened
					doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList[i],z=dirEmitPos.z},dirList[1])
				end
				i = i + 2
			end		
		end
	end
end

function onCastSpell(cid, var)
	local startPos = getCreaturePosition(cid)
	local startDir = getCreatureLookDirection(cid)
	RunPart(combat0_Brush,cid,var)
	addEvent(RunPart,800,combat8_Brush_2,cid,var)
	return true
end

 

 

Tag No Spells

  Ocultar conteúdo


<instant name="Default" words="NOME DA MAGIA" lvl="1" maglv="1" mana="25" exhaustion="1000" prem="0" needlearn="0" casterTargetOrDirection="1" blockwalls="0" aggressive="1" event="script" value="NOME DO SCRIPT.lua">

 

 

Vou tentar explicar melhor, apesar de que acho que a forma que você fez está de acordo com o que eu queria. Esse spell é para monstro. O monstro ao usar o spell, sai o efeito 1 em  area e esse efeito não causa dano no alvo. 2 segundos depois, sai o efeito 2 na mesma área onde o monstro tinha usado o efeito 1, só que desta vez causa dano. Pensa como se o efeito 1 fosse um alerta e o 2 o dano em si.

 

Deu esse erro ai:

 

Spoiler

Lua Script Error: [Spell Interface]
data/spells/scripts/monster/dragon_breath.lua:onCastSpell
data/spells/scripts/monster/dragon_breath.lua:54: attempt to call global 'getCreatureLookDirection' (a nil value)
stack traceback:
        [C]: in function 'getCreatureLookDirection'
        data/spells/scripts/monster/dragon_breath.lua:54: in function <data/spells/scripts/monster/dragon_breath.lua:52>

 

Postado
  • Autor
2 minutos atrás, Thony D. Serv disse:

Editei A Tag Testa Ai

Continuou o mesmo erro:

 

Spoiler

Lua Script Error: [Spell Interface]
data/spells/scripts/monster/dragon_breath.lua:onCastSpell
data/spells/scripts/monster/dragon_breath.lua:54: attempt to call global 'getCreatureLookDirection' (a nil value)
stack traceback:
        [C]: in function 'getCreatureLookDirection'
        data/spells/scripts/monster/dragon_breath.lua:54: in function <data/spells/scripts/monster/dragon_breath.lua:52>

 

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

Informação Importante

Confirmação de Termo