RA
pedido

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

Por razurator, 02 de jun. de 2012 em Scripts

scripts
teleport assassin
tibia
script
otserv
8
1.7k
razuratorR
02 de junho de 2012 às 23:16

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 Junho 3 por Vilden

otherealityO
03 de junho de 2012 às 04:08

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 Junho 3 por OtheReality

razuratorR
03 de junho de 2012 às 19:55

Cara pegou legalzinho, agora basta eu adicionar um exhaust e vai ficar bacana, muito obrigado.

saulosS
03 de junho de 2012 às 20:00

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"/>

razuratorR
04 de junho de 2012 às 23:40

eu mudei la no spells.xml mas ai ele começou a não gastar mana e usar sem exhaust.

otherealityO
04 de junho de 2012 às 23:54

Como assim?

O que que você mudou?

razuratorR
05 de junho de 2012 às 01:34

Como assim?

O que que você mudou?

 

Pode deixar cara eu tinha apagado uma (") e não tinha percebido vlw mesmo assim.

VildenV
05 de junho de 2012 às 01:37

Dúvida sanada, movido.