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.








info
Grupo: Campones
Registrado: 17/12/07
Posts: 43
Reputação: 0
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