Ir para conteúdo
  • 0

Script: Shadow Step (Teleport Para As Costas Do Target)


razurator

Pergunta

Ola, eu preciso de ajuda para fazer o script de uma nova magia pra uma classe que estou testando no meu server.

 

Seguinte, a classe é um Assassin e a intenção e que na magia ele de um teleport para as costas de seu target e desfira um dano parecido com exori gran.

Não sei se isso é possível mas agradeceria se me ajudassem.

 

Desculpas antecipadas se já existe algo do tipo postado.

 

Sei que sou pouco ativo no fórum, é que eu estou aprendendo sobre logica de programação e praticando com Tibia e só agora comecei a mexer em servidores

Editado por Vilden
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

function onCastSpell(cid, var)

local player = getCreaturePosition(cid)
local target = getCreatureTarget(cid)
local enemypos = getCreaturePosition(target)

if target == isMonster or isCreature then
doTeleportThing(cid, enemypos)
doSendMagicEffect(enemypos, 2)
end
end

Isso faz com que teleport achei aqui no forum mesmo.

obs: você não precisa ser um usuário ativo é só usar o google.

 

agora uma magia que eu tenho aqui:

local distanceCombat = createCombatObject()
setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SPEAR)


function getSpellDamage(cid, lv, maglv)
	damage_min = (lv + maglv) * 0.8
	damage_max = (lv + maglv) * 1.2

	if(damage_max < damage_min) then
			local tmp = damage_max
	  damage_max = damage_min
	  damage_min = tmp
	end
	return -damage_min, -damage_max
end

setCombatCallback(distanceCombat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage")

function onCastSpell(cid, var)
return doCombat(cid, distanceCombat, var)
end

Até acredito que tudo funcione.

Agora para a magia fazer as duas coisas faça assim:

local distanceCombat = createCombatObject()
setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SPEAR)



function getSpellDamage(cid, lv, maglv)
	damage_min = (lv + maglv) * 0.8
	damage_max = (lv + maglv) * 1.2

	if(damage_max < damage_min) then
			local tmp = damage_max
	  damage_max = damage_min
	  damage_min = tmp
	end
	return -damage_min, -damage_max
end

setCombatCallback(distanceCombat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage")

function onCastSpell(cid, var)
local player = getCreaturePosition(cid)
local target = getCreatureTarget(cid)
local enemypos = getCreaturePosition(target)

if target == isMonster or isCreature then
doTeleportThing(cid, enemypos)
doSendMagicEffect(enemypos, 2)
doCombat(cid, distanceCombat, var)
return 1
else
doPlayerSendCancel(cid, "Precisa de um target.")
end
end

Eu não testei se der erro avise.

E na parte onde diz:

setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SPEAR)

Você pode trocar os efeitos para "255" se não me engano é o ID dos efeitos "none" para ficar melhor.

E em:

	damage_min = (lv + maglv) * 0.8
	damage_max = (lv + maglv) * 1.2

Você altera o dano na magia, que no caso é "level do player" + "magic level do player" x 0.8 até x 1.2

 

Espero que funcione.. aeuaheu

Qualquer coisa posta.

Editado por OtheReality
Link para o comentário
Compartilhar em outros sites

  • 0

exaustion e facil de colocar exemplo:

 

 

<instant name="Death Strike" words="nome da magia" lvl="16" mana="20" prem="0" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="attack/nome do script.lua">

<vocation id="1"/>

<vocation id="2"/>

<vocation id="5"/>

<vocation id="6"/>

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...