Ir para conteúdo
  • Cadastre-se

(Resolvido)[Edição] Spells


Ir para solução Resolvido por KotZletY,

Posts Recomendados

  • Solução
Postado

@Phineasz lamento, falta de atenção minha:

Spoiler

local config = {
tempo = 600, --- tempo que vai ficar recuperando mana (tempo total)
mana = 350, -- quanto de mana ganha a cada intervalo
intervalo = 1  --- intervalo que leva pra recuperar X de mana, 
}

local condition = createConditionObject(CONDITION_FOOD)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana)
setConditionParam(condition, CONDITION_PARAM_MANATICKS, config.intervalo*1000)

local config = {
    baseMana = 60,
    pvpManaSpent = getConfigValue("addManaSpentInPvPZone")
}

function onCastSpell(cid, var)
    local pos, membersList = getCreaturePosition(cid), getPartyMembers(cid)

    if not membersList then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce precisa esta em party para usar esse buff.")
        doSendMagicEffect(pos, CONST_ME_POFF)
        return false
    end

    if table.maxn(membersList) <= 1 then
        doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE)
        doSendMagicEffect(pos, CONST_ME_POFF)
        return false
    end

    local affectedList = {}
    for _, pid in ipairs(membersList) do
        if(getDistanceBetween(getCreaturePosition(pid), pos) <= 36) then
            table.insert(affectedList, pid)
        end
    end

    local tmp = table.maxn(affectedList)
    if(tmp <= 1) then
        doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE)
        doSendMagicEffect(pos, CONST_ME_POFF)
        return false
    end

    local mana = math.ceil((0.9 ^ (tmp - 1) * config.baseMana) * tmp)
    if(getCreatureMana(cid) < mana) then
        doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA)
        doSendMagicEffect(pos, CONST_ME_POFF)
        return false
    end

    doCreatureAddMana(cid, -(mana - config.baseMana), false)
    if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).pvp or config.pvpManaSpent)) then
        doPlayerAddSpentMana(cid, (mana - config.baseMana))
    end

    for _, pid in ipairs(affectedList) do
        doAddCondition(pid, condition)
    end

    return true
end

 

 

Alterei só uma, já que as duas spells são as mesmas com configurações diferentes, basta você clonar e alterar os dados da spell.

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Postado

@KotZletY Funcionou, mais se eu quiser adicionar o efeito é só adicionar esta linha?

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 39)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

 

E para mim editar o script para que de x atributo ao jogador é só mudar essas linhas?

local mana = math.ceil((0.9 ^ (tmp - 1) * config.baseMana) * tmp)
if(getCreatureMana(cid) < mana) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA)
doSendMagicEffect(pos, CONST_ME_POFF)
return false
end

doCreatureAddMana(cid, -(mana - config.baseMana), false)
if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).pvp or config.pvpManaSpent)) then
doPlayerAddSpentMana(cid, (mana - config.baseMana))
end

 

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Postado

@Phineasz não há necessidade de criar um combat para soltar um effect.

Onde o effect deve sair ? Em cima do player ?

 

Em relação ao x atributo, sempre após as checagens necessárias!

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Postado

@KotZletY O  antigo script era assim, quando você usava o buf saia um efeito tipo magia de área 

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

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.
  • Estatísticas dos Fóruns

    96.9k
    Tópicos
    519.6k
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo