Paco
Member
Hello, I've made this script for my server. However, it works with cooldown per day. I'm messed up, think you can help me to make this code to get a storage as real tibia does it?
I thought maybe using this function:
But I don't know, you guys have a better idea? Here's my code:
I have no idea how real tibia works, but the guys at server say u get ur storage per day and stacks to get better reward if u keep loggin in. I haven't played real tibia in years xD
Thank You guys!
I thought maybe using this function:
Lua:
function getDayName()
local days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
return days[os.date("*t")["wday"]]
end
But I don't know, you guys have a better idea? Here's my code:
Code:
local waitClaimedReward = 86400 -- 24 hours cooldown
local claimedReward = 280001
local days = 280002 -- storage that determines if you recieve double exp or not
local waitLock = 72000 -- 20 hours cooldown
local lock = 280003 -- storage to check if you already picked your daily reward
local config = {
rate = 1.5, -- 50% exp rate
time = 1, -- hours of exp time
expBoost = 1451223 -- storage for active double exp
}
local function endExpRate(cid)
if isPlayer(cid) == TRUE then
doPlayerSetRate(cid, SKILL__LEVEL, config.rate) -- config.lua rate
setPlayerStorageValue(cid, config.expBoost, -1)
doPlayerSendTextMessage(cid,18, "Your %50 experience time has ended.")
end
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerGroupId(cid) == 4 then
return doPlayerSendTextMessage(cid, 18, "You do not have enough capacity to claim the reward.")
end
if getPlayerLevel(cid) < 8 then
return doCreatureSay(cid, "Only players of level 8 or higher may recive a daily reward." , TALKTYPE_ORANGE_1)
end
if(getCreatureStorage(cid, lock) > os.time()) then -- 20 hours lock for reward
local remainingHours = math.ceil((getCreatureStorage(cid, lock) - os.time()) / (60 * 60))
return doCreatureSay(cid, "You need to wait ".. remainingHours .." hours to claim your daily reward.", TALKTYPE_ORANGE_1)
end
if(getCreatureStorage(cid, claimedReward) < os.time()) then
setPlayerStorageValue(cid, days, 1)
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
doPlayerSendTextMessage(cid,18, "Your daily reward streak has been reseted. Use the reward shrine 7 days in a row or more to claim 1 hour of daily DOUBLE EXPERIENCE boost! Thank You for playing Rookgaard Tales!")
end
-- level 8
if (getPlayerLevel(cid) >= 8 and getPlayerLevel(cid) < 50) then
if(getPlayerStorageValue(cid, days) >= 1 and getCreatureStorage(cid, claimedReward) > os.time()) then
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
doCreatureSay(cid, "You have collected a daily reward." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward1 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward1,7618,5)
doAddContainerItem(reward1,7620,5)
doAddContainerItem(reward1,2306,5)
doAddContainerItem(reward1,2276,5)
end
if(getPlayerStorageValue(cid, days) >= 7 and getCreatureStorage(cid, claimedReward) > os.time()) then
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doPlayerSetRate(cid, SKILL__LEVEL, config.rate)
setPlayerStorageValue(cid, config.expBoost, os.time() + config.time * 3600)
addEvent(endExpRate, config.time * 3600 * 1000, cid)
doCreatureSay(cid, "You have collected DOUBLE daily reward! You now have 50% EXPERIENCE rate. It will last for ".. config.time .." hour." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward2 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward2,7618,10)
doAddContainerItem(reward2,7620,10)
doAddContainerItem(reward2,2306,10)
doAddContainerItem(reward2,2276,10)
end
end
-- level 50
if (getPlayerLevel(cid) >= 50 and getPlayerLevel(cid) < 80) then
if(getPlayerStorageValue(cid, days) >= 1 and getCreatureStorage(cid, claimedReward) > os.time()) then
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
doCreatureSay(cid, "You have collected a daily reward." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward3 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward3,7588,5)
doAddContainerItem(reward3,7589,5)
doAddContainerItem(reward3,2268,5)
doAddContainerItem(reward3,2300,5)
end
if(getPlayerStorageValue(cid, days) >= 7 and getCreatureStorage(cid, claimedReward) > os.time()) then
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doPlayerSetRate(cid, SKILL__LEVEL, config.rate)
setPlayerStorageValue(cid, config.expBoost, os.time() + config.time * 3600)
addEvent(endExpRate, config.time * 3600 * 1000, cid)
doCreatureSay(cid, "You have collected DOUBLE daily reward! You now have 50% EXPERIENCE rate. It will last for ".. config.time .." hour." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward4 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward4,7588,10)
doAddContainerItem(reward4,7589,10)
doAddContainerItem(reward4,2268,10)
doAddContainerItem(reward4,2300,10)
doAddContainerItem(reward7,18654,1)
end
end
-- level 80
if (getPlayerLevel(cid) >= 80 and getPlayerLevel(cid) < 130) then
if(getPlayerStorageValue(cid, days) >= 1 and getCreatureStorage(cid, claimedReward) > os.time()) then
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
doCreatureSay(cid, "You have collected a daily reward." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward5 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward5,7591,5)
doAddContainerItem(reward5,7590,5)
doAddContainerItem(reward5,8472,5)
doAddContainerItem(reward5,2268,5)
doAddContainerItem(reward5,2300,5)
end
if(getPlayerStorageValue(cid, days) >= 7 and getCreatureStorage(cid, claimedReward) > os.time()) then
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doPlayerSetRate(cid, SKILL__LEVEL, config.rate)
setPlayerStorageValue(cid, config.expBoost, os.time() + config.time * 3600)
addEvent(endExpRate, config.time * 3600 * 1000, cid)
doCreatureSay(cid, "You have collected DOUBLE daily reward! You now have 50% EXPERIENCE rate. It will last for ".. config.time .." hour." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward6 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward6,7591,10)
doAddContainerItem(reward6,7590,10)
doAddContainerItem(reward6,8472,10)
doAddContainerItem(reward6,2268,10)
doAddContainerItem(reward6,2300,10)
doAddContainerItem(reward6,18654,1)
end
end
-- level 130
if (getPlayerLevel(cid) >= 130 and getPlayerLevel(cid) < 200) then
if(getPlayerStorageValue(cid, days) >= 1 and getCreatureStorage(cid, claimedReward) > os.time()) then
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
doCreatureSay(cid, "You have collected a daily reward." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward7 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward7,8473,5)
doAddContainerItem(reward7,13982,5)
doAddContainerItem(reward7,13983,5)
doAddContainerItem(reward7,2268,5)
doAddContainerItem(reward7,2300,5)
end
if(getPlayerStorageValue(cid, days) >= 7 and getCreatureStorage(cid, claimedReward) > os.time()) then
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doPlayerSetRate(cid, SKILL__LEVEL, config.rate)
setPlayerStorageValue(cid, config.expBoost, os.time() + config.time * 3600)
addEvent(endExpRate, config.time * 3600 * 1000, cid)
doCreatureSay(cid, "You have collected DOUBLE daily reward! You now have 50% EXPERIENCE rate. It will last for ".. config.time .." hour." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward8 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward8,8473,10)
doAddContainerItem(reward8,13982,10)
doAddContainerItem(reward8,13983,10)
doAddContainerItem(reward8,2268,10)
doAddContainerItem(reward8,2300,10)
doAddContainerItem(reward8,18654,1)
end
end
-- level 200
if (getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) < 250) then
if(getPlayerStorageValue(cid, days) >= 1 and getCreatureStorage(cid, claimedReward) > os.time()) then
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
doCreatureSay(cid, "You have collected a daily reward." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward9 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward9,8473,5)
doAddContainerItem(reward9,13982,5)
doAddContainerItem(reward9,13983,5)
doAddContainerItem(reward9,13984,5)
doAddContainerItem(reward9,2268,5)
doAddContainerItem(reward9,2300,5)
end
if(getPlayerStorageValue(cid, days) >= 7 and getCreatureStorage(cid, claimedReward) > os.time()) then
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doPlayerSetRate(cid, SKILL__LEVEL, config.rate)
setPlayerStorageValue(cid, config.expBoost, os.time() + config.time * 3600)
addEvent(endExpRate, config.time * 3600 * 1000, cid)
doCreatureSay(cid, "You have collected DOUBLE daily reward! You now have 50% EXPERIENCE rate. It will last for ".. config.time .." hour." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward10 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward10,8473,5)
doAddContainerItem(reward10,13982,5)
doAddContainerItem(reward10,13983,5)
doAddContainerItem(reward10,13984,5)
doAddContainerItem(reward10,2268,5)
doAddContainerItem(reward10,2300,5)
doAddContainerItem(reward10,18654,1)
end
end
-- level 250
if getPlayerLevel(cid) >= 250 then
if(getPlayerStorageValue(cid, days) >= 1 and getCreatureStorage(cid, claimedReward) > os.time()) then
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
doCreatureSay(cid, "You have collected a daily reward." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward11 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward11,8473,5)
doAddContainerItem(reward11,13982,5)
doAddContainerItem(reward11,13983,5)
doAddContainerItem(reward11,13984,5)
doAddContainerItem(reward11,2268,5)
doAddContainerItem(reward11,2300,5)
end
if(getPlayerStorageValue(cid, days) >= 7 and getCreatureStorage(cid, claimedReward) > os.time()) then
doCreatureSetStorage(cid, claimedReward, os.time() + waitClaimedReward)
doCreatureSetStorage(cid, lock, os.time() + waitLock)
setPlayerStorageValue(cid, days, getPlayerStorageValue(cid, days) + 1)
doPlayerSetRate(cid, SKILL__LEVEL, config.rate)
setPlayerStorageValue(cid, config.expBoost, os.time() + config.time * 3600)
addEvent(endExpRate, config.time * 3600 * 1000, cid)
doCreatureSay(cid, "You have collected DOUBLE daily reward! You now have 50% EXPERIENCE rate. It will last for ".. config.time .." hour." , TALKTYPE_ORANGE_1)
doSendMagicEffect(toPosition, 2)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
local reward12 = doPlayerAddItem(cid,20332,1)
doAddContainerItem(reward12,8473,5)
doAddContainerItem(reward12,13982,5)
doAddContainerItem(reward12,13983,5)
doAddContainerItem(reward12,13984,5)
doAddContainerItem(reward12,2268,5)
doAddContainerItem(reward12,2300,5)
doAddContainerItem(reward12,18654,1)
end
end
return TRUE
end
I have no idea how real tibia works, but the guys at server say u get ur storage per day and stacks to get better reward if u keep loggin in. I haven't played real tibia in years xD
Thank You guys!