Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Galera to com 1 problema numa script é o seguinte na script eu qero qe não tenha HIT minimo e maximo qe seja normal com formula de magic level EX : setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0, 0, -0, 0) e qe ao inves de andar envolta do target ela vai teleport 3x envolta do target suponho qe ela estava andando por causa desta função isWalkable, Mais não sei qual função usar 


local config = {


efeitoTele = 134, -- efeito q ira aparacer a cada teleport.
efeitoDamage = 16, -- efeito q ira aparecer ao hitar no alvo
hits = 4, -- quantos hits vai dar
delay = 400, -- intervalo de tempo a cada hit
min = 7000, -- dano minimo
max = 8400, -- dano maximo
damage = COMBAT_PHYSICALDAMAGE -- tipo do dano
}
function isWalkable(pos, creature, pz, proj) -- 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 not pz then return false end
local n = not proj and 3 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
function getPosDirs(p, dir) -- mkalo
return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y, z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x, y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z}
end
function validPos(pos)
tb = {}
for i = 1, 8 do
newpos = getPosDirs(pos, i)
if isWalkable(newpos) then
table.insert(tb, newpos)
end
end
table.insert(tb, pos)
return tb
end
spell54 = {
start54 = function (cid, target, markpos, hits)
if not isCreature(cid) then return true end
if not isCreature(target) or hits < 1 then
doTeleportThing(cid, markpos)
doSendMagicEffect(getThingPos(cid), config.efeitoTele)
return true
end
posAv = validPos(getThingPos(target))
rand = #posAv == 1 and 1 or #posAv - 1
doSendMagicEffect(getThingPos(cid), config.efeitoTele)
doTeleportThing(cid, posAv[math.random(1, rand)])
doAreaCombatHealth(cid, config.damage, getThingPos(target), 0, -config.min, -config.max, config.efeitoDamage)
addEvent(spell54.start54, config.delay, cid, target, markpos, hits - 1)
end
}
function onCastSpell(cid)
local position1 = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
target = getCreatureTarget(cid)
if target then
spell54.start54(cid, target, getThingPos(cid), config.hits)
doSendMagicEffect(position1, 95)
end
return true
end


 

Editado por dbko (veja o histórico de edições)

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo