Mr Noxi
Noxus Otserver
Ellooo!
So Snavy made a script service here on Otland Lua - Snavy & Levi - Free Scripting Service - TFS 1.3 (https://otland.net/threads/snavy-levi-free-scripting-service-tfs-1-3.275695/page-2#post-2654608)
He made the Daily reward that player can use each 24h.
Revscript,
Getting an error tho when launching,
Here my code below, only edited the actionID so far.
My error in console;
So Snavy made a script service here on Otland Lua - Snavy & Levi - Free Scripting Service - TFS 1.3 (https://otland.net/threads/snavy-levi-free-scripting-service-tfs-1-3.275695/page-2#post-2654608)
He made the Daily reward that player can use each 24h.
Revscript,
Getting an error tho when launching,
Here my code below, only edited the actionID so far.
My error in console;
Lua:
---[ CUSTOM FUNCTIONS ]---
local function getTableLength(t)
local count = 0
for k, v in pairs(t) do count = count + 1 end
return count
end
local function secondsToReadable(s)
local hours = math.floor(s / 3600)
local minutes = math.floor(math.mod(s, 3600)/60)
local seconds = math.floor(math.mod(s, 60))
return (hours > 0 and (hours .. ' hours ') or '') ..
(minutes > 0 and (minutes .. ' minutes ') or '') ..
(seconds > 0 and (seconds .. ' seconds ') or '')
end
---[ CONFIGURATION ]---
local config = {
-- HEALTH BOOST
HP_BOOST_TIME = 10, -- 10 seconds
HP_BOOST_PERCENT = 10, -- +10%
HP_BOOST_STORAGE = 13450,
-- MANA BOOST
MP_BOOST_TIME = 10, -- 10 seconds
MP_BOOST_PERCENT = 10, -- +10%
MP_BOOST_STORAGE = 13451,
-- EXP_RATE
EXPERIENCE_AMOUNT = 10,
EXTRA_EXP_RATE = 1.05, -- +5%
EXTRA_EXP_STORAGE = 181233,
EXTRA_EXP_TIME = 60,
STORAGE_LAST_USED = 181234,
REWARD_TIME = 24 * 3600
}
local REWARD_TYPE = {
ITEM = 1,
EXPERIENCE = 2,
EXTRA_HP = 3,
EXTRA_MP = 4,
EXP_RATE = 5
}
local rewards = {}
rewards[REWARD_TYPE.ITEM] = {2160, 10}
rewards[REWARD_TYPE.EXPERIENCE] = config.EXPERIENCE_AMOUNT -- want to add constant amount of xp to every player or modified?
rewards[REWARD_TYPE.EXTRA_HP] = Condition(CONDITION_ATTRIBUTES)
rewards[REWARD_TYPE.EXTRA_HP]:setParameter(CONDITION_PARAM_SUBID, 1234)
rewards[REWARD_TYPE.EXTRA_HP]:setParameter(CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100 + config.HP_BOOST_PERCENT)
rewards[REWARD_TYPE.EXTRA_HP]:setParameter(CONDITION_PARAM_TICKS, config.HP_BOOST_TIME * 1000)
rewards[REWARD_TYPE.EXTRA_MP] = Condition(CONDITION_ATTRIBUTES)
rewards[REWARD_TYPE.EXTRA_HP]:setParameter(CONDITION_PARAM_SUBID, 1235)
rewards[REWARD_TYPE.EXTRA_MP]:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 100 + config.MP_BOOST_PERCENT)
rewards[REWARD_TYPE.EXTRA_MP]:setParameter(CONDITION_PARAM_TICKS, config.MP_BOOST_TIME * 1000)
rewards[REWARD_TYPE.EXP_RATE] = config.EXTRA_EXP_RATE
---[ ACTION SCRIPT ]---
local act = Action()
function act.onUse(player, item, fromPosition, itemEx, toPosition)
if player:getStorageValue(config.STORAGE_LAST_USED) > os.time() then
player:sendTextMessage(MESSAGE_STATUS_SMALL, 'You can only use this chest every 24h!')
player:getPosition():sendMagicEffect(CONST_ME_POFF)
return true
end
local rewardType = math.random(1, getTableLength(REWARD_TYPE))
if not rewards[rewardType] then
player:getPosition():sendMagicEffect(CONST_ME_POFF)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'An error has occured. Contact admin.')
print('[Warning - DailyRewardChest] Unknown reward. Type ('.. rewardType ..')')
return true
end
player:setStorageValue(config.STORAGE_LAST_USED, os.time() + config.REWARD_TIME)
player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
-- +EXPERIENCE --
if rewardType == REWARD_TYPE.EXPERIENCE then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have received ' .. rewards[rewardType] .. ' exp.')
player:addExperience(rewards[rewardType])
return true
end
-- EXTRA EXP RATE --
if rewardType == REWARD_TYPE.EXP_RATE then
player:setStorageValue(config.EXTRA_EXP_STORAGE, os.time() + config.EXTRA_EXP_TIME)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE,
'You have received extra exp rate of +'
.. (config.EXTRA_EXP_RATE * 100) - 100
.. '% for '
.. secondsToReadable(config.EXTRA_EXP_TIME)
)
return true
end
-- ITEM --
if rewardType == REWARD_TYPE.ITEM then
local item = rewards[rewardType]
player:addItem(item[1], item[2])
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have found an item.')
return true
end
-- EXTRA HP / MANA --
if rewardType == REWARD_TYPE.EXTRA_HP then
player:addCondition(rewards[rewardType])
player:sendTextMessage(
MESSAGE_EVENT_ADVANCE,
'You have received +'.. config.HP_BOOST_PERCENT ..'% health boost for '
.. secondsToReadable(config.HP_BOOST_TIME)
)
return true
end
if rewardType == REWARD_TYPE.EXTRA_MP then
player:addCondition(rewards[rewardType])
player:sendTextMessage(
MESSAGE_EVENT_ADVANCE,
'You have received +'.. config.MP_BOOST_PERCENT ..'% mana boost for '
.. secondsToReadable(config.MP_BOOST_TIME)
)
end
return true
end
act:id(21355) -- change this
act:register()
--------[ EVENTS ]--------
local ecb = EventCallback
ecb.onGainExperience = function(self, source, exp, rawExp)
if not source or source:isPlayer() then
return exp
end
if self:getStorageValue(config.EXTRA_EXP_STORAGE) < os.time() then
return exp
end
exp = exp * config.EXTRA_EXP_RATE
return exp
end
ecb:register(1)