Ir para conteúdo
Close

REFORMULAMOS A SEÇÃO DE CLASSIFICADOS! - Crie grátis os seus anúncios de procura e oferta de serviços e produtos relacionados ao OTServ! - Acesse através do nosso menu ou clique aqui e confira já!

Phineasz

Scripting Buff é mostrado nas informações de outro script

Posts Recomendados

Eu gostaria de adicionar informações do BUFF feito pelo @xWhiteWolf em um script que o @Vodkart disponibilizou para a comunidade, mais ainda continuo sem saber como executar, caso alguém queria me ensinar como fazer ou me ajudar ficarei muito agradecido. As informações do BUFF só iria aparecer se você estiver com alguns dos BUFFS específicos, caso ao contrario nem iria aparecer. Obrigado desde já, rep+ para quem ajudar.

 

Exemplos:

Se você estivesse bufado pelo Utevo Sio, somente por ele iria ficar assim

Buffs:

mana up: tempo de buff

Se você foi bufado por mais de dois buffs iria ficar assim

Buffs:

vida up: tempo de buff

skill up: tempo de buff

shield up: tempo de buff

Se possível adicionar em baixo das informações que mostra quantos critical você tem. Obrigado mais uma vez

 

Script do @Vodkart

Spoiler

function getPremiumPoints(cid)
    local query = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid))
    return query:getDataInt("premium_points") <= 0 and 0 or query:getDataInt("premium_points")
end
function doCalcPercent(cid, a, b)
    return math.floor(b/a*100)
end
function getExperienceForLevel(lv)
    lv = lv - 1
    return ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
end
local var = {
    ["fist fighting"] = 0,
    ["club fighting"] = 1,
    ["sword fighting"] = 2,
    ["axe fighting"] = 3,
    ["distance fighting"] = 4,
    ["shield fighting"] = 5,
    ["fishing"] = 6,
    ["magic"] = 9
}
function onSay(cid, words, param, channel)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Premium Points: "..getPremiumPoints(cid))
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Dias Premmy: "..getPlayerPremiumDays(cid))
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Dodge Level: "..(getPlayerStorageValue(cid, 98798644) <= 0 and 0 or getPlayerStorageValue(cid, 98798644)))
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Critical Level: "..(getPlayerStorageValue(cid, 48903) <= 0 and 0 or getPlayerStorageValue(cid, 48903)))
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Stamina: "..timeString((getPlayerStamina(cid)*60)))
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Cap livre: "..getPlayerFreeCap(cid))
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Banco: "..getPlayerBalance(cid))
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Experiencia: "..getPlayerExperience(cid))
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Informacoes das skills de "..getCreatureName(cid))
    local lvl, ln = getPlayerLevel(cid),-(getPlayerExperience(cid) - getExperienceForLevel((getPlayerLevel(cid)+1)))
    local z = (getExperienceForLevel(getPlayerLevel(cid)) - getExperienceForLevel(getPlayerLevel(cid)+1))
    local w = (getExperienceForLevel(getPlayerLevel(cid)) - getPlayerExperience(cid))
    local v = math.floor(w/z*100)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- level: "..lvl.." {"..(v <= 0 and 0 or v).."%}. Faltando "..ln.." pontos de experiencia.")
    for name, id in pairs(var) do
        if name == "magic" then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- ".. name .. ": "..getPlayerMagLevel(cid).." {" .. doCalcPercent(cid, getPlayerRequiredMana(cid, getPlayerMagLevel(cid)+1), getPlayerSpentMana(cid)) .. "%}. Faltando "..getPlayerRequiredMana(cid, getPlayerMagLevel(cid)+1) - getPlayerSpentMana(cid).." pontos.") 
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- ".. name .. ": "..getPlayerSkillLevel(cid, id).." {" .. doCalcPercent(cid, getPlayerRequiredSkillTries(cid, id, getPlayerSkillLevel(cid, id)+1), getPlayerSkillTries(cid, id)) .. "%}. Faltando "..getPlayerRequiredSkillTries(cid, id, getPlayerSkillLevel(cid, id)+1) - getPlayerSkillTries(cid, id).." pontos.") 
        end
    end
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- labia: "..getLabiaLevel(cid).." {" .. doCalcPercent(cid, getLabiaExpTo(getLabiaLevel(cid)+1), getLabiaTries(cid)) .. "%}. Faltando ".. math.floor(getLabiaExpTo(getLabiaLevel(cid)+1) - getLabiaTries(cid)).." pontos.") 
    return true
end

 

Script dos BUFF feito pelo @xWhiteWolf

Vita Sio - Vida

Spoiler

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

local config = {
tempo = 600, --- tempo que vai durar a spell
percent = 20 -- quanto % vai aumentar
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Vita Gran Sio - Vida

Spoiler

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

local config = {
tempo = 600, --- tempo que vai durar a spell
percent = 40 -- quanto % vai aumentar
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Vita Gran Mas Sio - Vida. Modificado Pelo @KotZletY

Spoiler

local config = {
tempo = 600, --- tempo que vai durar a spell
percent = 40 -- quanto % vai aumentar
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent)

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

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

    if not membersList then
        doPlayerSendTextMessage(cid,22,"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

Utevo Sio - Mana

Spoiler

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


local config = {
tempo = 600, --- tempo que vai ficar recuperando mana (tempo total)
mana = 200, -- quanto de mana ganha a cada intervalo
intervalo = 5  --- 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)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Utevo Gran Sio - Mana

Spoiler

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


local config = {
tempo = 600, --- tempo que vai ficar recuperando mana (tempo total)
mana = 250, -- quanto de mana ganha a cada intervalo
intervalo = 3  --- 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)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Utevo Gran Mas Sio - Mana. Modificado pelo @KotZletY

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,22,"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

Utamo Sio - Shield

Spoiler

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

local config = {
tempo = 600, --- tempo que vai durar a spell
percent = 40 -- quanto % vai aumentar
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+config.percent)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Utamo Gran Sio - Shield

Spoiler

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

local config = {
tempo = 600, --- tempo que vai durar a spell
percent = 70 -- quanto % vai aumentar
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+config.percent)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Utamo Gran Mas Sio - Shield. Modificado pelo @KotZletY

Spoiler

local config = {
tempo = 600, --- tempo que vai durar a spell
percent = 95 -- quanto % vai aumentar
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+config.percent)

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

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

    if not membersList then
        doPlayerSendTextMessage(cid,22,"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

Utito Mas Sio - Skill

Spoiler

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

local config = {
tempo = 120, --- tempo que vai durar a spell
percent = 300 -- quanto % vai aumentar
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUBPERCENT, 100+config.percent)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORDPERCENT, 100+config.percent)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXEPERCENT, 100+config.percent)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 100+config.percent)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

 



 

                                                                            Servidor

 

 

                                                                                                                  Servidor do Discord

Clique nas imagens para ir direto para o servidor

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Vodkart Poderia me dizer como eu faço? Por favor



 

                                                                            Servidor

 

 

                                                                                                                  Servidor do Discord

Clique nas imagens para ir direto para o servidor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×