Ir para conteúdo
  • Cadastre-se

(Resolvido)-=[TFS]=- 0.3.6 - 8.60 CRITICAL STONE and BOOSTER ATTACK STONE DANDO ERRO [AJUDA]


Ir para solução Resolvido por L3K0T,

Posts Recomendados

local lvlcrit = 48913 -- storage para criticos normais
local lvlcritDanger = 48904 -- storage para criticos perigosos
local multiplier = 1.5 -- multiplicador de dano

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0
        local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0
        local chance = math.random(1, 1000) -- Mantém um intervalo razoável

        -- Verifica se a chance de crítico BOOSTER é atingida
        if chance <= (criticalChance * 3) then
            local damage = 100 -- Valor do dano crítico BOOSTER (ajuste conforme necessário)
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31)
            doSendMagicEffect(getCreaturePosition(cid), 54)
            return true
        end
        
        -- Verifica se a chance de crítico DANGER é atingida
        if chance <= (criticalDangerChance * 3) then ---> JA TENTEI POR 4 NÃO RESOLVEU.
            local damage = 100 -- Valor do dano crítico DANGER (ajuste conforme necessário)
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190)
            doSendMagicEffect(getCreaturePosition(cid), 52)
            return true
        end
    end
    return true
end

 

Screenshot_1.png.2101739d0a9f3148d8df3d76bf89f354.png.cdf63996fa5de2b5ffa26382272586e6.png

Link para o post
Compartilhar em outros sites
  • Sub-Admin
local lvlcrit = 48913 -- armazenamento para críticos normais
local lvlcritDanger = 48904 -- armazenamento para críticos perigosos
local multiplier = 1.5 -- multiplicador de dano

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0
        local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0
        local chance = math.random(1, 1000)

        print("Chance de crítico:", criticalChance)
        print("Chance de crítico perigoso:", criticalDangerChance)
        print("Chance aleatória:", chance)

        if chance <= (criticalDangerChance * 3) then
            local damage = 100
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190)
            doSendMagicEffect(getCreaturePosition(cid), 52)
            print("Crítico DANGER aplicado")
            return true
        end

        if chance <= (criticalChance * 3) then
            local damage = 100
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31)
            doSendMagicEffect(getCreaturePosition(cid), 54)
            print("Crítico BOOSTER aplicado")
            return true
        end
    end
    return true
end

coloquei um depurador de código, qualquer erro vai mostrar no console

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
  • Sub-Admin
local lvlcrit = 48913 -- armazenamento para críticos normais
local lvlcritDanger = 48904 -- armazenamento para críticos perigosos
local multiplier = 1.5 -- multiplicador de dano

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0
        local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0
        local chance = math.random(1, 1000)


        if chance <= (criticalDangerChance * 3) then
            local damage = 100
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190)
            doSendMagicEffect(getCreaturePosition(cid), 52)
            print("Crítico DANGER aplicado")
            return true
        end

        if chance <= (criticalChance * 3) then
            local damage = 100
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31)
            doSendMagicEffect(getCreaturePosition(cid), 54)
            print("Crítico BOOSTER aplicado")
            return true
        end
    end
    return true
end

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites

@L3K0T

https://prnt.sc/SJqI0-t4f3qY

 

local lvlcrit = 48913 -- armazenamento para críticos normais
local lvlcritDanger = 48904 -- armazenamento para críticos perigosos
local multiplier = 1.5 -- multiplicador de dano

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0
        local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0
        local chance = math.random(1, 1000)


        if chance <= (criticalDangerChance * 3) then
            local damage = 100
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190)
            doSendMagicEffect(getCreaturePosition(cid), 52)
            print("Crítico DANGER aplicado")
            return true
        end

        if chance <= (criticalChance * 4) then
            local damage = 100
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31)
            doSendMagicEffect(getCreaturePosition(cid), 54)
            print("Crítico BOOSTER aplicado")
            return true
        end
    end
    return true
end

 

Link para o post
Compartilhar em outros sites
  • Sub-Admin
3 minutos atrás, Muvukaa disse:

isso e avisos anterior são depuração

 

local lvlcrit = 48913 -- armazenamento para críticos normais
local lvlcritDanger = 48904 -- armazenamento para críticos perigosos
local multiplier = 1.5 -- multiplicador de dano

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0
        local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0
        local chance = math.random(1, 1000)


        if chance <= (criticalDangerChance * 3) then
            local damage = 100
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190)
            doSendMagicEffect(getCreaturePosition(cid), 52)
            
            return true
        end

        if chance <= (criticalChance * 3) then
            local damage = 100
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31)
            doSendMagicEffect(getCreaturePosition(cid), 54)
            
            return true
        end
    end
    return true
end

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
  • Sub-Admin
Agora, Muvukaa disse:

vc n alterou o codigo para o de cima

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
Postado (editado)

olha https://prnt.sc/uULWS6fRT2ec

 

eu alterei 

 

 if chance <= (criticalChance * 3) then

 

 if chance <= (criticalChance * 4) then

 

por que 3 e 3 nao aparece o booster agora 

 

3

 

4

 

aparece

 

local lvlcrit = 48913 -- armazenamento para críticos normais
local lvlcritDanger = 48904 -- armazenamento para críticos perigosos
local multiplier = 1.5 -- multiplicador de dano

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0
        local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0
        local chance = math.random(1, 1000)


        if chance <= (criticalDangerChance * 3) then
            local damage = 100
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190)
            doSendMagicEffect(getCreaturePosition(cid), 52)
            print("Crítico DANGER aplicado")
            return true
        end

        if chance <= (criticalChance * 4) then
            local damage = 100
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31)
            doSendMagicEffect(getCreaturePosition(cid), 54)
            print("Crítico BOOSTER aplicado")
            return true
        end
    end
    return true
end

 

Editado por Muvukaa (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Sub-Admin
local lvlcrit = 48913 -- armazenamento para críticos normais
local lvlcritDanger = 48904 -- armazenamento para críticos perigosos
local multiplier = 1.5 -- multiplicador de dano

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0
        local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0
        local chance = math.random(1, 1000)


        if chance <= (criticalDangerChance * 3) then
            local damage = 100 -- Valor do dano crítico DANGER (ajuste conforme necessário)
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190)
            doSendMagicEffect(getCreaturePosition(cid), 52)

            return true
        end

        if chance <= (criticalChance * 4) then
            local damage = 100 -- Valor do dano crítico BOOSTER (ajuste conforme necessário)
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255)
            doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31)
            doSendMagicEffect(getCreaturePosition(cid), 54)

            return true
        end
    end
    return true
end

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
  • Sub-Admin
local lvlcrit = 48913 -- armazenamento para críticos normais
local lvlcritDanger = 48904 -- armazenamento para críticos perigosos
local multiplier = 1.5 -- multiplicador de dano

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0
        local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0
        local chance = math.random(1, 1000)

        if chance <= (criticalDangerChance * 3) then
            local damageDanger = 100 -- Valor do dano crítico DANGER (ajuste conforme necessário)
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageDanger, -damageDanger, 255)
            doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190)
            doSendMagicEffect(getCreaturePosition(cid), 52)
            return true
        end

        if chance <= (criticalChance * 4) then
            local damageBooster = 200 -- Valor do dano crítico BOOSTER (ajuste conforme necessário)
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageBooster, -damageBooster, 255)
            doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31)
            doSendMagicEffect(getCreaturePosition(cid), 54)
            return true
        end
        

        return true
    end
    return true
end

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
Postado (editado)

https://prnt.sc/2ynFLECcMFEL

 

ele ataca aparece erro continua atacando mais nao trava da pra sai e desataca a creatura

 

[08/06/2024 23:32:25] [Error - CreatureEvent::executeCombat] Call stack overflow.

Editado por Muvukaa (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Sub-Admin
1 minuto atrás, Muvukaa disse:

https://prnt.sc/2ynFLECcMFEL

 

ele ataca aparece erro continua atacando mais nao trava da pra sai e desataca a creatura

 

[08/06/2024 23:32:25] [Error - CreatureEvent::executeCombat] Call stack overflow.



 

local lvlcrit = 48913 -- armazenamento para críticos normais
local lvlcritDanger = 48904 -- armazenamento para críticos perigosos
local multiplier = 1.5 -- multiplicador de dano

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0
        local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0
        local chance = math.random(1, 1000)

        if chance <= (criticalDangerChance * 3) then
            local damageDanger = 100 -- Valor do dano crítico DANGER (ajuste conforme necessário)
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageDanger, -damageDanger, 255)
            doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190)
            doSendMagicEffect(getCreaturePosition(cid), 52)
            return true
        end

        if chance <= (criticalChance * 4) then
            local damageBooster = 200 -- Valor do dano crítico BOOSTER (ajuste conforme necessário)
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageBooster, -damageBooster, 255)
            doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31)
            doSendMagicEffect(getCreaturePosition(cid), 54)
            return true
        end
        

        return true
    end
    return true
end

 

vi que vc tava usando 2 local = demage pode ser conflito

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites

[08/06/2024 23:38:32] [Error - CreatureEvent::executeCombat] Call stack overflow. continua aparecendo

Link para o post
Compartilhar em outros sites
  • Sub-Admin
  • Solução
8 minutos atrás, Muvukaa disse:

[08/06/2024 23:38:32] [Error - CreatureEvent::executeCombat] Call stack overflow. continua aparecendo

 

 

local lvlcrit = 48913 -- armazenamento para críticos normais
local lvlcritDanger = 48904 -- armazenamento para críticos perigosos
local multiplier = 1.5 -- multiplicador de dano

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0
        local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0
        local chance = math.random(1, 1000)

        if chance <= (criticalDangerChance * 3) then
            local damageDanger = 100 -- Valor do dano crítico DANGER (ajuste conforme necessário)
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageDanger, -damageDanger, 255)
            doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190)
            doSendMagicEffect(getCreaturePosition(cid), 52)
            return true
        elseif chance <= (criticalChance * 4) then
            local damageBooster = 200 -- Valor do dano crítico BOOSTER (ajuste conforme necessário)
            doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageBooster, -damageBooster, 255)
            doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31)
            doSendMagicEffect(getCreaturePosition(cid), 54)
            return true
        else

            return true
        end
    end

    return true
end

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites

APARECE [08/06/2024 23:54:42] [Error - CreatureEvent::executeCombat] Call stack overflow. MAIS DA PRA ANDA DA PRA PARA DE ATACA DA MAIS APARECE ESSE ERRO EM MASSA NO CONSOLE [08/06/2024 23:54:42] [Error - CreatureEvent::executeCombat] Call stack overflow.

Link para o post
Compartilhar em outros sites

Eu só dei uma melhorada no script e limpei a sintaxe em LUA.

local criticalConfig = {
    normal = {
        storage = 48913,
        damage = 100,
        chanceMultiplier = 3,
        effect = 54,
        text = "+BOOSTER!",
        textColor = 31,
        combatEffect = 255
    },
    danger = {
        storage = 48904,
        damage = 150,
        chanceMultiplier = 3,
        effect = 52,
        text = "DANGER!",
        textColor = 190,
        combatEffect = 255
    }
}

function onCombat(cid, target)
    if isPlayer(cid) and isCreature(target) then
        local chance = math.random(1, 1000)

        local function applyCritical(criticalType)
            local config = criticalConfig[criticalType]
            local criticalChance = getPlayerStorageValue(cid, config.storage) or 0

            if chance <= (criticalChance * config.chanceMultiplier) then
                local combat = createCombatObject()
                setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
                setCombatParam(combat, COMBAT_PARAM_EFFECT, config.combatEffect)
                setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -config.damage, -config.damage, 0, 0)
                doCombat(cid, combat, numberToVariant(target))
                doSendAnimatedText(getCreaturePosition(target), config.text, config.textColor)
                doSendMagicEffect(getCreaturePosition(cid), config.effect)
                return true
            end
            return false
        end

        -- Tenta aplicar o crítico 'normal' e se falhar, tenta aplicar o 'danger'
        if not applyCritical('normal') then
            applyCritical('danger')
        end
    end
    return true
end

 

Editado por Mateus Robeerto (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@Mateus Robeerto 

 

e não aparece efeito DANGER!

 

[09/06/2024 15:32:05] [Error - CreatureScript Interface] 
[09/06/2024 15:32:05] data/creaturescripts/scripts/criticalsam.lua:onCombat
[09/06/2024 15:32:05] Description: 
[09/06/2024 15:32:05] (luaDoCombat) Combat not found

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo