TrinityCore
boosted_xp.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation; either version 2 of the License, or (at your
7
* option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#include "
GameTime.h
"
19
#include "
ScriptMgr.h
"
20
#include "
Util.h
"
21
#include "
World.h
"
22
23
namespace
24
{
25
bool
IsXPBoostActive()
26
{
27
time_t time =
GameTime::GetGameTime
();
28
tm localTm =
TimeBreakdown
(time);
29
uint32
weekdayMaskBoosted =
sWorld
->getIntConfig(
CONFIG_XP_BOOST_DAYMASK
);
30
uint32
weekdayMask = (1 << localTm.tm_wday);
31
bool
currentDayBoosted = (weekdayMask & weekdayMaskBoosted) != 0;
32
return
currentDayBoosted;
33
}
34
}
35
36
class
xp_boost_PlayerScript
:
public
PlayerScript
37
{
38
public
:
39
xp_boost_PlayerScript
() :
PlayerScript
(
"xp_boost_PlayerScript"
) { }
40
41
void
OnGiveXP
(
Player
*
/*player*/
,
uint32
& amount,
Unit
*
/*unit*/
)
override
42
{
43
if
(IsXPBoostActive())
44
amount *=
sWorld
->getRate(
RATE_XP_BOOST
);
45
}
46
};
47
48
void
AddSC_xp_boost
()
49
{
50
new
xp_boost_PlayerScript
();
51
}
uint32
uint32_t uint32
Definition:
Define.h:142
GameTime.h
ScriptMgr.h
TimeBreakdown
tm TimeBreakdown(time_t time)
Definition:
Util.cpp:93
Util.h
World.h
AddSC_xp_boost
void AddSC_xp_boost()
Definition:
boosted_xp.cpp:48
PlayerScript
Definition:
ScriptMgr.h:695
Player
Definition:
Player.h:1109
Unit
Definition:
Unit.h:627
xp_boost_PlayerScript
Definition:
boosted_xp.cpp:37
xp_boost_PlayerScript::OnGiveXP
void OnGiveXP(Player *, uint32 &amount, Unit *) override
Definition:
boosted_xp.cpp:41
xp_boost_PlayerScript::xp_boost_PlayerScript
xp_boost_PlayerScript()
Definition:
boosted_xp.cpp:39
sWorld
#define sWorld
Definition:
World.h:931
CONFIG_XP_BOOST_DAYMASK
@ CONFIG_XP_BOOST_DAYMASK
Definition:
World.h:383
RATE_XP_BOOST
@ RATE_XP_BOOST
Definition:
World.h:532
GameTime::GetGameTime
time_t GetGameTime()
Definition:
GameTime.cpp:44
server
scripts
World
boosted_xp.cpp
Generated on Thu Mar 14 2024 23:39:35 for TrinityCore by
1.9.4