Explica mais sua spell, bota uma foto se possivel ![]()
info
Group: Campones
Joined: 10/11/10
Posts: 8
Reputation: 0
Tibia Character: Kindiak Loyus

info
Group: Visconde
Joined: 04/10/08
Posts: 488
Reputation: +304
Tibia Character: 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.
Edited Fevereiro 27 by Beto06
info
Group: Campones
Joined: 07/10/07
Posts: 63
Reputation: +1
Gender: Masculino
Tibia Character: Soldier Neves

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


info
Group: Visconde
Joined: 21/04/08
Posts: 311
Reputation: +257
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 endtag :
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 endtag:
Obg. e reporte bugs
Edited Dezembro 9 by xotservx