Ir para conteúdo

Featured Replies

Postado

Estou tentando fazer um script (action) que adiciona defesa elemental em um item, só que não está funcionando. Alguém que entenda e puder me ajudar, ficaria muito agradecido.
Ai vai a minha tentativa de script:

 

Spoiler

local config = {
    FdefBonus = 2,               --Bônus de Fdef, em %.
    failChance = 30,                --Chance de falhar, em porcentagem.
    types = {"armor", "legs", "helmet", "boots", "shield"},
    noFdef = {1, 2, 3, 9, 10}     --Tipos de armamento bloqueados (valores podem ser conferidos em 000-constant.lua, data/lib)
}
function onUse(cid, item, fromPos, itemEx, toPos)
    if itemEx.itemid < 100 then
        return doPlayerSendCancel(cid, "Use this in valid itens.")
    elseif isInArray(config.noFdef, getItemWeaponType(itemEx.uid)) then
        return doPlayerSendCancel(cid, "Use this in valid itens.")
    elseif getItemAttribute(itemEx.uid, "absorbPercentFire") then
        return doPlayerSendCancel(cid, "This item has already a fire defense bonus.")
    elseif math.random(1, 100) > config.failChance then
        return doPlayerSendTextMessage(cid, 27, "Sorry, your item didn't get a fire defense bonus. Good luck at the next try!"), doRemoveItem(item.uid, 1)
    end
    local checkItemName
    for i = 1, #config.types do
        if getItemNameById(itemEx.itemid):find(config.types) then
            checkItemName = true
            break
        end
    end
    if not checkItemName then
        return doPlayerSendCancel(cid, "Use this in valid itens.")
    end
    doPlayerSendTextMessage(cid, 27, "Congratulations, now your item has a sire defense bonus of "..config.FdefBonus.."%!")
    doItemSetAttribute(itemEx.uid, "absorbPercentFire", config.FdefBonus)
    doItemSetAttribute(itemEx.uid, "name", getItemName(itemEx.uid).." ref "..config.FdefBonus.."%")
    doRemoveItem(item.uid, 1)
    return true
end

 

Postado

Algum Erro na Distro? O Script Funciona normal só não adiciona o Atributo?

  • 3 weeks later...
Postado
  • Autor
Em 09/12/2017 em 22:53, gabrielzika disse:

Algum Erro na Distro? O Script Funciona normal só não adiciona o Atributo?

 

Em 14/12/2017 em 17:38, dissolima disse:

tenta primeiramente antes de tudo, checar se o item está adicionado em movements.xml


Andei vendo que não está funcionando porque absorbElementPercent não é um atributo, digamos, "genuíno". Teria que criar uma função em C++ na distro ou em lua pra fazer isso.

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.7k

Informação Importante

Confirmação de Termo