From 78921ed54b7ce57335b5ffb9094cd47763d2284b Mon Sep 17 00:00:00 2001 From: talamortis Date: Thu, 25 Jan 2018 17:36:49 +0000 Subject: [PATCH] Update of the reward_system script --- conf/reward_system.conf.dist | 9 ++++++++- src/reward_system.cpp | 32 ++++++++++++++++++++++---------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/conf/reward_system.conf.dist b/conf/reward_system.conf.dist index 33ef70e..2672644 100644 --- a/conf/reward_system.conf.dist +++ b/conf/reward_system.conf.dist @@ -5,4 +5,11 @@ # Description: Enable the reward system # Default: 1 - (Enabled) # 0 - (Disabled) -RewardSystemEnable = 1 \ No newline at end of file +RewardSystemEnable = 1 + +# +# MaxRoll +# Description: Can alter the max roll for players +# Default: 1000 - (Enabled) +# +MaxRoll = 1000 \ No newline at end of file diff --git a/src/reward_system.cpp b/src/reward_system.cpp index f45d6be..a053976 100644 --- a/src/reward_system.cpp +++ b/src/reward_system.cpp @@ -7,39 +7,48 @@ #include "Define.h" #include "GossipDef.h" +int32 roll; +bool RewardSystem_Enable; +uint32 Max_roll; + class reward_system : public PlayerScript { public: reward_system() : PlayerScript("rewardsystem") {} uint32 rewardtimer = urand(2 * HOUR*IN_MILLISECONDS, 4 * HOUR*IN_MILLISECONDS); - int32 roll = urand(1, 1000); void OnBeforePlayerUpdate(Player* player, uint32 p_time) { - if (!sConfigMgr->GetBoolDefault("RewardSystemEnable", true)) + if (!RewardSystem_Enable) return; { if (rewardtimer <= p_time) { - roll = urand(1, 1000); //Lets make a random number from 1 - 1000 + roll = urand(1, Max_roll); //Lets make a random number from 1 - QueryResult result = CharacterDatabase.PQuery("SELECT item, quantity FROM reward_system WHERE roll = '%u'", roll); rewardtimer = urand(2 * HOUR*IN_MILLISECONDS, 4 * HOUR*IN_MILLISECONDS); if (!result || player->isAFK()) + { return; + } else { - //Lets now get the item - Field* fields = result->Fetch(); - uint32 pItem = fields[0].GetInt32(); - uint32 quantity = fields[1].GetInt32(); + do + { + //Lets now get the item + Field* fields = result->Fetch(); + uint32 pItem = fields[0].GetInt32(); + uint32 quantity = fields[1].GetInt32(); - // now lets add the item - player->AddItem(pItem, quantity); + // now lets add the item + player->AddItem(pItem, quantity); - ChatHandler(player->GetSession()).PSendSysMessage("You have rolled %u which gave you item %u", roll, pItem); + ChatHandler(player->GetSession()).PSendSysMessage("You have rolled %u which gave you item %u", roll, pItem); + + } while (result->NextRow()); } } else @@ -62,6 +71,9 @@ public: sConfigMgr->LoadMore(cfg_def_file.c_str()); sConfigMgr->LoadMore(cfg_file.c_str()); + + RewardSystem_Enable = sConfigMgr->GetBoolDefault("RewardSystemEnable", true); + Max_roll = sConfigMgr->GetIntDefault("MaxRoll", 1000); } } };