Postado Fevereiro 15, 2016 9 anos Então, gente, como o título diz, o comando doCombat do script abaixo não está funcionando, acredito que é pq o que fica entre parenteses está errado: Mostrar conteúdo oculto local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 36) local area = createCombatArea({ {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, 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, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 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, 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} }) setCombatArea(combat, area) function onGetFormulaValues(cid, level, maglevel) min = -((maglevel * 0.15) * 0.9) max = -((maglevel * 0.15)* 1.1) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local function checker(uid, health) if isPlayer(uid) then if getCreatureHealth(uid) < health then doCombat(cid, combat, var) -- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< else local health = getCreatureHealth(uid) addEvent(checker, 200, uid, health) end end return true end function onCastSpell(cid, var) doSendMagicEffect(getCreaturePosition(cid), 13) checker(cid, getCreatureHealth(cid)) return true end Peço a ajuda de vcs, obg Editado Fevereiro 15, 2016 9 anos por Hoad (veja o histórico de edições)
Postado Fevereiro 15, 2016 9 anos Solução vc tá usando 3 coisas que não existem na sua function local function checker(uid, health) if isPlayer(uid) then if getCreatureHealth(uid) < health then doCombat(cid, combat, var) -- a primeira é o cid.. deveria ser uid, a segunda é combat e a terceira é var.. usa assim: Mostrar conteúdo oculto local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 36) local area = createCombatArea({ {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, 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, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 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, 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} }) setCombatArea(combat, area) function onGetFormulaValues(cid, level, maglevel) min = -((maglevel * 0.15) * 0.9) max = -((maglevel * 0.15)* 1.1) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local function checker(uid, health, combat, var) if isPlayer(uid) then if getCreatureHealth(uid) < health then doCombat(uid, combat, var) -- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< else local health = getCreatureHealth(uid) addEvent(checker, 200, uid, health, combat, var) end end return true end function onCastSpell(cid, var) doSendMagicEffect(getCreaturePosition(cid), 13) checker(cid, getCreatureHealth(cid), combat, var) return true end Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Fevereiro 15, 2016 9 anos Autor Então quando eu abro uma função o q eu tenho q colocar em parenteses sao coisas q eu usarei dentro daquela função? Se eu colocar algo que nem usarei na função, dará algum problema ?
Postado Fevereiro 15, 2016 9 anos o problema é q vc quer uma função que fique repetindo pra checar se ele deve soltar o combat ou não.. o mínimo q vc tem que passar é o combat e as variaveis referentes à ele pra spell poder soltar o combat. A idéia é que tudo que vc vá fazer numa função que varie, seja incluido nos parametros da função. Dá uma lida numas aulas de scripting sobre funções pra vc entender melhor e depois que vc tiver bom começa a pegar libs (documentos só com funções) pra vc dissecar e entender Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
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.