Postado Fevereiro 11, 2021 4 anos Está causando lentidão no servidor, e não estou conseguindo resolver esse problema. .Qual servidor ou website você utiliza como base? 0.4 Está surgindo algum erro? Se sim coloque-o aqui. Citar Você tem o código disponível? Se tiver publique-o aqui: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 34) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 21) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -38.0, 0, -38.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, 7 do addEvent(function() if isCreature(cid) then addEvent(onCastSpell1, 0, parameters) end end, 1 + ((k-1) * 300)) end return true end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. Editado Fevereiro 11, 2021 4 anos por cesarfilho55 (veja o histórico de edições)
Postado Fevereiro 13, 2021 4 anos O erro ocorre porque esse parameters armazena o target (dentro do var) e o addEvent(function() tenta lançar a spell nele. Só que quando o target sai do alcance (troca de andar, morre, etc) da erro porque a spell ta tentando acertar algo que não está alcançavel. Pra corrigir é só por a spell pra checar se o player ainda tem target na battlelist, a cada loop do addEvent. Aproveitei e dei uma encolhida no script. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 34) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 21) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -38.0, 0, -38.5, 0) function onCastSpell(cid, var) for k = 0, 6 do addEvent(function() if isCreature(cid) then targ = getCreatureTarget(cid) if targ > 0 then doCombat(cid, combat, numberToVariant(targ)) end end end, k*300) end return true end Editado Fevereiro 13, 2021 4 anos por 139 (veja o histórico de edições)
Postado Fevereiro 13, 2021 4 anos Autor 1 hora atrás, 139 disse: O erro ocorre porque esse parameters armazena o target (dentro do var) e o addEvent(function() tenta lançar a spell nele. Só que quando o target sai do alcance (troca de andar, morre, etc) da erro porque a spell ta tentando acertar algo que não está alcançavel. Pra corrigir é só por a spell pra checar se o player ainda tem target na battlelist, a cada loop do addEvent. Aproveitei e dei uma encolhida no script. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 34) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 21) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -38.0, 0, -38.5, 0) function onCastSpell(cid, var) for k = 0, 6 do addEvent(function() if isCreature(cid) then targ = getCreatureTarget(cid) if targ > 0 then doCombat(cid, combat, numberToVariant(targ)) end end end, k*300) end return true end Fala amigo, muito obrigado pela resposta, assim que possível vou testar, agradeço bastante!! Tenha um bom dia 3 horas atrás, 139 disse: O erro ocorre porque esse parameters armazena o target (dentro do var) e o addEvent(function() tenta lançar a spell nele. Só que quando o target sai do alcance (troca de andar, morre, etc) da erro porque a spell ta tentando acertar algo que não está alcançavel. Pra corrigir é só por a spell pra checar se o player ainda tem target na battlelist, a cada loop do addEvent. Aproveitei e dei uma encolhida no script. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 34) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 21) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -38.0, 0, -38.5, 0) function onCastSpell(cid, var) for k = 0, 6 do addEvent(function() if isCreature(cid) then targ = getCreatureTarget(cid) if targ > 0 then doCombat(cid, combat, numberToVariant(targ)) end end end, k*300) end return true end Testei, aconteceu algo, o script não esta respeitando o EFFECT e DISTANCEEFFECT ali em questão, está mandando algo nada haver.
Postado Fevereiro 14, 2021 4 anos Na real isso tá acontecendo pq vc tá usando dois addEvent, mas só verificando em um se a creatura ainda existe. Mude a função pra essa e testa. local function onCastSpell1(parameters) if isCreature(parameters.cid) then doCombat(parameters.cid, parameters.combat1, parameters.var) end end Discord: Naze#3578 Ter Linux Dentro de Windows com Acesso 'localhost' para testes e + AutoLoot Otimizado Direto na Source (tfs 0.4/otx) // Pirataria é crime, original é roubo, compartilhar é legal.
Postado Fevereiro 15, 2021 4 anos Solução Em 13/02/2021 em 16:46, cesarfilho55 disse: Fala amigo, muito obrigado pela resposta, assim que possível vou testar, agradeço bastante!! Tenha um bom dia Testei, aconteceu algo, o script não esta respeitando o EFFECT e DISTANCEEFFECT ali em questão, está mandando algo nada haver. Erro meu, tinha escrito o nome do combat errado. Agora ta certo: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 34) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 21) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -38.0, 0, -38.5, 0) function onCastSpell(cid, var) for k = 0, 6 do addEvent(function() if isCreature(cid) then targ = getCreatureTarget(cid) if targ > 0 then doCombat(cid, combat1, numberToVariant(targ)) end end end, k*300) end return true end
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.