Ir para conteúdo

Featured Replies

Postado

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

 

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+ :)     

Resolvido por Vodkart

Ir para solução
  • Respostas 22
  • Visualizações 1.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

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

  • @Phineasz    vou te ensinar como fazer, é meio chato mas vou fazer em 3 script diferentes para você.   Presta atenção:   Vita Sio - Vida     Vita Gran Sio -

  • @Phineasz pois é, testa esse Gran Mas Sio que editei pra vc:   local ret = { tempo = 600, --- tempo que vai durar a spell percent = 40 -- quanto % vai aumentar } local store = 789653 -- aqu

Posted Images

Postado
  • Autor

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

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 

 

vou te ensinar como fazer, é meio chato mas vou fazer em 3 script diferentes para você.

 

Presta atenção:

 

Vita Sio - Vida
 

Spoiler

 

eu atribui uma storage nela, no caso eu escolhi a storage 789651, olha como ficou:

 

 


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)
	local store = 789651 -- valor da storage escolhido
	setPlayerStorageValue(cid, store, os.time()+config.tempo) 
	return doCombat(cid, combat, var)
end

 

 

 

 

 

Vita Gran Sio - Vida
 

Spoiler

 

eu atribui outra storage nela, no caso eu escolhi a storage 789652, olha como ficou:

 


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)
	local store = 789652 -- storage escolhida
	setPlayerStorageValue(cid, store, os.time()+config.tempo) 
	return doCombat(cid, combat, var)
end

 

 

 

 

 

 


Vita Gran Mas Sio - Vida.
 

Spoiler

 

Nesse caso é um buff que é dado em party então todos os jogadores que serão bufados devem receber a storage, que no caso foi escolhida a 789653.

 


local config = {
	tempo = 600, --- tempo que vai durar a spell
	percent = 40 -- quanto % vai aumentar
}
local store = 789653 -- aqui valor da storage

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)
		setPlayerStorageValue(pid, store, os.time()+config.tempo) -- aqui storage
	end	
	return true
end

 

 

 

----------------------------------------------

 

agora vou na lib e coloco em qualquer arquivo la no final essa tabela:

 

-- buffs info

command_buffs_storages = {
	[789651] = "Vida up - tempo restante: %s.",
	[789652] = "Super vida up - tempo restante: %s.",
	[789653] = "Party Vida Up - tempo restante: %s."
}

 

--------------------------------------------------

 

agora vou no creaturescript e no arquivo do login.lua adiciona antes do último return true:

 

	for store, buff in pairs(command_buffs_storages) do
    		setPlayerStorageValue(cid, store, 0)
	end

 

e o script vc deixa assim a talk:

 

 

Spoiler

function timeString(timeDiff)
	local dateFormat = {
		{"day", timeDiff / 60 / 60 / 24},
		{"hour", timeDiff / 60 / 60 % 24},
		{"minute", timeDiff / 60 % 60},
		{"second", timeDiff % 60}
	}
	local out = {}
	for k, t in ipairs(dateFormat) do
		local v = math.floor(t[2])
		if(v > 0) then
			table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or ''))
		end
	end
	local ret = table.concat(out)
	if ret:len() < 16 and ret:find("second") then
		local a, b = ret:find(" and ")
		ret = ret:sub(b+1)
	end
	
	return ret
end
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 ShowMyBuffs(cid)
local show = false
	for store, buff in pairs(command_buffs_storages) do
		if getPlayerStorageValue(cid, store) >= os.time() then
			if show == false then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Informações dos Buffs:")
				show = true
			end			
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, string.format(buff, timeString(getPlayerStorageValue(cid, store) - os.time())))
		end
	end
end
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.") 
    ShowMyBuffs(cid)
    return true
end

 


 

 

 

 

 

 

 

 

 

 

 

 

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • Autor

@Vodkart Vou fazer os testes aqui, já te aviso

Funcionou obrigado

@Vodkart Ahmm, poderia me ajudar só mais em uma coisinha? Poderia mudar a parte da storage que vai para o jogador quando usa a magia? Tipo, o script estar funcionando perfeitamente, mais a storage só vai para o jogador que usou o buff, o que eu estou tentando dizer é, se eu bufar um amigo ou qualquer outro jogador, quem vai ficar com a storage sou eu e não vai aparecer o tempo nas informações de quem recebeu o buff, 

No script do Vita Gran Mas Sio estar dando este erro

image.png.8fd2a8897016253c016e0e8353902129.png

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 No Vita Gran Mas Sio tinha duas tabelas com o mesmo nome...

 

------------------------------

 

sobre os demais scripts, o buff não é só em si mesmo? tbm dá para colocar no target? em todos eles?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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