mirror of
https://github.com/noisiver/mod-weekendbonus.git
synced 2026-01-13 00:58:36 +00:00
Restructured
Restructured the code layout to match my other modules.
This commit is contained in:
@@ -1,6 +0,0 @@
|
|||||||
void AddWeekendBonusScripts();
|
|
||||||
|
|
||||||
void Addmod_weekendbonusScripts()
|
|
||||||
{
|
|
||||||
AddWeekendBonusScripts();
|
|
||||||
}
|
|
||||||
@@ -1,181 +1,8 @@
|
|||||||
#include "Chat.h"
|
#include "mod_weekendbonus.h"
|
||||||
#include "Config.h"
|
|
||||||
#include "Player.h"
|
|
||||||
#include "ScriptMgr.h"
|
|
||||||
|
|
||||||
enum Day
|
WeekendBonus::WeekendBonus() : PlayerScript("WeekendBonusPlayerScript"), WorldScript("WeekendBonusWorldScript") {}
|
||||||
|
|
||||||
|
void Addmod_weekendbonusScripts()
|
||||||
{
|
{
|
||||||
SUNDAY = 0,
|
new WeekendBonus();
|
||||||
MONDAY,
|
|
||||||
TUESDAY,
|
|
||||||
WEDNESDAY,
|
|
||||||
THURSDAY,
|
|
||||||
FRIDAY,
|
|
||||||
SATURDAY
|
|
||||||
};
|
|
||||||
|
|
||||||
class WeekendBonusPlayer : public PlayerScript
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
WeekendBonusPlayer() : PlayerScript("WeekendBonusPlayer") {}
|
|
||||||
|
|
||||||
void OnLogin(Player* player) override
|
|
||||||
{
|
|
||||||
time_t localTime = time(NULL);
|
|
||||||
|
|
||||||
if ((localtime(&localTime)->tm_wday == Day::FRIDAY && localtime(&localTime)->tm_hour >= 18) || localtime(&localTime)->tm_wday == Day::SATURDAY || localtime(&localTime)->tm_wday == Day::SUNDAY)
|
|
||||||
ChatHandler(player->GetSession()).SendSysMessage("The weekend bonus is active, granting you bonuses!");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class WeekendBonusWorld : WorldScript
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
WeekendBonusWorld() : WorldScript("WeekendBonusWorld") {}
|
|
||||||
|
|
||||||
void OnAfterConfigLoad(bool reload) override
|
|
||||||
{
|
|
||||||
if (!reload)
|
|
||||||
{
|
|
||||||
rateExperienceKill = sWorld->getRate(RATE_XP_KILL);
|
|
||||||
rateExperienceBgKill[0] = sWorld->getRate(RATE_XP_BG_KILL_AV);
|
|
||||||
rateExperienceBgKill[1] = sWorld->getRate(RATE_XP_BG_KILL_WSG);
|
|
||||||
rateExperienceBgKill[2] = sWorld->getRate(RATE_XP_BG_KILL_AB);
|
|
||||||
rateExperienceBgKill[3] = sWorld->getRate(RATE_XP_BG_KILL_EOTS);
|
|
||||||
rateExperienceBgKill[4] = sWorld->getRate(RATE_XP_BG_KILL_SOTA);
|
|
||||||
rateExperienceBgKill[5] = sWorld->getRate(RATE_XP_BG_KILL_IC);
|
|
||||||
rateExperienceQuest = sWorld->getRate(RATE_XP_QUEST);
|
|
||||||
rateExperienceQuestDf = sWorld->getRate(RATE_XP_QUEST_DF);
|
|
||||||
rateExperienceExplore = sWorld->getRate(RATE_XP_EXPLORE);
|
|
||||||
rateExperiencePet = sWorld->getRate(RATE_XP_PET);
|
|
||||||
rateMoney = sWorld->getRate(RATE_DROP_MONEY);
|
|
||||||
rateProfessionsCrafting = sWorld->getIntConfig(CONFIG_SKILL_GAIN_CRAFTING);
|
|
||||||
rateProfessionsGathering = sWorld->getIntConfig(CONFIG_SKILL_GAIN_GATHERING);
|
|
||||||
rateReputation = sWorld->getRate(RATE_REPUTATION_GAIN);
|
|
||||||
rateProficienciesDefense = sWorld->getIntConfig(CONFIG_SKILL_GAIN_DEFENSE);
|
|
||||||
rateProficienciesWeapons = sWorld->getIntConfig(CONFIG_SKILL_GAIN_WEAPON);
|
|
||||||
}
|
|
||||||
|
|
||||||
multiplierExperience = sConfigMgr->GetOption<float>("WeekendBonus.Multiplier.Experience", 2.0f);
|
|
||||||
multiplierMoney = sConfigMgr->GetOption<float>("WeekendBonus.Multiplier.Money", 2.0f);
|
|
||||||
multiplierProfessions = sConfigMgr->GetOption<uint32>("WeekendBonus.Multiplier.Professions", 2);
|
|
||||||
multiplierReputation = sConfigMgr->GetOption<float>("WeekendBonus.Multiplier.Reputation", 2.0f);
|
|
||||||
multiplierProficiencies = sConfigMgr->GetOption<uint32>("WeekendBonus.Multiplier.Proficiencies", 2);
|
|
||||||
|
|
||||||
if (reload)
|
|
||||||
{
|
|
||||||
if ((localtime(&localTime)->tm_wday == Day::FRIDAY && localtime(&localTime)->tm_hour >= 18) || localtime(&localTime)->tm_wday == Day::SATURDAY || localtime(&localTime)->tm_wday == Day::SUNDAY)
|
|
||||||
SetWorldRates(true);
|
|
||||||
else
|
|
||||||
SetWorldRates(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnStartup() override
|
|
||||||
{
|
|
||||||
triggered = false;
|
|
||||||
localTime = time(NULL);
|
|
||||||
|
|
||||||
if ((localtime(&localTime)->tm_wday == Day::FRIDAY && localtime(&localTime)->tm_hour >= 18) || localtime(&localTime)->tm_wday == Day::SATURDAY || localtime(&localTime)->tm_wday == Day::SUNDAY)
|
|
||||||
SetWorldRates(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnUpdate(uint32 /*diff*/) override
|
|
||||||
{
|
|
||||||
localTime = time(NULL);
|
|
||||||
|
|
||||||
if ((localtime(&localTime)->tm_wday == Day::FRIDAY && localtime(&localTime)->tm_hour >= 18) && !triggered)
|
|
||||||
{
|
|
||||||
sWorld->SendServerMessage(SERVER_MSG_STRING, "The weekend bonus is now active, granting you bonuses!");
|
|
||||||
SetWorldRates(true);
|
|
||||||
triggered = true;
|
|
||||||
}
|
|
||||||
else if (localtime(&localTime)->tm_wday == Day::MONDAY && triggered)
|
|
||||||
{
|
|
||||||
sWorld->SendServerMessage(SERVER_MSG_STRING, "The weekend bonus is no longer active.");
|
|
||||||
SetWorldRates(false);
|
|
||||||
triggered = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
float rateExperienceKill;
|
|
||||||
float rateExperienceBgKill[6];
|
|
||||||
float rateExperienceQuest;
|
|
||||||
float rateExperienceQuestDf;
|
|
||||||
float rateExperienceExplore;
|
|
||||||
float rateExperiencePet;
|
|
||||||
float rateMoney;
|
|
||||||
uint32 rateProfessionsCrafting;
|
|
||||||
uint32 rateProfessionsGathering;
|
|
||||||
float rateReputation;
|
|
||||||
uint32 rateProficienciesDefense;
|
|
||||||
uint32 rateProficienciesWeapons;
|
|
||||||
|
|
||||||
float multiplierExperience;
|
|
||||||
float multiplierMoney;
|
|
||||||
uint32 multiplierProfessions;
|
|
||||||
float multiplierReputation;
|
|
||||||
uint32 multiplierProficiencies;
|
|
||||||
|
|
||||||
bool triggered;
|
|
||||||
time_t localTime;
|
|
||||||
|
|
||||||
void SetWorldRates(bool weekend)
|
|
||||||
{
|
|
||||||
if (weekend)
|
|
||||||
{
|
|
||||||
sWorld->setRate(RATE_XP_KILL, rateExperienceKill * multiplierExperience);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_AV, rateExperienceBgKill[0] * multiplierExperience);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_WSG, rateExperienceBgKill[1] * multiplierExperience);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_AB, rateExperienceBgKill[2] * multiplierExperience);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_EOTS, rateExperienceBgKill[3] * multiplierExperience);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_SOTA, rateExperienceBgKill[4] * multiplierExperience);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_IC, rateExperienceBgKill[5] * multiplierExperience);
|
|
||||||
sWorld->setRate(RATE_XP_QUEST, rateExperienceQuest * multiplierExperience);
|
|
||||||
sWorld->setRate(RATE_XP_QUEST_DF, rateExperienceQuestDf * multiplierExperience);
|
|
||||||
sWorld->setRate(RATE_XP_EXPLORE, rateExperienceExplore * multiplierExperience);
|
|
||||||
sWorld->setRate(RATE_XP_PET, rateExperiencePet * multiplierExperience);
|
|
||||||
|
|
||||||
sWorld->setRate(RATE_DROP_MONEY, rateMoney * multiplierMoney);
|
|
||||||
|
|
||||||
sWorld->setIntConfig(CONFIG_SKILL_GAIN_CRAFTING, rateProfessionsCrafting * multiplierProfessions);
|
|
||||||
sWorld->setIntConfig(CONFIG_SKILL_GAIN_GATHERING, rateProfessionsGathering * multiplierProfessions);
|
|
||||||
|
|
||||||
sWorld->setRate(RATE_REPUTATION_GAIN, rateReputation * multiplierReputation);
|
|
||||||
|
|
||||||
sWorld->setIntConfig(CONFIG_SKILL_GAIN_DEFENSE, rateProficienciesDefense * multiplierProficiencies);
|
|
||||||
sWorld->setIntConfig(CONFIG_SKILL_GAIN_WEAPON, rateProficienciesWeapons * multiplierProficiencies);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sWorld->setRate(RATE_XP_KILL, rateExperienceKill);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_AV, rateExperienceBgKill[0]);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_WSG, rateExperienceBgKill[1]);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_AB, rateExperienceBgKill[2]);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_EOTS, rateExperienceBgKill[3]);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_SOTA, rateExperienceBgKill[4]);
|
|
||||||
sWorld->setRate(RATE_XP_BG_KILL_IC, rateExperienceBgKill[5]);
|
|
||||||
sWorld->setRate(RATE_XP_QUEST, rateExperienceQuest);
|
|
||||||
sWorld->setRate(RATE_XP_QUEST_DF, rateExperienceQuestDf);
|
|
||||||
sWorld->setRate(RATE_XP_EXPLORE, rateExperienceExplore);
|
|
||||||
sWorld->setRate(RATE_XP_PET, rateExperiencePet);
|
|
||||||
|
|
||||||
sWorld->setRate(RATE_DROP_MONEY, rateMoney);
|
|
||||||
|
|
||||||
sWorld->setIntConfig(CONFIG_SKILL_GAIN_CRAFTING, rateProfessionsCrafting);
|
|
||||||
sWorld->setIntConfig(CONFIG_SKILL_GAIN_GATHERING, rateProfessionsGathering);
|
|
||||||
|
|
||||||
sWorld->setRate(RATE_REPUTATION_GAIN, rateReputation);
|
|
||||||
|
|
||||||
sWorld->setIntConfig(CONFIG_SKILL_GAIN_DEFENSE, rateProficienciesDefense);
|
|
||||||
sWorld->setIntConfig(CONFIG_SKILL_GAIN_WEAPON, rateProficienciesWeapons);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
void AddWeekendBonusScripts()
|
|
||||||
{
|
|
||||||
new WeekendBonusPlayer();
|
|
||||||
new WeekendBonusWorld();
|
|
||||||
}
|
}
|
||||||
|
|||||||
54
src/mod_weekendbonus.h
Normal file
54
src/mod_weekendbonus.h
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
#ifndef MOD_WEEKENDBONUS_H
|
||||||
|
#define MOD_WEEKENDBONUS_H
|
||||||
|
|
||||||
|
#include "Chat.h"
|
||||||
|
#include "Config.h"
|
||||||
|
#include "Player.h"
|
||||||
|
#include "ScriptMgr.h"
|
||||||
|
|
||||||
|
enum Day
|
||||||
|
{
|
||||||
|
SUNDAY = 0,
|
||||||
|
MONDAY,
|
||||||
|
TUESDAY,
|
||||||
|
WEDNESDAY,
|
||||||
|
THURSDAY,
|
||||||
|
FRIDAY,
|
||||||
|
SATURDAY
|
||||||
|
};
|
||||||
|
|
||||||
|
class WeekendBonus : public PlayerScript, WorldScript
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
WeekendBonus();
|
||||||
|
|
||||||
|
// PlayerScript
|
||||||
|
void OnLogin(Player* /*player*/) override;
|
||||||
|
|
||||||
|
// WorldScript
|
||||||
|
void OnAfterConfigLoad(bool /*reload*/) override;
|
||||||
|
void OnStartup() override;
|
||||||
|
void OnUpdate(uint32 /*diff*/) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void LoadDefaultValues();
|
||||||
|
void SetRates(bool /*active*/);
|
||||||
|
|
||||||
|
bool Triggered;
|
||||||
|
time_t LocalTime;
|
||||||
|
|
||||||
|
float ExperienceMultiplier;
|
||||||
|
float MoneyMultiplier;
|
||||||
|
uint32 ProfessionsMultiplier;
|
||||||
|
float ReputationMultiplier;
|
||||||
|
uint32 ProficienciesMultiplier;
|
||||||
|
|
||||||
|
float DefaultExperienceMultiplier[6];
|
||||||
|
float DefaultBattlegroundExperienceMultiplier[6];
|
||||||
|
uint32 DefaultProfessionsMultiplier[2];
|
||||||
|
uint32 DefaultProficienciesMultiplier[2];
|
||||||
|
float DefaultMoneyMultiplier;
|
||||||
|
float DefaultReputationMultiplier;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
113
src/mod_weekendbonus_config.cpp
Normal file
113
src/mod_weekendbonus_config.cpp
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
#include "mod_weekendbonus.h"
|
||||||
|
|
||||||
|
void WeekendBonus::OnAfterConfigLoad(bool reload)
|
||||||
|
{
|
||||||
|
if (!reload)
|
||||||
|
LoadDefaultValues();
|
||||||
|
|
||||||
|
float ExperienceMultiplier = sConfigMgr->GetOption<float>("WeekendBonus.Multiplier.Experience", 2.0f);
|
||||||
|
float MoneyMultiplier = sConfigMgr->GetOption<float>("WeekendBonus.Multiplier.Money", 2.0f);
|
||||||
|
uint32 ProfessionsMultiplier = sConfigMgr->GetOption<uint32>("WeekendBonus.Multiplier.Professions", 2);
|
||||||
|
float ReputationMultiplier = sConfigMgr->GetOption<float>("WeekendBonus.Multiplier.Reputation", 2.0f);
|
||||||
|
uint32 ProficienciesMultiplier = sConfigMgr->GetOption<uint32>("WeekendBonus.Multiplier.Proficiencies", 2);
|
||||||
|
|
||||||
|
if (reload)
|
||||||
|
{
|
||||||
|
if ((localtime(&LocalTime)->tm_wday == Day::FRIDAY && localtime(&LocalTime)->tm_hour >= 18) || localtime(&LocalTime)->tm_wday == Day::SATURDAY || localtime(&LocalTime)->tm_wday == Day::SUNDAY)
|
||||||
|
SetRates(true);
|
||||||
|
else
|
||||||
|
SetRates(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeekendBonus::OnStartup()
|
||||||
|
{
|
||||||
|
Triggered = false;
|
||||||
|
LocalTime = time(NULL);
|
||||||
|
|
||||||
|
if ((localtime(&LocalTime)->tm_wday == Day::FRIDAY && localtime(&LocalTime)->tm_hour >= 18) || localtime(&LocalTime)->tm_wday == Day::SATURDAY || localtime(&LocalTime)->tm_wday == Day::SUNDAY)
|
||||||
|
SetRates(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeekendBonus::OnUpdate(uint32 /*diff*/)
|
||||||
|
{
|
||||||
|
LocalTime = time(NULL);
|
||||||
|
|
||||||
|
if ((localtime(&LocalTime)->tm_wday == Day::FRIDAY && localtime(&LocalTime)->tm_hour >= 18) && !Triggered)
|
||||||
|
{
|
||||||
|
sWorld->SendServerMessage(SERVER_MSG_STRING, "The weekend bonus is now active, granting you bonuses!");
|
||||||
|
SetRates(true);
|
||||||
|
Triggered = true;
|
||||||
|
}
|
||||||
|
else if (localtime(&LocalTime)->tm_wday == Day::MONDAY && Triggered)
|
||||||
|
{
|
||||||
|
sWorld->SendServerMessage(SERVER_MSG_STRING, "The weekend bonus is no longer active.");
|
||||||
|
SetRates(false);
|
||||||
|
Triggered = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeekendBonus::LoadDefaultValues()
|
||||||
|
{
|
||||||
|
DefaultExperienceMultiplier[0] = sWorld->getRate(RATE_XP_KILL);
|
||||||
|
DefaultExperienceMultiplier[1] = sWorld->getRate(RATE_XP_QUEST);
|
||||||
|
DefaultExperienceMultiplier[2] = sWorld->getRate(RATE_XP_QUEST_DF);
|
||||||
|
DefaultExperienceMultiplier[3] = sWorld->getRate(RATE_XP_EXPLORE);
|
||||||
|
DefaultExperienceMultiplier[4] = sWorld->getRate(RATE_XP_PET);
|
||||||
|
DefaultBattlegroundExperienceMultiplier[0] = sWorld->getRate(RATE_XP_BG_KILL_AV);
|
||||||
|
DefaultBattlegroundExperienceMultiplier[1] = sWorld->getRate(RATE_XP_BG_KILL_WSG);
|
||||||
|
DefaultBattlegroundExperienceMultiplier[2] = sWorld->getRate(RATE_XP_BG_KILL_AB);
|
||||||
|
DefaultBattlegroundExperienceMultiplier[3] = sWorld->getRate(RATE_XP_BG_KILL_EOTS);
|
||||||
|
DefaultBattlegroundExperienceMultiplier[4] = sWorld->getRate(RATE_XP_BG_KILL_SOTA);
|
||||||
|
DefaultBattlegroundExperienceMultiplier[5] = sWorld->getRate(RATE_XP_BG_KILL_IC);
|
||||||
|
DefaultMoneyMultiplier = sWorld->getRate(RATE_DROP_MONEY);
|
||||||
|
DefaultProfessionsMultiplier[0] = sWorld->getIntConfig(CONFIG_SKILL_GAIN_CRAFTING);
|
||||||
|
DefaultProfessionsMultiplier[1] = sWorld->getIntConfig(CONFIG_SKILL_GAIN_GATHERING);
|
||||||
|
DefaultReputationMultiplier = sWorld->getRate(RATE_REPUTATION_GAIN);
|
||||||
|
DefaultProficienciesMultiplier[0] = sWorld->getIntConfig(CONFIG_SKILL_GAIN_DEFENSE);
|
||||||
|
DefaultProficienciesMultiplier[1] = sWorld->getIntConfig(CONFIG_SKILL_GAIN_WEAPON);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WeekendBonus::SetRates(bool active)
|
||||||
|
{
|
||||||
|
if (active)
|
||||||
|
{
|
||||||
|
sWorld->setRate(RATE_XP_KILL, DefaultExperienceMultiplier[0] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_XP_QUEST, DefaultExperienceMultiplier[1] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_XP_QUEST_DF, DefaultExperienceMultiplier[2] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_XP_EXPLORE, DefaultExperienceMultiplier[3] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_XP_PET, DefaultExperienceMultiplier[4] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_AV, DefaultBattlegroundExperienceMultiplier[0] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_WSG, DefaultBattlegroundExperienceMultiplier[1] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_AB, DefaultBattlegroundExperienceMultiplier[2] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_EOTS, DefaultBattlegroundExperienceMultiplier[3] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_SOTA, DefaultBattlegroundExperienceMultiplier[4] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_IC, DefaultBattlegroundExperienceMultiplier[5] * ExperienceMultiplier);
|
||||||
|
sWorld->setRate(RATE_DROP_MONEY, DefaultMoneyMultiplier * MoneyMultiplier);
|
||||||
|
sWorld->setIntConfig(CONFIG_SKILL_GAIN_CRAFTING, DefaultProfessionsMultiplier[0] * ProfessionsMultiplier);
|
||||||
|
sWorld->setIntConfig(CONFIG_SKILL_GAIN_GATHERING, DefaultProfessionsMultiplier[1] * ProfessionsMultiplier);
|
||||||
|
sWorld->setRate(RATE_REPUTATION_GAIN, DefaultReputationMultiplier * ReputationMultiplier);
|
||||||
|
sWorld->setIntConfig(CONFIG_SKILL_GAIN_DEFENSE, DefaultProficienciesMultiplier[0] * ProficienciesMultiplier);
|
||||||
|
sWorld->setIntConfig(CONFIG_SKILL_GAIN_WEAPON, DefaultProficienciesMultiplier[1] * ProficienciesMultiplier);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sWorld->setRate(RATE_XP_KILL, DefaultExperienceMultiplier[0]);
|
||||||
|
sWorld->setRate(RATE_XP_QUEST, DefaultExperienceMultiplier[1]);
|
||||||
|
sWorld->setRate(RATE_XP_QUEST_DF, DefaultExperienceMultiplier[2]);
|
||||||
|
sWorld->setRate(RATE_XP_EXPLORE, DefaultExperienceMultiplier[3]);
|
||||||
|
sWorld->setRate(RATE_XP_PET, DefaultExperienceMultiplier[4]);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_AV, DefaultBattlegroundExperienceMultiplier[0]);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_WSG, DefaultBattlegroundExperienceMultiplier[1]);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_AB, DefaultBattlegroundExperienceMultiplier[2]);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_EOTS, DefaultBattlegroundExperienceMultiplier[3]);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_SOTA, DefaultBattlegroundExperienceMultiplier[4]);
|
||||||
|
sWorld->setRate(RATE_XP_BG_KILL_IC, DefaultBattlegroundExperienceMultiplier[5]);
|
||||||
|
sWorld->setRate(RATE_DROP_MONEY, DefaultMoneyMultiplier);
|
||||||
|
sWorld->setIntConfig(CONFIG_SKILL_GAIN_CRAFTING, DefaultProfessionsMultiplier[0]);
|
||||||
|
sWorld->setIntConfig(CONFIG_SKILL_GAIN_GATHERING, DefaultProfessionsMultiplier[1]);
|
||||||
|
sWorld->setRate(RATE_REPUTATION_GAIN, DefaultReputationMultiplier);
|
||||||
|
sWorld->setIntConfig(CONFIG_SKILL_GAIN_DEFENSE, DefaultProficienciesMultiplier[0]);
|
||||||
|
sWorld->setIntConfig(CONFIG_SKILL_GAIN_WEAPON, DefaultProficienciesMultiplier[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
9
src/mod_weekendbonus_player.cpp
Normal file
9
src/mod_weekendbonus_player.cpp
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#include "mod_weekendbonus.h"
|
||||||
|
|
||||||
|
void WeekendBonus::OnLogin(Player* player)
|
||||||
|
{
|
||||||
|
LocalTime = time(NULL);
|
||||||
|
|
||||||
|
if ((localtime(&LocalTime)->tm_wday == Day::FRIDAY && localtime(&LocalTime)->tm_hour >= 18) || localtime(&LocalTime)->tm_wday == Day::SATURDAY || localtime(&LocalTime)->tm_wday == Day::SUNDAY)
|
||||||
|
ChatHandler(player->GetSession()).SendSysMessage("The weekend bonus is active, granting you bonuses!");
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user