Ir para conteúdo
  • Cadastre-se

(Resolvido)Limitar skills


Ir para solução Resolvido por Orochi Elf,

Posts Recomendados

Olá pessoal, tenho um script de limite de skills porem ele não limita a magic level alguém pode ajudar?

function onAdvance(cid, skill, oldLevel, newLevel)
    if skill == SKILL_SWORD then
        if getPlayerSkillLevel(cid, SKILL_SWORD) >= 171 then
                doPlayerSetRate(cid, SKILL_SWORD, 0.0)
        end
    
    elseif skill == SKILL_SWORD then
        if getPlayerSkillLevel(cid, SKILL_FIST) >= 171 then
                doPlayerSetRate(cid, SKILL_FIST, 0.0)
        end    
    return false
    
    elseif skill == SKILL_AXE then
        if getPlayerSkillLevel(cid, SKILL_AXE) >= 171 then
                doPlayerSetRate(cid, SKILL_AXE, 0.0)
        end    
    return false
    
    elseif skill == SKILL_CLUB then
        if getPlayerSkillLevel(cid, SKILL_CLUB) >= 171 then
                doPlayerSetRate(cid, SKILL_CLUB, 0.0)
        end    
    return false
    
    elseif skill == SKILL_DISTANCE then
        if getPlayerSkillLevel(cid, SKILL_DISTANCE) >= 171 then
                doPlayerSetRate(cid, SKILL_DISTANCE, 0.0)
        end    
    return false
    
    elseif skill == SKILL_SHIELD then
        if getPlayerSkillLevel(cid, SKILL_FIST) >= 171 then
                doPlayerSetRate(cid, SKILL_FIST, 0.0)
        end    
    return false
    
    elseif skill == SKILL_FISH then
        if getPlayerSkillLevel(cid, SKILL_FISH) >= 171 then
                doPlayerSetRate(cid, SKILL_FISH, 0.0)
        end    
    return false
    
end
end
Link para o post
Compartilhar em outros sites

Não testei.

 

local skills = {
    [SKILL_SWORD] = {maxLevel = 171},
    [SKILL_AXE] = {maxLevel = 171},
    [SKILL_CLUB] = {maxLevel = 171},
    [SKILL_DISTANCE] = {maxLevel = 171},
    [SKILL_SHIELD] = {maxLevel = 171},
    [SKILL_FISH] = {maxLevel = 171},
    [SKILL__MAGLEVEL] = {maxLevel = 171},
}

function onAdvance(cid, skill, oldLevel, newLevel)
    local i = skills[skill]
    
    if i then
        if newLevel >= i.maxLevel then
            return false
        end
    end
    return true
end

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites

 

Não testei.

local skills = {
    [SKILL_SWORD] = {maxLevel = 171},
    [SKILL_AXE] = {maxLevel = 171},
    [SKILL_CLUB] = {maxLevel = 171},
    [SKILL_DISTANCE] = {maxLevel = 171},
    [SKILL_SHIELD] = {maxLevel = 171},
    [SKILL_FISH] = {maxLevel = 171},
    [SKILL__MAGLEVEL] = {maxLevel = 171},
}

function onAdvance(cid, skill, oldLevel, newLevel)
    local i = skills[skill]
    
    if i then
        if newLevel >= i.maxLevel then
            return false
        end
    end
    return true
end

Valeu lek, vou testar.

Deu error..

 

[10:5:12.996] [Error - Test Interface] 
[10:5:12.996] data/creaturescripts/scripts/skillblock.lua
[10:5:12.996] Description: 
[10:5:12.996] data/creaturescripts/scripts/skillblock.lua:7: table index is nil[10:5:12.996] [Error - Event::checkScript] Cannot load script (data/creaturescripts/scripts/skillblock.lua)
Link para o post
Compartilhar em outros sites

Bom.. é porque no caso a variavel "SKILL_FISH", não existe, agora que eu fui ver, eu fui me baseando no seu script.

 

local skills = {
    [SKILL_SWORD] = {maxLevel = 171},
    [SKILL_AXE] = {maxLevel = 171},
    [SKILL_CLUB] = {maxLevel = 171},
    [SKILL_DISTANCE] = {maxLevel = 171},
    [SKILL_SHIELD] = {maxLevel = 171},
    [SKILL_FISHING] = {maxLevel = 171},
    [SKILL__MAGLEVEL] = {maxLevel = 171},
}

function onAdvance(cid, skill, oldLevel, newLevel)
    local i = skills[skill]
    
    if i then
        if newLevel >= i.maxLevel then
            return false
        end
    end
    return true
end

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites

 

Bom.. é porque no caso a variavel "SKILL_FISH", não existe, agora que eu fui ver, eu fui me baseando no seu script.

local skills = {
    [SKILL_SWORD] = {maxLevel = 171},
    [SKILL_AXE] = {maxLevel = 171},
    [SKILL_CLUB] = {maxLevel = 171},
    [SKILL_DISTANCE] = {maxLevel = 171},
    [SKILL_SHIELD] = {maxLevel = 171},
    [SKILL_FISHING] = {maxLevel = 171},
    [SKILL__MAGLEVEL] = {maxLevel = 171},
}

function onAdvance(cid, skill, oldLevel, newLevel)
    local i = skills[skill]
    
    if i then
        if newLevel >= i.maxLevel then
            return false
        end
    end
    return true
end

Não deu erro mas também não limitou

Link para o post
Compartilhar em outros sites
  • Solução

Então o "return false", não está impedindo de avançar o level.

Bom.. eu não sei se existe uma função, de setar a nova "rate" de magic level. então eu tou usando desta forma. teste ai.

 

local skills = {
    [SKILL_SWORD] = {maxLevel = 171},
    [SKILL_AXE] = {maxLevel = 171},
    [SKILL_CLUB] = {maxLevel = 171},
    [SKILL_DISTANCE] = {maxLevel = 171},
    [SKILL_SHIELD] = {maxLevel = 171},
    [SKILL_FISHING] = {maxLevel = 171},
    [SKILL__MAGLEVEL] = {maxLevel = 171},
}

function onAdvance(cid, skill, oldLevel, newLevel)
    local i = skills[skill]
    
    if i then
        if newLevel > i.maxLevel then
            
            doPlayerSetRate(cid, skill, 0.0)
            return false
        end
    end
    return true
end

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites
  • 3 years later...
  • 2 years later...
Em 26/12/2020 em 14:26, khoze disse:

em qual pasta eu coloco essa script pra ela funcionar?

Esse script é colocado em Creatures/script em um arquivo lua depois coloque no creatures.xml a tag para ativação e registra o evento em login.lua em scripts

 

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