正在加载此比较的其余部分。

Untitled diff

创建于 差异永不过期
777 删除
864 行
648 添加
741 行
/*
/*
© EmuDev's Premium System ©
© EmuDev's Premium System ©


By slp13at420 `The Mad Scientist` of EmuDevs.com ©
By slp13at420 `The Mad Scientist` of EmuDevs.com ©
with the community of EmuDevs.com,
with the community of EmuDevs.com,
for the community of EmuDevs.com.
for the community of EmuDevs.com.


project info:
project info:
Type : CPP
Type : CPP
started : 04/20/2016
started : 04/20/2016
finished : unfinished Public Release
finished : unfinished Public Release
public released : 04/20/2016
public released : 04/20/2016
lead programmer : slp13at420
lead programmer : slp13at420
ideas provided by : Portals, Kaev, Vitrex, jonmii, slp13at420.
ideas provided by : Portals, Kaev, Vitrex, jonmii, slp13at420.
scripting provided by : slp13at420.
scripting provided by : slp13at420.
scripting guideance provided by : GrandElf, Rochet2.
scripting guideance provided by : GrandElf, Rochet2.


This is a CPP Premium System.
This is a CPP Premium System.
This allows for either account Premium
This allows for either account Premium
rank or character Premium rank.
rank or character Premium rank.
allows for permenant Premium rank
allows for permenant Premium rank
or timed based duration Premium rank.
or timed based duration Premium rank.


© This is an EmuDevs.com only release. ©
© This is an EmuDevs.com only release. ©
© do not remove or change credits above ©
© do not remove or change credits above ©
© dont share this System without prior approval ©
© dont share this System without prior approval ©
© Dont re-release as yours or anothers work ©
© Dont re-release as yours or anothers work ©
*/
*/


#include "chat.h"
#include "Config.h"
#include "Guild.h"
#include "player.h"
#include "RBAC.h"
#include "Premium_System.h"
#include "Premium_System.h"
#include "ScriptMgr.h"
#include "ScriptMgr.h"
#include "Player.h"
#include "Chat.h"
#include "Config.h"
#include "Guild.h"
#include "Unit.h"
#include "Unit.h"
#include "World.h"
#include "World.h"


//#include "AccountMgr.h"
int Buffs[24] = { 24752, 48074, 43223, 36880, 467, 48469, 48162, 48170, 16877, 10220, 13033, 11735, 10952, 23948, 26662, 47440, 53307, 132, 23737, 48470, 43002, 26393, 24705, 69994 };
//#include <cstring>
int Debuffs[4] = { 57724, 57723, 80354, 95809 };
//#include "Group.h"
//#include "Language.h"
//#include "math.h"
//#include "ObjectMgr.h"
//#include "ScriptedGossip.h"
//#include <sstream>
//#include <string>
//#include <unordered_map>

uint8 PREMIUM_TYPE;
uint8 PREMIUM_TIMER_ENABLE;
uint64 PREMIUM_TIMER_DURATION = (((1 * 60) * 60) * 24); // Defining day in ms. 1000 = 1 second. 1 second * 60 = 1 minute. 1 min * 60 = 1 hour. 1 hour * 24 = 1 day. we then will call from the conf and get x for days.
uint8 PREMIUM_GM_MINIMUM_RANK;
uint32 PREMIUM_UPGRADE_ITEM;
uint8 PREMIUM_ITEMS_ENABLE;
float PREMIUM_MODIFIER;
uint32 PREMIUM_CHAT_DELAY;
uint8 PREMIUM_CHAT_TEAM;
uint8 PREMIUM_TP_ENABLE;
uint32 PREMIUM_TP_BONUS;
uint8 PREMIUM_HP_ENABLE;
uint8 PREMIUM_MANA_ENABLE;
uint8 PREMIUM_RAGE_ENABLE;
uint32 PREMIUM_TITLE_ID;
uint32 PREMIUM_TITLE_MASK_ID;
uint8 PREMIUM_WATER_BREATHE;
uint8 PREMIUM_SPELL_COST_DECREASE;

std::unordered_map<uint32, PremiumElements>Premium;
std::unordered_map<uint32, PremiumItemElements>PremiumItem;
std::unordered_map<uint32, PremiumLocationElements>PremiumLocations;
std::unordered_map<uint32, PremiumLocationElements>PremiumMallLocations;
std::unordered_map<uint32, PremiumLocationElements>PremiumPublicMallLocations;
std::unordered_map<uint32, PremiumPlayerLocationElements>PremiumPlayerLocations;
std::unordered_map<uint32, PremiumTeamLocationElements>PremiumTeamLocations;


PremiumSystemMgr::PremiumSystemMgr()
{
premiumTimerDuration = (((1 * 60) * 60) * 24); // Defining day in ms.
}


int BUFFS[24] = { 24752, 48074, 43223, 36880, 467, 48469, 48162, 48170, 16877, 10220, 13033, 11735, 10952, 23948, 26662, 47440, 53307, 132, 23737, 48470, 43002, 26393, 24705, 69994 };
PremiumSystemMgr::~PremiumSystemMgr()
int DEBUFFS[4] = { 57724, 57723, 80354, 95809 };
{
for (std::unordered_map<uint32, PremiumElements>::iterator itr = Premium.begin(); itr != Premium.end(); ++itr)
delete &itr->second;
for (std::unordered_map<uint32, PremiumItemElements>::iterator itr = PremiumItem.begin(); itr != PremiumItem.end(); ++itr)
delete &itr->second;
for (std::unordered_map<uint32, PremiumLocationElements>::iterator itr = PremiumLocations.begin(); itr != PremiumLocations.end(); ++itr)
delete &itr->second;
for (std::unordered_map<uint32, PremiumLocationElements>::iterator itr = PremiumMallLocations.begin(); itr != PremiumMallLocations.end(); ++itr)
delete &itr->second;
for (std::unordered_map<uint32, PremiumLocationElements>::iterator itr = PremiumPublicMallLocations.begin(); itr != PremiumPublicMallLocations.end(); ++itr)
delete &itr->second;
for (std::unordered_map<uint32, PremiumPlayerLocationElements>::iterator itr = PremiumPlayerLocations.begin(); itr != PremiumPlayerLocations.end(); ++itr)
delete &itr->second;
for (std::unordered_map<uint32, PremiumTeamLocationElements>::iterator itr = PremiumTeamLocations.begin(); itr != PremiumTeamLocations.end(); ++itr)
delete &itr->second;


PREM::PREM() { }
Premium.clear();
PremiumItem.clear();
PremiumLocations.clear();
PremiumMallLocations.clear();
PremiumPublicMallLocations.clear();
PremiumPlayerLocations.clear();
PremiumTeamLocations.clear();
}


PREM::~PREM()
PremiumSystemMgr* PremiumSystemMgr::instance()
{
{
static PremiumSystemMgr instance;
return &instance;
}
}


// Global Functions
void SendPremiumMessage(std::string msg, uint8 team_id)
{
SessionMap sessions = sWorld->GetAllSessions();
Text moved with changes from lines 684-687 (63.5% similarity)
for (SessionMap::iterator itr = sessions.begin(); itr != sessions.end(); ++itr)
{
if (!itr->second)
continue;


uint64 PREM::ConvertStringToNumber(std::string arg)
Player* player = itr->second->GetPlayer();
if (!player)
continue;

if (player->IsGameMaster() || (sPremiumSystemMgr->IsPlayerPremium(player) && ((player->GetTeamId() == team_id) || ((player->GetTeamId() != team_id) && ((sPremiumSystemMgr->GetChatTeam()) || team_id == 2)))))
ChatHandler(player->GetSession()).SendSysMessage(msg.c_str());
}
}

uint64 PremiumSystemMgr::ConvertStringToNumber(std::string arg)
{
{
uint64 Value64;
uint64 Value64;


std::istringstream(arg) >> Value64;
std::istringstream(arg) >> Value64;


return Value64;
return Value64;
}
}


std::string PREM::ConvertNumberToString(uint64 numberX)
std::string PremiumSystemMgr::ConvertNumberToString(uint64 numberX)
{
{
auto number = numberX;
auto number = numberX;
std::stringstream convert;
std::stringstream convert;
std::string number32_to_string;
std::string number32_to_string;
convert << number;
convert << number;
number32_to_string = convert.str();
number32_to_string = convert.str();


return number32_to_string;
return number32_to_string;
};
}


std::string PREM::GetAmountInString(uint32 amount)
std::string PremiumSystemMgr::GetAmountInString(uint32 amount)
{
{
uint64 tmp;
uint64 tmp;
std::string output = "";
std::string output = "";

if (amount > 9999)
if (amount > 9999)
{
{
tmp = floor(amount / 10000);
tmp = floor(amount / 10000);
amount = amount - (tmp * 10000);
amount = amount - (tmp * 10000);
output = output + PREM::ConvertNumberToString(tmp) + " Gold, ";
output = output + ConvertNumberToString(tmp) + " Gold, ";
}
}


if (amount > 99)
if (amount > 99)
{
{
tmp = floor(amount / 100);
tmp = floor(amount / 100);
amount = amount - (tmp * 100);
amount = amount - (tmp * 100);
output = output + PREM::ConvertNumberToString(tmp) + " Silver, ";
output = output + ConvertNumberToString(tmp) + " Silver, ";
}
}


if (amount <= 99)
if (amount <= 99)
{
{
tmp = (amount);
tmp = (amount);
amount = amount - (tmp);
amount = amount - (tmp);
output = output + PREM::ConvertNumberToString(tmp) + " Copper";
output = output + ConvertNumberToString(tmp) + " Copper";
}
}


return output;
return output;
}
}