Ir para conteúdo

Featured Replies

Postado

Boa noite/dia/tarde, gostaria que alguém pudesse me ajudar fazendo uma spell que creio que vai ser util não so para mim mas para várias pessoas, não encontrei em nenhum lugar da internet essa spell por isso venho aqui fazer esse pedido.

Basicamente a spell consiste no seguinte: O player vai escolher um lado que ele irá soltar a spell olhando para ele, quando ele ativar ela, ele vai dar um dash(não teleport) para a direção que ele está olhando e irá percorrer uma distancia ajustável em uma velocidade ajustável com também uma largura ajustável.
Durante o percurso aonde ele passar vai sair um effect com a posição da sprite ajustável tbm e não irá atravessar paredes nem entrar em zonas safes.
Irá atravessar apenas monstros e players e quando fizer isso sairá um outro effect no player/monstro que foi atingido que tbm seja ajustável a sprite, e irá também dar um dano no alvo atravessado que esse dano como tudo antes também seja ajustável.

Bom essa é a spell normal, a partir de agora não é necessário mas se puder ser feito tbm eu agradeceria muito.
Quando o player usar essa spell, ele vai poder reconjurar ela um numero definido no script antes de entrar em cooldown.
Como disse antes essa parte não é necessária para o funcionamento da spell mas se por acaso quiser fazer vai ajudar muito.

Por enquanto é isso, obrigado a quem tentar me ajudar.


VÍDEO DA SPELL COMO ESTÁ ATUALMENTE E O CÓDIGO PARA CASO ALGUEM QUEIRA TENTAR EDITAR ELE. TFS 0.4 8.60 - LINK DO VIDEO ARRUMADO

local function isWalkable(pos, creature, proj, pz)-- by Nord
	if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	if getTopCreature(pos).uid > 0 and creature then return false end
	if getTileInfo(pos).protection and pz then return false end
	local n = not proj and 2 or 2
	for i = 0, 255 do
		pos.stackpos = i
		local tile = getTileThingByPos(pos)
		if tile.itemid ~= 0 and not isCreature(tile.uid) then
			if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
				return false
			end
		end
	end
	return true
end

local area = {
	{1,1,1},
	{1,3,1},
	{1,1,1},
}

local function onCastSpell1(parameters)
	return isCreature(parameters.cid) and doCombat(parameters.cid, combat, parameters.var)
end

local function onDash(cid)
	local poslook = getCreatureLookPosition(cid)
	poslook.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
	if isWalkable(poslook) then
		if not isCreature(getThingfromPos(poslook).uid) then
			doMoveCreature(cid, getPlayerLookDirection(cid))
			doSendMagicEffect({x=getThingPos(cid).x+1, y=getThingPos(cid).y+1, z=getThingPos(cid).z}, 94)
			return true
		else
			doMoveCreature(cid, getPlayerLookDirection(cid))
			doSetItemOutfit(getThingfromPos(poslook).uid, 0, 1000*1000)
			doSendMagicEffect({x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y+1, z=getCreaturePosition(cid).z}, 96)
			return true
		end
	end
	return true
end


function onCastSpell(cid, var)
	local distance = 5
	for i = 0, distance do
		addEvent(onDash,100*i,cid)
	end
	return true
end 


 

Link do vídeo mostrando a Spell:

https://www.youtube.com/watch?v=ILG5qjKaXVU

 

 

Editado por Nother
Mudei o pedido (veja o histórico de edições)

  • Respostas 6
  • Visualizações 1.3k
  • Created
  • Última resposta

Top Posters In This Topic

Postado
4 horas atrás, Nother disse:

local function isWalkable(pos, creature, proj, pz)-- by Nord
	if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	if getTopCreature(pos).uid > 0 and creature then return false end
	if getTileInfo(pos).protection and pz then return false end
	local n = not proj and 2 or 2
	for i = 0, 255 do
		pos.stackpos = i
		local tile = getTileThingByPos(pos)
		if tile.itemid ~= 0 and not isCreature(tile.uid) then
			if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
				return false
			end
		end
	end
	return true
end

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
--setCombatParam(combat, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTBLUE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -120, 1, -150, 1)

local area = {
	{1,1,1},
	{1,3,1},
	{1,1,1},
}

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

local function onCastSpell1(parameters)
	return isCreature(parameters.cid) and doCombat(parameters.cid, combat, parameters.var)
end

local function onDash(cid)
	local poslook = getCreatureLookPosition(cid)
	poslook.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
	if isWalkable(poslook) then
		if not isCreature(getThingfromPos(poslook).uid) then
			doMoveCreature(cid, getPlayerLookDirection(cid))
			doSendMagicEffect({x=getThingPos(cid).x+1, y=getThingPos(cid).y+1, z=getThingPos(cid).z}, 94)
			return true
		else
			doMoveCreature(cid, getPlayerLookDirection(cid))
			doSetItemOutfit(getThingfromPos(poslook).uid, 0, 1000*1000)
			doSendMagicEffect({x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y+1, z=getCreaturePosition(cid).z}, 96)
			return true
		end
	end
	return true
end


function onCastSpell(cid, var)
	local distance = 5
	for i = 0, distance do
		addEvent(onDash,100*i,cid)
	end
	return true
end 

TESTA AI

 

Postado
  • Autor
1 hora atrás, Fabi Marzan disse:

 

Opa, mal a demora, então amigo, testei aqui e não deu não, ta tudo normal no tfs, só continua como tava antes.

  • Nother mudou o título para Spell de dash com dano...
Postado
  • Autor
12 horas atrás, KevinLuzetti disse:

Opa boa noite, vocês conseguiram fazer essa magia para pokémon?

Então amigo, essa eu to tentando fazer para tíbia normal mesmo, para Pokémon eu não sei como funciona as spells. Ainda não foi criada não.

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