Postado Outubro 4, 2022 2 anos @Maniaco, testa ai, fiz umas alterações no script do @FeeTads: local percent = 30 --- Chance de Aplicar Condition local exhaustStorage = 2353255 -- use a mesma em todos os scripts para não ter conditions do mesmo estilo aplicando ao mesmo tempo ou use diferentes storages em cada script para permitir várias conditions diferentes no mesmo target, e cuidado para n usar em outros sistemas para n causar interferência. local ticks = 20 -- quantidade de vezes que vai aplicar a condition local ticksDelay = 1000 -- tempo entre os ticks em milissegundos local minDmg, maxDmg = 5000, 10000 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local function apply_condition(target, count) if isCreature(target) then --caso o target morra, acaba o condition local dano = math.ceil(math.random(minDmg, maxDmg)) doCreatureAddHealth(target, -dano) doSendAnimatedText(getCreaturePos(target), "-"..dano, 180) if count > 0 then count = count - 1 addEvent(apply_condition, ticksDelay, target, count) end end return true end function onUseWeapon(cid, var) local target = getCreatureTarget(cid) if isCreature(target) and getCreatureStorage(target, exhaustStorage) - os.time() < 1 then local position1 = getThingPosition(target) if percent >= math.random(1, 100) then doSendMagicEffect(position1, 5) doCreatureSetStorage(target, exhaustStorage, os.time() + ticks) apply_condition(target, ticks) end end return doCombat(cid, combat, var) end Editado Outubro 4, 2022 2 anos por Wakon (veja o histórico de edições) ➥ Regras | Seções OTServ | Seções BOT
Postado Outubro 5, 2022 2 anos Autor Em 04/10/2022 em 22:00, Wakon disse: @Maniaco, testa ai, fiz umas alterações no script do @FeeTads: local percent = 30 --- Chance de Aplicar Condition local exhaustStorage = 2353255 -- use a mesma em todos os scripts para não ter conditions do mesmo estilo aplicando ao mesmo tempo ou use diferentes storages em cada script para permitir várias conditions diferentes no mesmo target, e cuidado para n usar em outros sistemas para n causar interferência. local ticks = 20 -- quantidade de vezes que vai aplicar a condition local ticksDelay = 1000 -- tempo entre os ticks em milissegundos local minDmg, maxDmg = 5000, 10000 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local function apply_condition(target, count) if isCreature(target) then --caso o target morra, acaba o condition local dano = math.ceil(math.random(minDmg, maxDmg)) doCreatureAddHealth(target, -dano) doSendAnimatedText(getCreaturePos(target), "-"..dano, 180) if count > 0 then count = count - 1 addEvent(apply_condition, ticksDelay, target, count) end end return true end function onUseWeapon(cid, var) local target = getCreatureTarget(cid) if isCreature(target) and getCreatureStorage(target, exhaustStorage) - os.time() < 1 then local position1 = getThingPosition(target) if percent >= math.random(1, 100) then doSendMagicEffect(position1, 5) doCreatureSetStorage(target, exhaustStorage, os.time() + ticks) apply_condition(target, ticks) end end return doCombat(cid, combat, var) end @Wakon Está funcionando perfeitamente agora so preciso ver a forma de aplicar a condititron de fire, ice, slow, entre outras ! Editado Outubro 5, 2022 2 anos por Maniaco (veja o histórico de edições)
Postado Outubro 6, 2022 2 anos Solução @Maniaco, tenta o seguinte, coloca essa função: doTargetCombatHealth(nil, target, COMBAT_FIREDAMAGE, -minDmg, -maxDmg, 0xFF) No lugar dessa: doCreatureAddHealth(target, -dano) E remove essas linhas: local dano = math.ceil(math.random(minDmg, maxDmg)) doSendAnimatedText(getCreaturePos(target), "-"..dano, 180) Ai pra trocar o tipo é só alterar no lugar de COMBAT_FIREDAMAGE, geralmente você encontra os tipos em data/lib/000-constant.lua. ➥ Regras | Seções OTServ | Seções BOT
Postado Outubro 6, 2022 2 anos Autor Em 06/10/2022 em 03:01, Wakon disse: @Maniaco, tenta o seguinte, coloca essa função: doTargetCombatHealth(nil, target, COMBAT_FIREDAMAGE, -minDmg, -maxDmg, 0xFF) No lugar dessa: doCreatureAddHealth(target, -dano) E remove essas linhas: local dano = math.ceil(math.random(minDmg, maxDmg)) doSendAnimatedText(getCreaturePos(target), "-"..dano, 180) Ai pra trocar o tipo é só alterar no lugar de COMBAT_FIREDAMAGE, geralmente você encontra os tipos em data/lib/000-constant.lua. @Wakon Está perfeito! Dano tudo! Uma duvida apenas! o exaustion - ele aplica apenas em player correto ? ja em criaturas/Monters ele sempre vai aplicar quando bater a chance correto ?
Postado Outubro 6, 2022 2 anos @Maniaco, o exhaust tá direto no alvo, seja jogador ou monstro. ➥ Regras | Seções OTServ | Seções BOT
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.