Ir para conteúdo
  • 0

Bug, As Magias Tao Derrubando O Servidor.


dragaofr

Pergunta

Tou colocando algumas magias no server novas, mas o server quando usa a magia cai, na primera vez tava com erro de nao ter exausted na magia e nao tirava mana, dai fui e botei o return true no fim do script antes do end, mas depois que botei esse return o server cai quando usa a magia .

 

As magias normais do server vem assim

------------------------------------------------------------------------

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, 0, -1.6, 0)

 

local area = createCombatArea(AREA_CROSS5X5)

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

-------------------------------------------------------------------------

Aque to botando no principio ela funcionava mas de uns tempos para ca ta derubando o server assim como qualquer magia custom que eu adiciono ao server como esta.

 

 

local config = {

efeitoTele = 10, -- efeito q ira aparacer a cada teleport.

efeitoDamage = 1, -- efeito q ira aparecer ao hitar no alvo

hits = 6, -- quantos hits vai dar

delay = 650, -- intervalo de tempo a cada hit

min = 90, -- dano minimo

max = 140, -- 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

 

----------------------------------------------------------------------

O meu server é o baiak extreme mas ja mexi tanto e mudei quase tudo .pode ser por isso que surgio o bug da spell.

 

No inicio esse script funcionava mesmo com os returns mas agora nenhuma magia custom ta pegando.

 

Alquem pode ajudar dou reps.Agradeço desde ja

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...