Ir para conteúdo

Featured Replies

Postado

@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 por Wakon (veja o histórico de edições)

  • Respostas 29
  • Visualizações 1.9k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @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 c

  • @Maniaco, tenta o seguinte, coloca essa função: doTargetCombatHealth(nil, target, COMBAT_FIREDAMAGE, -minDmg, -maxDmg, 0xFF) No lugar dessa: doCreatureAddHealth(target, -dano) E remove e

  • se vc tiver wand elemental por script no weapon, vc pode colocar um math.random(1,100) e se for < 3  seta um condition local condition = createConditionObject(CONDITION_CURSED) setConditionPara

Posted Images

Postado
  • 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 por Maniaco (veja o histórico de edições)

Postado
  • 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.

Postado
  • 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 ?

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo