Postado Maio 15, 2014 11 anos Autor Olha esse que fiz agora local chance = 1.0 function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS then if math.random(1, 10) <= chance then doSendAnimatedText(getCreaturePos(cid), "Passive", 6) return false end end return true end deu esse erro [Error - CreatureScript Interface] data/creaturescripts/scripts/passive.lua Description: (luaSetCombatArea) Area not found seria algo + OU - assim: -------------- Magia a ser utilizada --- sem o function onCastSpell --- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) local area = createCombatArea(AREA_SQUARE1X1) setCombatArea(combat, area) function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 1.5 + levelTotal), -(skillTotal * 2.5 + levelTotal) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") ------- local config = { percent = 5, -- porcentagem de sair a magia valorvida = 100 --quanto deve ser o valor minimo de vida a perder para executar o script } function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and value >= config.valorvida then if math.random (1,config.percent) == 1 then doCombat(cid, combat, var) end return true end return true end Só tem que ver se isso daqui funciona: Lembra de adicionar a tag no creaturescripts.xml e de registrar o evento no login.lua ps: peço desculpa pelo double post mas ia ficar mt ruim fazer tudo num post só deu esse erro [Error - CreatureScript Interface] data/creaturescripts/scripts/passive.lua Description: (luaSetCombatArea) Area not found
Postado Maio 15, 2014 11 anos foi mal, tinha esquecido que as areas tão na lib de spells: -------------- Magia a ser utilizada --- sem o function onCastSpell --- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) local areaspell = { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } local area = createCombatArea(areaspell) setCombatArea(combat, area) function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 1.5 + levelTotal), -(skillTotal * 2.5 + levelTotal) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") ------- local config = { percent = 5, -- porcentagem de sair a magia valorvida = 100 --quanto deve ser o valor minimo de vida a perder para executar o script } function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and value >= config.valorvida then if math.random (1,config.percent) == 1 then doCombat(cid, combat, var) end end return true end isso deve funcionar, se não funcionar daí eu teria que fazer mais testes 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 Maio 15, 2014 11 anos Autor foi mal, tinha esquecido que as areas tão na lib de spells: -------------- Magia a ser utilizada --- sem o function onCastSpell --- local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) local areaspell = { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } local area = createCombatArea(areaspell) setCombatArea(combat, area) function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 1.5 + levelTotal), -(skillTotal * 2.5 + levelTotal) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") ------- local config = { percent = 5, -- porcentagem de sair a magia valorvida = 100 --quanto deve ser o valor minimo de vida a perder para executar o script } function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and value >= config.valorvida then if math.random (1,config.percent) == 1 then doCombat(cid, combat, var) end end return true end isso deve funcionar, se não funcionar daí eu teria que fazer mais testes agora n deu erro mais, nao aconteçe nada Oo
Postado Maio 15, 2014 11 anos vc registrou o evento no login.lua? colocou no creaturescripts.xml? O script funciona assim, se vc tomar 100 de dano ele tem 20% de chance de ativar um exori.. 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 Maio 15, 2014 11 anos Autor Regitrei sim, so q nao esta saindo nada Oo vou almenta a % ele ta dando erro nessa função [Error - CreatureScript Interface] data/creaturescripts/scripts/passive.lua:onStatsChange Description: attempt to index a nil value stack traceback: [C]: in function 'doCombat' data/creaturescripts/scripts/passive.lua:38: in function <data/creatures cripts/scripts/passive.lua:35> Editado Maio 15, 2014 11 anos por Golf (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.