[Spells] Extreme Speed

meubk
Por meubk
em Globalevents e Spells

meubk

@miillerdomingues
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/04/08Posts: 311

Extreme Speeed

 

Spell muito interessante aonde o alvo recebe varios danos por todos os lados, bem legalzinha

 

 

arquivo em lua:

 

local config = {
efeitoTele = 10, -- efeito q ira aparacer a cada teleport.
efeitoDamage = 1, -- efeito q ira aparecer ao hitar no alvo
hits = 5, -- quantos hits vai dar
delay = 200, -- intervalo de tempo a cada hit
min = 100, -- dano minimo
max = 150, -- 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
spell = {
start = 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(spell.start, config.delay, cid, target, markpos, hits - 1)
  end
}
function onCastSpell(cid)
target = getCreatureTarget(cid)
if target then
 spell.start(cid, target, getThingPos(cid), config.hits)
end
return true
end

 

 

tag:

 

 

 <instant name="Extreme speed" words="extreme speed" lvl="65" mana="580" prem="0" exhaustion="2000" needtarget="1" range = "4" needlearn="0" script="arquivo.lua">

 

Não vou postar ss ou video pq estou sem tempo, se querer ver como esta vai ter q testar.

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Corrigindo:

 

 

 

 

local config = {
efeitoTele = 10, -- efeito q ira aparacer a cada teleport.
efeitoDamage = 1, -- efeito q ira aparecer ao hitar no alvo
hits = 5, -- quantos hits vai dar
delay = 200, -- intervalo de tempo a cada hit
min = 100, -- dano minimo
max = 150, -- 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
spell = {
start = 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(spell.start, config.delay, cid, target, markpos, hits - 1)
  end
}
function onCastSpell(cid)
target = getCreatureTarget(cid)
if target then
 spell.start(cid, target, getThingPos(cid), config.hits)
end
return true
end

 

 

faltou declarar o parâmetro cid no addEvent.

Oie :D

meubk

@miillerdomingues
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/04/08Posts: 311

obrigado, nem editei o tópico ainda pois, estava sem tempo ai só colei a spell vou editar agr.

vipstyle

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/01/12Posts: 94Char no Tibia: Justrevenge De Elera

VOU TESTAR TOMARA QUE DE CERTO =)

EU POSTO AKIE SE DAR CERTO =)

 

EU TENTEI ENTENDER OQUE TAVA ESCRITO AMS NAUM CONSEGUI LA NO FIANL LOL

meubk

@miillerdomingues
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/04/08Posts: 311

ok, aguardo resposta

nari

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/12/07Posts: 98Char no Tibia: Drinhow

spell muito loka cara, gostei mt, ganhou meu rep :D

coyotestark

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 15/02/11Posts: 259Char no Tibia: Aias Laf Du

carakaaaaaaaaaa Spell muito loko, so nao dei rep pq ja dei um hoje. mas amanhan tera pq gostei muuuuuuuuuuuuito

385417_122391137880813_100003297811828_101325_1909172176_n.jpg

Nao sou Gigante mas grande o suficiente para entender tudo a minha volta.

JeanCristian

ADM MiHawk
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 12/04/12Posts: 328Char no Tibia: ADM MiHawk

nossa manim vc realmente merece o meu rep++ dou com muito orgulho esse rep

Acadêmico: 5 Post[x]

Gennin: 15 Posts[x]

Chunnin: 40 Posts[x]

Jounnin: 60 Posts[x]

Jounnin Tokubetsu: 80 Posts[x]

ANBU: 100 Posts[X]

ANBU Elite: 130 Posts[ ]

Kage: 160 Posts[ ]

Sannin: 200 Posts[ ]

Sannin Lendário: 250 Posts[ ]

Sannin Mundial: 300 Posts[ ]

 

th_Ichigo_Mugetsu-1.gifth_BleachMovie4-SkullCladIchigo.gifth_HollowTransformation.gif

Vilden

Loading. . .
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 09/05/08Posts: 1597

Amigo você reviveu um tópico parado a mais de 1 mês, mais atenção.

Alertado via mp.

Atenciosamente, Vilden.

jhonysavio

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/08/08Posts: 20

boa mesmo! rep + 

deixa eu perguntar, poderia me ajudar em duas spells? talves simples, uma de sumon com duração ( sumona 3 monstros por x seg) e uma que aumente a velocidade de ataque

 

lordbim

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/02/17Posts: 3

muito top! parabens!

Vorkhon

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/08/20Posts: 52

Muito boa a spell. Mas alguem sabe se tem como não passar paredes? Isso pode fazer com que players consigam chegar em areas "proibidas"