Ir para conteúdo

Featured Replies

Postado

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 


Mostrar conteúdo oculto

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)

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