mirror of
https://github.com/araxiaonline/RandomScriptsforAzerothCore.git
synced 2026-06-13 10:22:22 -04:00
120 lines
3.5 KiB
Lua
120 lines
3.5 KiB
Lua
local enabled = true
|
|
local PlayedTimeInterval = 30 --minutes
|
|
local MoneyReward = 10000 -- COPPER (100 Copper = 1 Silver| 100 Silver = 1 Gold) 10000 Copper = 1 gold
|
|
local HonorReward = 150 -- Honor points to reward
|
|
local ArenaReward = 25 -- Arena points to reward
|
|
local ItemReward = 0 -- Itemid if 0 then no item given
|
|
local ItemRewardCount = 1 -- How many of the item to reward.
|
|
|
|
local playtime
|
|
local timerPR = PlayedTimeInterval * 60000
|
|
|
|
local function OnLoad(event)
|
|
|
|
local intervaltime = PlayedTimeInterval
|
|
local hours = 0
|
|
local minutes = 0
|
|
local timestring
|
|
|
|
if PlayedTimeInterval >= 60 then
|
|
hours = intervaltime/60
|
|
minutes = intervaltime%60
|
|
timestring = ""..math.floor(hours).."|cff3399FF hour and |cff00cc00"..math.floor(minutes).."|cff3399FF minutes"
|
|
end
|
|
|
|
if PlayedTimeInterval < 60 then
|
|
minutes = intervaltime%60
|
|
timestring = ""..math.floor(minutes).." minutes"
|
|
end
|
|
|
|
SendWorldMessage("|cff3399FF Playtime Reward active and interval set to |cff00cc00"..timestring.."|cff3399FF .")
|
|
|
|
end
|
|
|
|
local function REWARD(eventid, delay, repeats, player)
|
|
local gold = 0
|
|
local silver = 0
|
|
local copper = 0
|
|
|
|
if MoneyReward >= 10000 then
|
|
number = MoneyReward
|
|
gold = number/10000
|
|
number = number%10000
|
|
silver = number/100
|
|
copper = number%100
|
|
end
|
|
|
|
if MoneyReward > 100 and MoneyReward < 10000 then
|
|
number = MoneyReward
|
|
silver = number/100
|
|
copper = number%100
|
|
end
|
|
|
|
if MoneyReward <= 100 then
|
|
copper = MoneyReward
|
|
end
|
|
|
|
local rewardstring = ""..math.floor(gold).."|c00FFFF00g|cff3399FF"..math.floor(silver).."|cFFFFFFFFs|cff3399FF"..math.floor(copper).."|cFFcc0000c"
|
|
|
|
|
|
if player:GetTotalPlayedTime() >= (playtime + timerPR/1000) then
|
|
|
|
if MoneyReward > 0 then
|
|
player:ModifyMoney( MoneyReward )
|
|
player:SendBroadcastMessage("|cff3399FF You received "..rewardstring.."|cff3399FF as a Playtime Reward.")
|
|
end
|
|
|
|
if HonorReward > 0 then
|
|
player:ModifyHonorPoints( HonorReward )
|
|
player:SendBroadcastMessage("|cff3399FF You received |cff00cc00"..HonorReward.."|cff3399FF Honor Points as a Playtime Reward.")
|
|
end
|
|
|
|
if ArenaReward > 0 then
|
|
player:ModifyArenaPoints( ArenaReward )
|
|
player:SendBroadcastMessage("|cff3399FF You received |cff00cc00"..ArenaReward.."|cff3399FF Arena Points as a Playtime Reward.")
|
|
end
|
|
|
|
if ItemReward > 0 then
|
|
local Item = player:AddItem( ItemReward, ItemRewardCount )
|
|
local itemname = Item:GetName()
|
|
player:SendBroadcastMessage("|cff3399FF You received |c00FFFF00"..ItemRewardCount.."|cff3399FFx |cff00cc00"..itemname.."|cff3399FF as a Playtime Reward.")
|
|
end
|
|
|
|
end
|
|
|
|
playtime = player:GetTotalPlayedTime()
|
|
end
|
|
|
|
local function DINKLEDORK (eventid, delay, repeats, player)
|
|
playtime = player:GetTotalPlayedTime()
|
|
player:RegisterEvent(REWARD, timerPR, 0, player)
|
|
player:SendBroadcastMessage("|cff3399FF Playtime Reward active and interval set to |cff00cc00"..PlayedTimeInterval.."|cff3399FF minutes.")
|
|
|
|
end
|
|
|
|
local firstlogin = true
|
|
|
|
|
|
local function OnFirstLogin(event, player)
|
|
|
|
if event == 30 then
|
|
firstlogin = true
|
|
player:RegisterEvent(DINKLEDORK, 10000, 1, player)
|
|
player:SendBroadcastMessage("|cff3399FF Playtime Reward active and interval set to |cff00cc00"..PlayedTimeInterval.."|cff3399FF minutes.")
|
|
end
|
|
end
|
|
|
|
local function OnLogin(event, player)
|
|
if not firstlogin then
|
|
player:RegisterEvent(DINKLEDORK, 10000, 1, player)
|
|
player:SendBroadcastMessage("|cff3399FF Playtime Reward active and interval set to |cff00cc00"..PlayedTimeInterval.."|cff3399FF minutes.")
|
|
else
|
|
firstlogin = true
|
|
end
|
|
end
|
|
|
|
if enabled then
|
|
RegisterPlayerEvent(30, OnFirstLogin)
|
|
RegisterPlayerEvent(3, OnLogin)
|
|
RegisterServerEvent(33, OnLoad)
|
|
end |