Explica mais sua spell, bota uma foto se possivel ![]()
info
Grupo: Campones
Registrado: 10/11/10
Posts: 8
Reputação: 0
Char no Tibia: Kindiak Loyus

info
Grupo: Visconde
Registrado: 04/10/08
Posts: 488
Reputação: +304
Char 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.
Editado Fevereiro 27 por Beto06
info
Grupo: Campones
Registrado: 07/10/07
Posts: 63
Reputação: +1
Gênero: Masculino
Char no Tibia: Soldier Neves

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


info
Grupo: Visconde
Registrado: 21/04/08
Posts: 311
Reputação: +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
Editado Dezembro 9 por xotservx