Provavelmente você esta usando a base Sky postada pelo @ Seeker , para alterar a defesa e ataque você pode mexer no game.cpp e verificar quando o mesmo esta sobre o efeito da Boost Potion ou utilizar as funções: doMonsterSetAttackPower(cid, value) e doMonsterSetDefensePower(cid, value)
O que tu precisa pensar é: Quanto a mesma vai aumentar de ataque e defesa? Os 10 minutos serão contados apenas quando o Pokémon estiver fora da pokeball ou será contado direto?
Mas a ideia básica de um script de Boost Potion seria assim:
local BUFF_STORAGE = 987654
local BUFF_DURATION = 600 -- 10 minutos
local POWER_MULTIPLIER = 3
function onUse(cid, item, fromPosition, itemEx, toPosition)
local summon = itemEx.uid
if not isCreature(summon) or getCreatureMaster(summon) ~= cid then
doPlayerSendCancel(cid, "Você só pode usar essa potion no seu summon.")
return false
end
if getCreatureStorage(summon, BUFF_STORAGE) > os.time() then
doPlayerSendCancel(cid, "Seu summon já está com o efeito ativo.")
return false
end
doMonsterSetAttackPower(summon, POWER_MULTIPLIER)
doMonsterSetDefensePower(summon, POWER_MULTIPLIER)
doCreatureSetStorage(summon, BUFF_STORAGE, os.time() + BUFF_DURATION)
doSendMagicEffect(getThingPos(summon), CONST_ME_MAGIC_BLUE)
doCreatureSay(summon, "BOOST POTION!", TALKTYPE_ORANGE_1)
addEvent(function()
if isCreature(summon) then
doMonsterSetAttackPower(summon, 1)
doMonsterSetDefensePower(summon, 1)
setCreatureStorage(summon, BUFF_STORAGE, 0)
doSendMagicEffect(getThingPos(summon), CONST_ME_POFF)
doCreatureSay(summon, "ACABOU!", TALKTYPE_ORANGE_1)
end
end, BUFF_DURATION * 1000)
doRemoveItem(item.uid, 1)
return true
end
Lembrando que este é apenas o esboço da Potion, vai precisar salvar STORAGE na pokeball quando puxar o pokémon de volta, e setar o STORAGE no pokémon quando soltar o mesmo.
Sempre checando o tempo e etc..