Bomba Spell

meubk
Por meubk
em Globalevents e Spells

meubk

@miillerdomingues
avatar
Visconde
Visconde

INFOS

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

Hoje venho trazer uma spell de bomba, própria minha...



 

vow postar ela de dois geito , pra implantar a bomba no chão e ota pra implantar dentro do corpo do target...

 

1° para implantar no corpo que vai ser por distancia :

 

-- Spell by : XOtServX --


function getTime(s) -- função by : mkalo
local n = math.floor(s / 60)
s = s - (60 * n)
return n, s
end

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 1)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 3)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -5.3, 0)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 6)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -5.3, 0)

arr1 = {
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
}

arr3 = {
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0},
}

local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)
local area2 = createCombatArea(arr2)
setCombatArea(combat2, area2)

local function onCastSpell1(parameters)
doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell2(parameters)
doCombat(parameters.cid, combat2, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
local pos = getPlayerPosition(cid)
local storage = 15456
addEvent(onCastSpell1, 0, parameters)

-- Configs --

local tempo = 5 -- tempo em segundos para acontecer a explosão.
local cd = 60 -- tempo em segundos para usar a explosão.

-- daki para baixo , não mexer --
if os.time()-getPlayerStorageValue(cid, storage) <= cd then
minutes,seconds = getTime(cd-(os.time()-getPlayerStorageValue(cid, storage)))
return doPlayerSendTextMessage(cid, 27, "You need to wait " .. minutes .." minutes and ".. seconds .. " seconds to implant other bomb!")
end

local i = 0 
local tempo2 = 0
while i <= tempo-1 do
addEvent(doSendAnimatedText, 0+tempo2, pos, "Tic Tac!", 108)
tempo2 = tempo2+1000
i = i+1
end
addEvent(onCastSpell2, 1000*tempo, parameters)
addEvent(onCastSpell3, 1000*tempo, parameters)
addEvent(doSendAnimatedText, 1000*tempo, pos, "Explosion!", TEXTCOLOR_RED)
setPlayerStorageValue(cid, storage, os.time()+cd)
return TRUE
end

 

tag :

<instant name="" words="nome da spell" lvl="1" mana="20" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="nomidoarkivo.lua">

 

para implantar no chão :

 

-- Spell by : XOtServX --


function getTime(s) -- função by : mkalo
local n = math.floor(s / 60)
s = s - (60 * n)
return n, s
end

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 1)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -5.3, 0)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 6)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -5.3, 0)

arr1 = {
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
}

arr3 = {
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0},
}

local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)
local area2 = createCombatArea(arr2)
setCombatArea(combat2, area2)

local function onCastSpell1(parameters)
doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell2(parameters)
doCombat(parameters.cid, combat2, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
local pos = getPlayerPosition(cid)
local storage = 15456
addEvent(onCastSpell1, 0, parameters)

-- Configs --

local tempo = 5 -- tempo em segundos para acontecer a explosão.
local cd = 60 -- tempo em segundos para usar a explosão.

-- daki para baixo , não mexer --
if os.time()-getPlayerStorageValue(cid, storage) <= cd then
minutes,seconds = getTime(cd-(os.time()-getPlayerStorageValue(cid, storage)))
return doPlayerSendTextMessage(cid, 27, "You need to wait " .. minutes .." minutes and ".. seconds .. " seconds to implant other bomb!")
end

local i = 0 
local tempo2 = 0
while i <= tempo-1 do
addEvent(doSendAnimatedText, 0+tempo2, pos, "Tic Tac!", 108)
tempo2 = tempo2+1000
i = i+1
end
addEvent(onCastSpell2, 1000*tempo, parameters)
addEvent(onCastSpell3, 1000*tempo, parameters)
addEvent(doSendAnimatedText, 1000*tempo, pos, "Explosion!", TEXTCOLOR_RED)
setPlayerStorageValue(cid, storage, os.time()+cd)
return TRUE
end

 

tag:

 

<instant name="" words="nomi da spell" lvl="33" mana="160" exhaustion="2000" needlearn="0" event="script" value="nomidoarkivo.lua">

 

Obg. e reporte bugs

pedriinho627

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/11/10Posts: 8Char no Tibia: Kindiak Loyus

Explica mais sua spell, bota uma foto se possivel :winksmiley02:

92817e4b8edf4962a1807c25235ca011.0.gif

 

Kindiak%20Loyus.png

 

Ghoghe28820652015.jpg

beto06

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 04/10/08Posts: 488Char no Tibia: Van Zarok

Olá, desculpe reviver mas achei um bugzinho.

Toda vez que alguem usa da um erro, ele não interfere em nada, mas se eu deixar vai ficar um spam no console.

 

[Error - Spell Interface]
data/spells/scripts/attack/mine.lua:OnCastSpell
Description:
<lua AddEvent> Callback parameter should be a function.

 

Eu tirei a parte dos segundos para plantar novamente.. Mas o erro não veio a partir disto, portanto está em alguma parte do script. Se alguém me ajudar ficaria grato.

Segue o script:

 

 

-- Spell by : XOtServX --

 

 

function getTime(s) -- função by : mkalo

local n = math.floor(s / 60)

s = s - (60 * n)

return n, s

end

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 3)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 6)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 7, 14)

 

arr1 = {

{0, 0, 0},

{0, 3, 0},

{0, 0, 0},

}

 

arr2 = {

{0, 1, 1, 1, 0},

{1, 1, 1, 1, 1},

{1, 1, 3, 1, 1},

{1, 1, 1, 1, 1},

{0, 1, 1, 1, 0},

}

 

local area1 = createCombatArea(arr1)

setCombatArea(combat1, area1)

local area2 = createCombatArea(arr2)

setCombatArea(combat2, area2)

 

local function onCastSpell1(parameters)

doCombat(parameters.cid, combat1, parameters.var)

end

 

local function onCastSpell2(parameters)

doCombat(parameters.cid, combat2, parameters.var)

end

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var}

local pos = getPlayerPosition(cid)

local storage = 15456

addEvent(onCastSpell1, 0, parameters)

 

-- Configs --

 

local tempo = 5

local i = 0

local tempo2 = 0

while i <= tempo-1 do

addEvent(doSendAnimatedText, 0+tempo2, pos, "Tic Tac!", 108)

tempo2 = tempo2+1000

i = i+1

end

addEvent(onCastSpell2, 1000*tempo, parameters)

addEvent(onCastSpell3, 1000*tempo, parameters)

return TRUE

end

 

 

Uma SS da spell para quem não viu ainda: Clique aqui.

claudiomir

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/10/07Posts: 63Gênero: MasculinoChar no Tibia: Soldier Neves

nossa parece esta muito bom vou testar aki no meu ot versao 8.4 se funciona eu aviso!

porco.gif

Cadastrado: 07/10/2007