Postado Janeiro 24, 2015 10 anos 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 Janeiro 24, 2015 10 anos 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.