Postado Março 17, 2017 8 anos Bom galera do querendo adicionar esse script do @xWhiteWolf no meu otserv, funciona prefeito. porém quando o monstro ou player morre, fica aparecendo varios erro no console. se alguem pergunta como assim monstro ou player é pq eu crie duas spells no msm modo desse aqui, porem um pra monstro e a outra pra player. Spoiler local waves = 8 --- numero de vezes que vão cair os meteoros local water = {490, 491, 492, 493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625} local combat = createCombatObject() local meteor = createCombatObject() setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(meteor, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY) setCombatFormula(meteor, COMBAT_FORMULA_LEVELMAGIC, -30, -50, -40, -55) local meteor_water = createCombatObject() setCombatParam(meteor_water, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(meteor_water, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY) setCombatFormula(meteor, COMBAT_FORMULA_LEVELMAGIC, -30, -50, -40, -55) combat_arr = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local combat_area = createCombatArea(combat_arr) setCombatArea(combat, combat_area) local function meteorCast(p) doCombat(p.cid, p.combat, positionToVariant(p.pos)) end local function stunEffect(cid) doSendMagicEffect(getThingPos(cid), CONST_ME_STUN) end function onTargetTile(cid, pos) if (math.random(0, 6) == 6) then local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}) if (isInArray(water, ground.itemid) == TRUE) then local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_SMALLICE) addEvent(meteorCast, 200, {cid = cid, pos = pos, combat = meteor_water}) else local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_SMALLICE) addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor}) end end end setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) for i = 0, waves do addEvent(function() if isCreature(cid) then doCombat(cid, combat, var) end end, 200 * i) end return true end o erro é?: In a timer event called from: (luaDoCombat) Creature not found isso ficar deixando o server lento, uso tfs 0.4
Postado Março 17, 2017 8 anos Solução local function meteorCast(p) if isCreature(p.cid) then doCombat(p.cid, p.combat, positionToVariant(p.pos)) end end deixa a função meteorCast assim que os erros devem parar.
Postado Março 17, 2017 8 anos Autor 6 horas atrás, xWhiteWolf disse: local function meteorCast(p) if isCreature(p.cid) then doCombat(p.cid, p.combat, positionToVariant(p.pos)) end end deixa a função meteorCast assim que os erros devem parar. obg amigo ajudou muito. funcionou perfeito, agr so arruma todos os script valeu.
Postado Março 17, 2017 8 anos 7 horas atrás, xWhiteWolf disse: local function meteorCast(p) if isCreature(p.cid) then doCombat(p.cid, p.combat, positionToVariant(p.pos)) end end deixa a função meteorCast assim que os erros devem parar. Amigo, pode me ajudar com essa spell? estou com o mesmo erro. Spoiler local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_TEAL) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 13) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 41) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -35.0, 0, -35.5, 0) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end function onCastSpell(cid, var) local parameters = {cid = cid, var = var, combat1 = combat1} for k = 1, 10 do addEvent(function() if isCreature(cid) then addEvent(onCastSpell1, 1, parameters) end end, 1 + ((k-1) * 225)) end return true end
Postado Março 17, 2017 8 anos 27 minutos atrás, Thayguroficial disse: Amigo, pode me ajudar com essa spell? estou com o mesmo erro. Spoiler local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_TEAL) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 13) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 41) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -35.0, 0, -35.5, 0) local function onCastSpell1(parameters) if isCreature(parameters.cid) then doCombat(parameters.cid, parameters.combat1, parameters.var) end end function onCastSpell(cid, var) local parameters = {cid = cid, var = var, combat1 = combat1} for k = 1, 10 do addEvent(function() if isCreature(cid) then addEvent(onCastSpell1, 1, parameters) end end, 1 + ((k-1) * 225)) end return true end o problema em ambos os casos era um addEvent sem o check de isCreature. Editado Março 17, 2017 8 anos por xWhiteWolf (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.