Ir para conteúdo
  • Cadastre-se

[+] OTX2 8.6 Elo Buff, Ganhar um buff de skill por storage [+]


Posts Recomendados

 

Bom, como diz no titulo, gostaria de um buff que o player ganharia a cada vez que logasse se tivesse X de storage, tentei fazer o script com a função onLogin, mas teve vezes que funcionou e outras que não ao logar no personagem.
(É necessário que seja um buff de ML e não apenas ganhar a skill de ML, já que caso ele morra ele pode perder.)

0 de ML tendo 0 da storage 848484
1 de ML tendo 5 a 10 da storage 848484
2 de ML tendo 15 ou mais da storage 848484

Procurei por algo similar no fórum e não achei, caso possam me ajudar ou pelo menos apontar a direção de alguma forma.
Obrigado desde já.

Pode ser uma spell também caso não dê para fazer em creaturescripts, tentei fazer mas sempre que eu usava a magia dava poison invés de ML..

Editado por King Laker (veja o histórico de edições)

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites
function onLogin(cid)
    local playerStorageValue = getPlayerStorageValue(cid, 848484)
    local mlBuffLevel = 0

    if playerStorageValue >= 0 and playerStorageValue < 5 then
        mlBuffLevel = 1
    elseif playerStorageValue >= 5 and playerStorageValue < 15 then
        mlBuffLevel = 2
    elseif playerStorageValue >= 15 then
        mlBuffLevel = 3
    end

    doPlayerAddManaSpent(cid, mlBuffLevel)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você recebeu um buff de Magic Level: " .. mlBuffLevel)
end

Será que é parecido assim?

Link para o post
Compartilhar em outros sites
26 minutos atrás, GM Vortex disse:

function onLogin(cid)
    local playerStorageValue = getPlayerStorageValue(cid, 848484)
    local mlBuffLevel = 0

    if playerStorageValue >= 0 and playerStorageValue < 5 then
        mlBuffLevel = 1
    elseif playerStorageValue >= 5 and playerStorageValue < 15 then
        mlBuffLevel = 2
    elseif playerStorageValue >= 15 then
        mlBuffLevel = 3
    end

    doPlayerAddManaSpent(cid, mlBuffLevel)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você recebeu um buff de Magic Level: " .. mlBuffLevel)
end

Será que é parecido assim?

O seu nem chegou a funcionar.

Infelizmente o script que eu fiz ele não funcionava toda vez que o jogador logava e também não achei uma maneira de configurar mais de um buff por storage
Oque eu consegui fazer foi assim: 

local function addConditionVocDay(cid)
    local condition = createConditionObject(CONDITION_ATTRIBUTES)
    setConditionParam(condition, CONDITION_PARAM_TICKS, -1) -- Permanente
    setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, 1) -- Quanto de Magic Level será adicionado

    if not isPlayer(cid) then
        return true
    end

    if getCreatureCondition(cid, CONDITION_ATTRIBUTES) then
        doRemoveCondition(cid, CONDITION_ATTRIBUTES)
    end

    doAddCondition(cid, condition)
end

function onLogin(cid)
    if getPlayerStorageValue(cid, 848484) >= 5 then
        addConditionVocDay(cid)
    end
    return true
end

 

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites
local function applyMagicLevelBonus(cid)
    local playerStorage = getPlayerStorageValue(cid, 848484) or 0
    
    local mlBonus = 0
    
    if playerStorage >= 15 then
        mlBonus = 2
    elseif playerStorage >= 5 then
        mlBonus = 1
    end

    if mlBonus > 0 then
        local condition = createConditionObject(CONDITION_ATTRIBUTES)
        setConditionParam(condition, CONDITION_PARAM_TICKS, -1)
        setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, mlBonus)
        
        if getCreatureCondition(cid, CONDITION_ATTRIBUTES) then
            doRemoveCondition(cid, CONDITION_ATTRIBUTES)
        end
        
        doAddCondition(cid, condition)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ganhou " .. mlBonus .. " pontos de Magic Level.")
    end
end

function onLogin(cid)
    applyMagicLevelBonus(cid)
    return true
end

 

 

1. applyMagicLevelBonus(cid): Esta função verifica o valor da storage (848484) do jogador. Se for 15 ou mais, ganha 2 pontos de Magic Level. Se for 5 ou mais, ganha 1 ponto de Magic Level. A função doPlayerSendTextMessage é usada para informar ao jogador quanto de Magic Level foi adicionado.

2. onLogin(cid): Quando um jogador loga, esta função é chamada. Ela simplesmente chama applyMagicLevelBonus(cid) para aplicar o bônus de Magic Level quando o jogador loga.

 


Regras Gerais 

 

"Califórnia Brasileira :cool: "

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