trading post
This commit is contained in:
@@ -1,167 +1,167 @@
|
|||||||
///*
|
/*
|
||||||
// * Copyright (C) WowCommunity Project
|
* Copyright (C) WowCommunity Project
|
||||||
// *
|
*
|
||||||
// * This SourceCode is NOT free a software. Please hold everything Private
|
* This SourceCode is NOT free a software. Please hold everything Private
|
||||||
// * and read our Terms
|
* and read our Terms
|
||||||
// */
|
*/
|
||||||
//
|
|
||||||
//#include "PerkProgramData.h"
|
#include "PerkProgramData.h"
|
||||||
//#include "PerkProgramMgr.h"
|
#include "PerkProgramMgr.h"
|
||||||
//#include "Containers.h"
|
#include "Containers.h"
|
||||||
//#include "DatabaseEnv.h"
|
#include "DatabaseEnv.h"
|
||||||
//#include "ObjectMgr.h"
|
#include "ObjectMgr.h"
|
||||||
//#include "DB2Stores.h"
|
#include "DB2Stores.h"
|
||||||
//#include <sstream>
|
#include <sstream>
|
||||||
//#include "GameTime.h"
|
#include "GameTime.h"
|
||||||
//
|
|
||||||
//PerkProgramDataStoreMgr::PerkProgramDataStoreMgr() {};
|
PerkProgramDataStoreMgr::PerkProgramDataStoreMgr() {};
|
||||||
//
|
|
||||||
//PerkProgramDataStoreMgr::~PerkProgramDataStoreMgr() {};
|
PerkProgramDataStoreMgr::~PerkProgramDataStoreMgr() {};
|
||||||
//
|
|
||||||
//PerkProgramDataStoreMgr* PerkProgramDataStoreMgr::instance()
|
PerkProgramDataStoreMgr* PerkProgramDataStoreMgr::instance()
|
||||||
//{
|
{
|
||||||
// static PerkProgramDataStoreMgr instance;
|
static PerkProgramDataStoreMgr instance;
|
||||||
// return &instance;
|
return &instance;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//namespace
|
namespace
|
||||||
//{
|
{
|
||||||
// std::unordered_map<uint32, PerkProgramData::PerkVendorItem> _vendorTemplates;
|
std::unordered_map<uint32, PerkProgramData::PerkVendorItem> _vendorTemplates;
|
||||||
// std::vector<PerkProgramData::ActivityTemplate> m_activeActivity;
|
std::vector<PerkProgramData::ActivityTemplate> m_activeActivity;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramDataStoreMgr::Initialize()
|
void PerkProgramDataStoreMgr::Initialize()
|
||||||
//{
|
{
|
||||||
// LoadPerkVendorItem();
|
LoadPerkVendorItem();
|
||||||
// LoadActivities();
|
LoadActivities();
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramDataStoreMgr::LoadPerkVendorItem()
|
void PerkProgramDataStoreMgr::LoadPerkVendorItem()
|
||||||
//{
|
{
|
||||||
// TC_LOG_INFO("server.loading", "Loading PerkPrograms Vendor Items Templates ...");
|
TC_LOG_INFO("server.loading", "Loading PerkPrograms Vendor Items Templates ...");
|
||||||
// _vendorTemplates.clear();
|
_vendorTemplates.clear();
|
||||||
//
|
|
||||||
// if (!sPerksVendorItemStore.GetNumRows())
|
if (!sPerksVendorItemStore.GetNumRows())
|
||||||
// {
|
{
|
||||||
// TC_LOG_WARN("server.loading", ">> PerksVendorItem store is empty, skipping vendor items");
|
TC_LOG_WARN("server.loading", ">> PerksVendorItem store is empty, skipping vendor items");
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// for (PerksVendorItemEntry const* itemVendor : sPerksVendorItemStore)
|
for (PerksVendorItemEntry const* itemVendor : sPerksVendorItemStore)
|
||||||
// {
|
{
|
||||||
// if (!itemVendor)
|
if (!itemVendor)
|
||||||
// continue;
|
continue;
|
||||||
//
|
|
||||||
// PerkProgramData::PerkVendorItem vendorItem;
|
PerkProgramData::PerkVendorItem vendorItem;
|
||||||
// vendorItem.Id = itemVendor->ID;
|
vendorItem.Id = itemVendor->ID;
|
||||||
// vendorItem.ItemID = itemVendor->ItemID;
|
vendorItem.ItemID = itemVendor->ItemID;
|
||||||
// vendorItem.MountSpellID = itemVendor->Unknown010001;
|
vendorItem.MountSpellID = itemVendor->Unknown010001;
|
||||||
// vendorItem.PetSpellID = itemVendor->Unknown020001;
|
vendorItem.PetSpellID = itemVendor->Unknown020001;
|
||||||
// vendorItem.TransmogSet = 0;
|
vendorItem.TransmogSet = 0;
|
||||||
// vendorItem.ItemModifiedAppearanceID = 0;
|
vendorItem.ItemModifiedAppearanceID = 0;
|
||||||
// vendorItem.ToyItem = 0;
|
vendorItem.ToyItem = 0;
|
||||||
// vendorItem.Cost = itemVendor->Cost;
|
vendorItem.Cost = itemVendor->Cost;
|
||||||
// vendorItem.CategoryId = itemVendor->PerksVendorCategoryID;
|
vendorItem.CategoryId = itemVendor->PerksVendorCategoryID;
|
||||||
//
|
|
||||||
// _vendorTemplates.insert(std::make_pair(itemVendor->ID, vendorItem));
|
_vendorTemplates.insert(std::make_pair(itemVendor->ID, vendorItem));
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// TC_LOG_INFO("server.loading", ">> Loaded {} PerkPrograms Vendor Items Templates", uint32(_vendorTemplates.size()));
|
TC_LOG_INFO("server.loading", ">> Loaded {} PerkPrograms Vendor Items Templates", uint32(_vendorTemplates.size()));
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//std::unordered_map<uint32, PerkProgramData::PerkVendorItem> PerkProgramDataStoreMgr::GetVendorItems()
|
std::unordered_map<uint32, PerkProgramData::PerkVendorItem> PerkProgramDataStoreMgr::GetVendorItems()
|
||||||
//{
|
{
|
||||||
// return _vendorTemplates;
|
return _vendorTemplates;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//PerkProgramData::PerkVendorItem const* PerkProgramDataStoreMgr::GetVendorItem(uint32 entry)
|
PerkProgramData::PerkVendorItem const* PerkProgramDataStoreMgr::GetVendorItem(uint32 entry)
|
||||||
//{
|
{
|
||||||
// auto itr = _vendorTemplates.find(entry);
|
auto itr = _vendorTemplates.find(entry);
|
||||||
// if (itr != _vendorTemplates.end())
|
if (itr != _vendorTemplates.end())
|
||||||
// return &itr->second;
|
return &itr->second;
|
||||||
//
|
|
||||||
// return nullptr;
|
return nullptr;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//PerkProgramData::PerkVendorItem const* PerkProgramDataStoreMgr::GetRandomVendorItem()
|
PerkProgramData::PerkVendorItem const* PerkProgramDataStoreMgr::GetRandomVendorItem()
|
||||||
//{
|
{
|
||||||
// if (_vendorTemplates.empty())
|
if (_vendorTemplates.empty())
|
||||||
// return nullptr;
|
return nullptr;
|
||||||
//
|
|
||||||
// auto it = _vendorTemplates.begin();
|
auto it = _vendorTemplates.begin();
|
||||||
// std::advance(it, rand() % _vendorTemplates.size());
|
std::advance(it, rand() % _vendorTemplates.size());
|
||||||
// return &it->second;
|
return &it->second;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//std::vector<PerkProgramData::ActivityTemplate> PerkProgramDataStoreMgr::GetActivities()
|
std::vector<PerkProgramData::ActivityTemplate> PerkProgramDataStoreMgr::GetActivities()
|
||||||
//{
|
{
|
||||||
// return m_activeActivity;
|
return m_activeActivity;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//uint32 PerkProgramDataStoreMgr::GetActivityCriteriatree(uint32 activityId)
|
uint32 PerkProgramDataStoreMgr::GetActivityCriteriatree(uint32 activityId)
|
||||||
//{
|
{
|
||||||
// for (auto const& ac : m_activeActivity)
|
for (auto const& ac : m_activeActivity)
|
||||||
// {
|
{
|
||||||
// if (ac.ActivityID == activityId)
|
if (ac.ActivityID == activityId)
|
||||||
// return ac.CriteriaTree;
|
return ac.CriteriaTree;
|
||||||
// }
|
}
|
||||||
// return 0;
|
return 0;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//uint32 PerkProgramDataStoreMgr::GetActivityCurrencyAmount(uint32 activityId)
|
uint32 PerkProgramDataStoreMgr::GetActivityCurrencyAmount(uint32 activityId)
|
||||||
//{
|
{
|
||||||
// for (auto const& ac : m_activeActivity)
|
for (auto const& ac : m_activeActivity)
|
||||||
// {
|
{
|
||||||
// if (ac.ActivityID == activityId)
|
if (ac.ActivityID == activityId)
|
||||||
// return ac.CurrencyAmount;
|
return ac.CurrencyAmount;
|
||||||
// }
|
}
|
||||||
// return 0;
|
return 0;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramDataStoreMgr::LoadActivities()
|
void PerkProgramDataStoreMgr::LoadActivities()
|
||||||
//{
|
{
|
||||||
// CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PERK_PROGRAM_ACTIVITY);
|
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PERK_PROGRAM_ACTIVITY);
|
||||||
// PreparedQueryResult result = CharacterDatabase.Query(stmt);
|
PreparedQueryResult result = CharacterDatabase.Query(stmt);
|
||||||
// m_activeActivity.clear();
|
m_activeActivity.clear();
|
||||||
// if (!result)
|
if (!result)
|
||||||
// {
|
{
|
||||||
// GenerateRandomActivities(false);
|
GenerateRandomActivities(false);
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
// do
|
do
|
||||||
// {
|
{
|
||||||
// Field* fields = result->Fetch();
|
Field* fields = result->Fetch();
|
||||||
// uint32 activityId = fields[0].GetUInt32();
|
uint32 activityId = fields[0].GetUInt32();
|
||||||
// PerksActivityEntry const* entry = sPerksActivityStore.LookupEntry(activityId);
|
PerksActivityEntry const* entry = sPerksActivityStore.LookupEntry(activityId);
|
||||||
// if (!entry)
|
if (!entry)
|
||||||
// continue;
|
continue;
|
||||||
// PerkProgramData::ActivityTemplate ac;
|
PerkProgramData::ActivityTemplate ac;
|
||||||
// ac.ActivityID = entry->ID;
|
ac.ActivityID = entry->ID;
|
||||||
// ac.CriteriaTree = entry->CriteriaTreeID;
|
ac.CriteriaTree = entry->CriteriaTreeID;
|
||||||
// ac.CurrencyAmount = entry->ThresholdContributionAmount;
|
ac.CurrencyAmount = entry->ThresholdContributionAmount;
|
||||||
// ac.Priority = entry->Priority;
|
ac.Priority = entry->Priority;
|
||||||
// m_activeActivity.push_back(ac);
|
m_activeActivity.push_back(ac);
|
||||||
//
|
|
||||||
// } while (result->NextRow());
|
} while (result->NextRow());
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramDataStoreMgr::GenerateRandomActivities(bool /*clearOld*/)
|
void PerkProgramDataStoreMgr::GenerateRandomActivities(bool /*clearOld*/)
|
||||||
//{
|
{
|
||||||
// CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PERK_PROGRAM_ACTIVITY);
|
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PERK_PROGRAM_ACTIVITY);
|
||||||
// CharacterDatabase.Execute(stmt);
|
CharacterDatabase.Execute(stmt);
|
||||||
// m_activeActivity.clear();
|
m_activeActivity.clear();
|
||||||
//
|
|
||||||
// for (PerksActivityEntry const* db : sDB2Manager.GetRandomActivitiesXTag())
|
for (PerksActivityEntry const* db : sDB2Manager.GetRandomActivitiesXTag())
|
||||||
// {
|
{
|
||||||
// PerkProgramData::ActivityTemplate ac;
|
PerkProgramData::ActivityTemplate ac;
|
||||||
// ac.ActivityID = db->ID;
|
ac.ActivityID = db->ID;
|
||||||
// ac.CriteriaTree = db->CriteriaTreeID;
|
ac.CriteriaTree = db->CriteriaTreeID;
|
||||||
// ac.CurrencyAmount = db->ThresholdContributionAmount;
|
ac.CurrencyAmount = db->ThresholdContributionAmount;
|
||||||
// ac.Priority = db->Priority;
|
ac.Priority = db->Priority;
|
||||||
// m_activeActivity.push_back(ac);
|
m_activeActivity.push_back(ac);
|
||||||
//
|
|
||||||
// stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_PERK_PROGRAM_ACTIVITY);
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_PERK_PROGRAM_ACTIVITY);
|
||||||
// stmt->setUInt32(0, ac.ActivityID);
|
stmt->setUInt32(0, ac.ActivityID);
|
||||||
// CharacterDatabase.Execute(stmt);
|
CharacterDatabase.Execute(stmt);
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
|
|||||||
@@ -1,75 +1,75 @@
|
|||||||
///*
|
/*
|
||||||
// * Copyright (C) WowCommunity Project
|
* Copyright (C) WowCommunity Project
|
||||||
// *
|
*
|
||||||
// * This SourceCode is NOT free a software. Please hold everything Private
|
* This SourceCode is NOT free a software. Please hold everything Private
|
||||||
// * and read our Terms
|
* and read our Terms
|
||||||
// */
|
*/
|
||||||
//
|
|
||||||
//#ifndef _PERK_PROGRAM_DATA_STORE_H
|
#ifndef _PERK_PROGRAM_DATA_STORE_H
|
||||||
//#define _PERK_PROGRAM_DATA_STORE_H
|
#define _PERK_PROGRAM_DATA_STORE_H
|
||||||
//
|
|
||||||
//#include "PerksProgramPacketsCommon.h"
|
#include "PerksProgramPacketsCommon.h"
|
||||||
//#include "PacketUtilities.h"
|
#include "PacketUtilities.h"
|
||||||
//#include "DatabaseEnv.h"
|
#include "DatabaseEnv.h"
|
||||||
//#include <vector>
|
#include <vector>
|
||||||
//#include <unordered_map>
|
#include <unordered_map>
|
||||||
//#include <ctime>
|
#include <ctime>
|
||||||
//
|
|
||||||
//class PerkProgramManager;
|
class PerkProgramManager;
|
||||||
//
|
|
||||||
//namespace PerkProgramData
|
namespace PerkProgramData
|
||||||
//{
|
{
|
||||||
// struct PerkVendorItem
|
struct PerkVendorItem
|
||||||
// {
|
{
|
||||||
// uint32 Id;
|
uint32 Id;
|
||||||
// uint32 ItemID;
|
uint32 ItemID;
|
||||||
// uint32 MountSpellID;
|
uint32 MountSpellID;
|
||||||
// uint32 PetSpellID;
|
uint32 PetSpellID;
|
||||||
// uint32 TransmogSet;
|
uint32 TransmogSet;
|
||||||
// uint32 ItemModifiedAppearanceID;
|
uint32 ItemModifiedAppearanceID;
|
||||||
// uint32 ToyItem;
|
uint32 ToyItem;
|
||||||
// time_t AvailableUntil;
|
time_t AvailableUntil;
|
||||||
// uint32 Cost;
|
uint32 Cost;
|
||||||
// uint32 CategoryId;
|
uint32 CategoryId;
|
||||||
//
|
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// struct ActivityTemplate
|
struct ActivityTemplate
|
||||||
// {
|
{
|
||||||
// uint32 ActivityID;
|
uint32 ActivityID;
|
||||||
// uint32 CriteriaTree;
|
uint32 CriteriaTree;
|
||||||
// uint32 Priority;
|
uint32 Priority;
|
||||||
// uint32 CurrencyAmount;
|
uint32 CurrencyAmount;
|
||||||
// };
|
};
|
||||||
//};
|
};
|
||||||
//
|
|
||||||
//class TC_GAME_API PerkProgramDataStoreMgr
|
class TC_GAME_API PerkProgramDataStoreMgr
|
||||||
//{
|
{
|
||||||
// PerkProgramDataStoreMgr();
|
PerkProgramDataStoreMgr();
|
||||||
// ~PerkProgramDataStoreMgr();
|
~PerkProgramDataStoreMgr();
|
||||||
//
|
|
||||||
//public:
|
public:
|
||||||
// static PerkProgramDataStoreMgr* instance();
|
static PerkProgramDataStoreMgr* instance();
|
||||||
//
|
|
||||||
// void Initialize();
|
void Initialize();
|
||||||
//
|
|
||||||
// std::unordered_map<uint32, PerkProgramData::PerkVendorItem> GetVendorItems();
|
std::unordered_map<uint32, PerkProgramData::PerkVendorItem> GetVendorItems();
|
||||||
// PerkProgramData::PerkVendorItem const* GetVendorItem(uint32 entry);
|
PerkProgramData::PerkVendorItem const* GetVendorItem(uint32 entry);
|
||||||
// PerkProgramData::PerkVendorItem const* GetRandomVendorItem();
|
PerkProgramData::PerkVendorItem const* GetRandomVendorItem();
|
||||||
//
|
|
||||||
// std::vector<PerkProgramData::ActivityTemplate> GetActivities();
|
std::vector<PerkProgramData::ActivityTemplate> GetActivities();
|
||||||
// uint32 GetActivityCriteriatree(uint32 activityId);
|
uint32 GetActivityCriteriatree(uint32 activityId);
|
||||||
// uint32 GetActivityCurrencyAmount(uint32 activityId);
|
uint32 GetActivityCurrencyAmount(uint32 activityId);
|
||||||
//
|
|
||||||
//private:
|
private:
|
||||||
//
|
|
||||||
// void LoadPerkVendorItem();
|
void LoadPerkVendorItem();
|
||||||
// void LoadActivities();
|
void LoadActivities();
|
||||||
// void GenerateRandomActivities(bool clearOld);
|
void GenerateRandomActivities(bool clearOld);
|
||||||
// time_t m_activityTime;
|
time_t m_activityTime;
|
||||||
//
|
|
||||||
//};
|
};
|
||||||
//
|
|
||||||
//#define sPerkProgramDataStore PerkProgramDataStoreMgr::instance()
|
#define sPerkProgramDataStore PerkProgramDataStoreMgr::instance()
|
||||||
//
|
|
||||||
//#endif
|
#endif
|
||||||
|
|||||||
@@ -1,430 +1,430 @@
|
|||||||
///*
|
/*
|
||||||
// * Copyright (C) WowCommunity Project
|
* Copyright (C) WowCommunity Project
|
||||||
// *
|
*
|
||||||
// * This SourceCode is NOT free a software. Please hold everything Private
|
* This SourceCode is NOT free a software. Please hold everything Private
|
||||||
// * and read our Terms
|
* and read our Terms
|
||||||
// */
|
*/
|
||||||
//
|
|
||||||
//#include "Common.h"
|
#include "Common.h"
|
||||||
//#include "CollectionMgr.h"
|
#include "CollectionMgr.h"
|
||||||
//#include "ObjectMgr.h"
|
#include "ObjectMgr.h"
|
||||||
//#include "PerkProgramMgr.h"
|
#include "PerkProgramMgr.h"
|
||||||
//#include "WorldSession.h"
|
#include "WorldSession.h"
|
||||||
//#include "Guild.h"
|
#include "Guild.h"
|
||||||
//#include "GuildMgr.h"
|
#include "GuildMgr.h"
|
||||||
//#include "Player.h"
|
#include "Player.h"
|
||||||
//#include "Creature.h"
|
#include "Creature.h"
|
||||||
//#include "PerkProgramData.h"
|
#include "PerkProgramData.h"
|
||||||
//#include "DatabaseEnv.h"
|
#include "DatabaseEnv.h"
|
||||||
//#include "ScriptMgr.h"
|
#include "ScriptMgr.h"
|
||||||
//#include "AccountMgr.h"
|
#include "AccountMgr.h"
|
||||||
//#include <sstream>
|
#include <sstream>
|
||||||
//#include "SpellInfo.h"
|
#include "SpellInfo.h"
|
||||||
//#include "SpellMgr.h"
|
#include "SpellMgr.h"
|
||||||
//#include "Language.h"
|
#include "Language.h"
|
||||||
//#include "SpellPackets.h"
|
#include "SpellPackets.h"
|
||||||
//#include "Chat.h"
|
#include "Chat.h"
|
||||||
//#include "DB2Stores.h"
|
#include "DB2Stores.h"
|
||||||
//#include "Pet.h"
|
#include "Pet.h"
|
||||||
//#include "Item.h"
|
#include "Item.h"
|
||||||
//#include "MiscPackets.h"
|
#include "MiscPackets.h"
|
||||||
//#include "Unit.h"
|
#include "Unit.h"
|
||||||
//#include "GameTime.h"
|
#include "GameTime.h"
|
||||||
//#include "PerksProgramPackets.h"
|
#include "PerksProgramPackets.h"
|
||||||
//
|
|
||||||
//using namespace PerkPrograms;
|
using namespace PerkPrograms;
|
||||||
//
|
|
||||||
//PerkProgramManager::PerkProgramManager(WorldSession* session)
|
PerkProgramManager::PerkProgramManager(WorldSession* session)
|
||||||
//{
|
{
|
||||||
// _session = session;
|
_session = session;
|
||||||
// if (session->GetPlayer())
|
if (session->GetPlayer())
|
||||||
// m_player = session->GetPlayer();
|
m_player = session->GetPlayer();
|
||||||
//
|
|
||||||
// m_currencyAmount = 0;
|
m_currencyAmount = 0;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//PerkProgramManager::~PerkProgramManager()
|
PerkProgramManager::~PerkProgramManager()
|
||||||
//{
|
{
|
||||||
//};
|
};
|
||||||
//
|
|
||||||
//void PerkProgramManager::SendVendorItems(Creature* vendor, std::vector<uint32> purchasedItems)
|
void PerkProgramManager::SendVendorItems(Creature* vendor, std::vector<uint32> purchasedItems)
|
||||||
//{
|
{
|
||||||
// WorldPackets::PerksProgram::PerksProgramResult perks;
|
WorldPackets::PerksProgram::PerksProgramResult perks;
|
||||||
// perks.Type = PerkPrograms::RESULT_AVAILABLE_ITEMS;
|
perks.Type = PerkPrograms::RESULT_AVAILABLE_ITEMS;
|
||||||
//
|
|
||||||
// uint32 cameraId = 0;
|
uint32 cameraId = 0;
|
||||||
//
|
|
||||||
// switch (vendor->GetEntry())
|
switch (vendor->GetEntry())
|
||||||
// {
|
{
|
||||||
// case PerkPrograms::VENDOR_HORDE:
|
case PerkPrograms::VENDOR_HORDE:
|
||||||
// cameraId = PerkPrograms::CAMERA_HORDE;
|
cameraId = PerkPrograms::CAMERA_HORDE;
|
||||||
// break;
|
break;
|
||||||
// case PerkPrograms::VENDOR_ALLIANCE:
|
case PerkPrograms::VENDOR_ALLIANCE:
|
||||||
// cameraId = PerkPrograms::CAMERA_ALLIANCE;
|
cameraId = PerkPrograms::CAMERA_ALLIANCE;
|
||||||
// break;
|
break;
|
||||||
// default:
|
default:
|
||||||
// cameraId = 0;
|
cameraId = 0;
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// perks.Params.VendorItem.VendorGuid = vendor->GetGUID();
|
perks.Params.VendorItem.VendorGuid = vendor->GetGUID();
|
||||||
//
|
|
||||||
// if (cameraId != 0)
|
if (cameraId != 0)
|
||||||
// {
|
{
|
||||||
// std::list<Creature*> list;
|
std::list<Creature*> list;
|
||||||
// _session->GetPlayer()->GetCreatureListWithEntryInGrid(list, cameraId, 100);
|
_session->GetPlayer()->GetCreatureListWithEntryInGrid(list, cameraId, 100);
|
||||||
//
|
|
||||||
// for (auto cr1 : list)
|
for (auto cr1 : list)
|
||||||
// {
|
{
|
||||||
// perks.Params.VendorItem.ModelSceneCameraGuid = cr1->GetGUID();
|
perks.Params.VendorItem.ModelSceneCameraGuid = cr1->GetGUID();
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// for (auto items : sPerkProgramDataStore->GetVendorItems())
|
for (auto items : sPerkProgramDataStore->GetVendorItems())
|
||||||
// {
|
{
|
||||||
// WorldPackets::PerksProgram::PerksVendorItem vendorItem;
|
WorldPackets::PerksProgram::PerksVendorItem vendorItem;
|
||||||
// vendorItem.VendorItemID = items.second.Id;
|
vendorItem.VendorItemID = items.second.Id;
|
||||||
// vendorItem.MountID = items.second.MountSpellID;
|
vendorItem.MountID = items.second.MountSpellID;
|
||||||
// vendorItem.BattlePetSpeciesID = items.second.PetSpellID;
|
vendorItem.BattlePetSpeciesID = items.second.PetSpellID;
|
||||||
// vendorItem.ItemModifiedAppearanceID = items.second.ItemModifiedAppearanceID;
|
vendorItem.ItemModifiedAppearanceID = items.second.ItemModifiedAppearanceID;
|
||||||
// vendorItem.ToyID = items.second.ToyItem;
|
vendorItem.ToyID = items.second.ToyItem;
|
||||||
// vendorItem.TransmogSetID = items.second.TransmogSet;
|
vendorItem.TransmogSetID = items.second.TransmogSet;
|
||||||
// vendorItem.Price = items.second.Cost;
|
vendorItem.Price = items.second.Cost;
|
||||||
// vendorItem.CategoryType = items.second.CategoryId;
|
vendorItem.OriginalPrice = items.second.CategoryId;
|
||||||
// vendorItem.Disabled = false;
|
vendorItem.Disabled = false;
|
||||||
// vendorItem.AvailableUntil = items.second.AvailableUntil;
|
vendorItem.AvailableUntil = items.second.AvailableUntil;
|
||||||
// perks.Params.VendorItem.FrozenPerksVendorItems.emplace_back(vendorItem);
|
perks.Params.VendorItem.FrozenPerksVendorItems.emplace_back(vendorItem);
|
||||||
//
|
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// _session->SendPacket(perks.Write());
|
_session->SendPacket(perks.Write());
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//bool PerkProgramManager::IsAccountWideItem(uint32 item)
|
bool PerkProgramManager::IsAccountWideItem(uint32 item)
|
||||||
//{
|
{
|
||||||
// bool level = false;
|
bool level = false;
|
||||||
// if (auto i = sPerkProgramDataStore->GetVendorItem(item))
|
if (auto i = sPerkProgramDataStore->GetVendorItem(item))
|
||||||
// {
|
{
|
||||||
// switch (i->CategoryId)
|
switch (i->CategoryId)
|
||||||
// {
|
{
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TOYS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_TOYS:
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_MOUNTS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_MOUNTS:
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG_SETS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG_SETS:
|
||||||
// level = true;
|
level = true;
|
||||||
// break;
|
break;
|
||||||
// default:
|
default:
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// return level;
|
return level;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//bool PerkProgramManager::IsItemAlreadyOwned(PerkProgramData::PerkVendorItem const* vendorItem)
|
bool PerkProgramManager::IsItemAlreadyOwned(PerkProgramData::PerkVendorItem const* vendorItem)
|
||||||
//{
|
{
|
||||||
// if (!vendorItem)
|
if (!vendorItem)
|
||||||
// return true;
|
return true;
|
||||||
//
|
|
||||||
// switch (vendorItem->CategoryId)
|
switch (vendorItem->CategoryId)
|
||||||
// {
|
{
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TOYS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_TOYS:
|
||||||
// return m_player->GetSession()->GetCollectionMgr()->HasToy(vendorItem->ToyItem);
|
return m_player->GetSession()->GetCollectionMgr()->HasToy(vendorItem->ToyItem);
|
||||||
// // case PerkPrograms::PERKS_VENDOR_CATEGORY_MOUNTS:
|
// case PerkPrograms::PERKS_VENDOR_CATEGORY_MOUNTS:
|
||||||
// // return m_player->GetMountCollection()->Has(vendorItem->MountSpellID);
|
// return m_player->GetMountCollection()->Has(vendorItem->MountSpellID);
|
||||||
// // case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG_SETS:
|
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG_SETS:
|
||||||
// // return m_player->GetSession()->GetCollectionMgr()->HasTransmogSet(vendorItem->TransmogSet);
|
// return m_player->GetSession()->GetCollectionMgr()->HasTransmogSet(vendorItem->TransmogSet);
|
||||||
// // case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG:
|
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG:
|
||||||
// // return m_player->GetSession()->GetCollectionMgr()->HasItemAppearance(vendorItem->ItemModifiedAppearanceID);
|
// return m_player->GetSession()->GetCollectionMgr()->HasItemAppearance(vendorItem->ItemModifiedAppearanceID);
|
||||||
// // case PerkPrograms::PERKS_VENDOR_CATEGORY_PETS:
|
// case PerkPrograms::PERKS_VENDOR_CATEGORY_PETS:
|
||||||
// // return m_player->GetBattlePetCollection()->HasPet(vendorItem->PetSpellID);
|
// return m_player->GetBattlePetCollection()->HasPet(vendorItem->PetSpellID);
|
||||||
// default:
|
default:
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// return false;
|
return false;
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::GrantItem(PerkProgramData::PerkVendorItem const* vendorItem)
|
void PerkProgramManager::GrantItem(PerkProgramData::PerkVendorItem const* vendorItem)
|
||||||
//{
|
{
|
||||||
// if (!vendorItem)
|
if (!vendorItem)
|
||||||
// return;
|
return;
|
||||||
//
|
|
||||||
// switch (vendorItem->CategoryId)
|
switch (vendorItem->CategoryId)
|
||||||
// {
|
{
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TOYS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_TOYS:
|
||||||
// {
|
{
|
||||||
// m_player->GetSession()->GetCollectionMgr()->AddToy(vendorItem->ToyItem, false, false);
|
m_player->GetSession()->GetCollectionMgr()->AddToy(vendorItem->ToyItem, false, false);
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_MOUNTS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_MOUNTS:
|
||||||
// {
|
{
|
||||||
// m_player->LearnSpell(vendorItem->MountSpellID, false);
|
m_player->LearnSpell(vendorItem->MountSpellID, false);
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG_SETS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG_SETS:
|
||||||
// {
|
{
|
||||||
// m_player->GetSession()->GetCollectionMgr()->AddTransmogSet(vendorItem->TransmogSet);
|
m_player->GetSession()->GetCollectionMgr()->AddTransmogSet(vendorItem->TransmogSet);
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG:
|
||||||
// {
|
{
|
||||||
// m_player->GetSession()->GetCollectionMgr()->AddItemAppearance(vendorItem->ItemModifiedAppearanceID);
|
m_player->GetSession()->GetCollectionMgr()->AddItemAppearance(vendorItem->ItemModifiedAppearanceID);
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_PETS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_PETS:
|
||||||
// {
|
{
|
||||||
// // m_player->AddBattlePet(vendorItem->PetSpellID);
|
// m_player->AddBattlePet(vendorItem->PetSpellID);
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_CONSUMABLES:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_CONSUMABLES:
|
||||||
// {
|
{
|
||||||
// m_player->AddItem(vendorItem->ItemID, 1);
|
m_player->AddItem(vendorItem->ItemID, 1);
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// default:
|
default:
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::RemoveGrantedItem(PerkProgramData::PerkVendorItem const* vendorItem)
|
void PerkProgramManager::RemoveGrantedItem(PerkProgramData::PerkVendorItem const* vendorItem)
|
||||||
//{
|
{
|
||||||
// if (!vendorItem)
|
if (!vendorItem)
|
||||||
// return;
|
return;
|
||||||
//
|
|
||||||
// switch (vendorItem->CategoryId)
|
switch (vendorItem->CategoryId)
|
||||||
// {
|
{
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TOYS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_TOYS:
|
||||||
// break;
|
break;
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_MOUNTS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_MOUNTS:
|
||||||
// m_player->RemoveSpell(vendorItem->MountSpellID, false, true);
|
m_player->RemoveSpell(vendorItem->MountSpellID, false, true);
|
||||||
// break;
|
break;
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG_SETS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG_SETS:
|
||||||
// break;
|
break;
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_TRANSMOG:
|
||||||
// break;
|
break;
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_PETS:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_PETS:
|
||||||
// break;
|
break;
|
||||||
// case PerkPrograms::PERKS_VENDOR_CATEGORY_CONSUMABLES:
|
case PerkPrograms::PERKS_VENDOR_CATEGORY_CONSUMABLES:
|
||||||
// m_player->DestroyItemCount(vendorItem->ItemID, 1, true);
|
m_player->DestroyItemCount(vendorItem->ItemID, 1, true);
|
||||||
// break;
|
break;
|
||||||
// default:
|
default:
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::BuyItem(uint32 itemId, ObjectGuid /*vendor*/)
|
void PerkProgramManager::BuyItem(uint32 itemId, ObjectGuid /*vendor*/)
|
||||||
//{
|
{
|
||||||
// auto const* vendorItem = sPerkProgramDataStore->GetVendorItem(itemId);
|
auto const* vendorItem = sPerkProgramDataStore->GetVendorItem(itemId);
|
||||||
// if (!vendorItem)
|
if (!vendorItem)
|
||||||
// {
|
{
|
||||||
// SendPerksProgramError(1);
|
SendPerksProgramError(1);
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// if (m_currencyAmount < vendorItem->Cost)
|
if (m_currencyAmount < vendorItem->Cost)
|
||||||
// {
|
{
|
||||||
// SendPerksProgramError(2);
|
SendPerksProgramError(2);
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// if (IsItemAlreadyOwned(vendorItem))
|
if (IsItemAlreadyOwned(vendorItem))
|
||||||
// {
|
{
|
||||||
// SendPerksProgramError(3);
|
SendPerksProgramError(3);
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// m_currencyAmount -= vendorItem->Cost;
|
m_currencyAmount -= vendorItem->Cost;
|
||||||
// m_player->ModifyCurrency(PERKS_PROGRAM_CURRENCY, -static_cast<int32>(vendorItem->Cost));
|
m_player->ModifyCurrency(PERKS_PROGRAM_CURRENCY, -static_cast<int32>(vendorItem->Cost));
|
||||||
//
|
|
||||||
// GrantItem(vendorItem);
|
GrantItem(vendorItem);
|
||||||
//
|
|
||||||
// RecordPurchase(itemId, GameTime::GetGameTime());
|
RecordPurchase(itemId, GameTime::GetGameTime());
|
||||||
//
|
|
||||||
// SendBuyItemResult(itemId);
|
SendBuyItemResult(itemId);
|
||||||
// SendCurrencyRefresh();
|
SendCurrencyRefresh();
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::SendBuyItemResult(int32 itemId)
|
void PerkProgramManager::SendBuyItemResult(int32 itemId)
|
||||||
//{
|
{
|
||||||
// WorldPackets::PerksProgram::PerksProgramResult perks;
|
WorldPackets::PerksProgram::PerksProgramResult perks;
|
||||||
// perks.Type = PerkPrograms::RESULT_BUY_ITEM;
|
perks.Type = PerkPrograms::RESULT_BUY_ITEM;
|
||||||
// perks.Params.BuyItem.VendorItemID = itemId;
|
perks.Params.BuyItem.VendorItemID = itemId;
|
||||||
//
|
|
||||||
// WorldPackets::PerksProgram::JamTimePair time;
|
WorldPackets::PerksProgram::JamTimePair time;
|
||||||
// time.BuyTime = GameTime::GetGameTime();
|
time.BuyTime = GameTime::GetGameTime();
|
||||||
// time.VendorItemID = itemId;
|
time.VendorItemID = itemId;
|
||||||
// perks.Params.BuyItem.TimePair.emplace_back(time);
|
perks.Params.BuyItem.TimePair.emplace_back(time);
|
||||||
//
|
|
||||||
// _session->SendPacket(perks.Write());
|
_session->SendPacket(perks.Write());
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::SendCurrencyRefresh()
|
void PerkProgramManager::SendCurrencyRefresh()
|
||||||
//{
|
{
|
||||||
// WorldPackets::PerksProgram::PerksProgramResult perks;
|
WorldPackets::PerksProgram::PerksProgramResult perks;
|
||||||
// perks.Type = PerkPrograms::RESULT_CURRENCY_REFRESH;
|
perks.Type = PerkPrograms::RESULT_CURRENCY_REFRESH;
|
||||||
// _session->SendPacket(perks.Write());
|
_session->SendPacket(perks.Write());
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::SendPerksProgramError(uint32 errorCode)
|
void PerkProgramManager::SendPerksProgramError(uint32 errorCode)
|
||||||
//{
|
{
|
||||||
// WorldPackets::PerksProgram::PerksProgramResult perks;
|
WorldPackets::PerksProgram::PerksProgramResult perks;
|
||||||
// perks.Type = PerkPrograms::RESULT_ERROR;
|
perks.Type = PerkPrograms::RESULT_ERROR;
|
||||||
// _session->SendPacket(perks.Write());
|
_session->SendPacket(perks.Write());
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::RecordPurchase(uint32 itemId, time_t purchaseTime)
|
void PerkProgramManager::RecordPurchase(uint32 itemId, time_t purchaseTime)
|
||||||
//{
|
{
|
||||||
// m_recentPurchases.push_back(std::make_pair(itemId, purchaseTime));
|
m_recentPurchases.push_back(std::make_pair(itemId, purchaseTime));
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::RefundItem(int32 itemId)
|
void PerkProgramManager::RefundItem(int32 itemId)
|
||||||
//{
|
{
|
||||||
// auto it = std::find_if(m_recentPurchases.begin(), m_recentPurchases.end(),
|
auto it = std::find_if(m_recentPurchases.begin(), m_recentPurchases.end(),
|
||||||
// [itemId](std::pair<uint32, time_t> const& p) { return p.first == static_cast<uint32>(itemId); });
|
[itemId](std::pair<uint32, time_t> const& p) { return p.first == static_cast<uint32>(itemId); });
|
||||||
//
|
|
||||||
// if (it == m_recentPurchases.end())
|
if (it == m_recentPurchases.end())
|
||||||
// {
|
{
|
||||||
// SendPerksProgramError(4);
|
SendPerksProgramError(4);
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// if (GameTime::GetGameTime() - it->second > REFUND_WINDOW_SECONDS)
|
if (GameTime::GetGameTime() - it->second > REFUND_WINDOW_SECONDS)
|
||||||
// {
|
{
|
||||||
// SendPerksProgramError(5);
|
SendPerksProgramError(5);
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// auto const* vendorItem = sPerkProgramDataStore->GetVendorItem(itemId);
|
auto const* vendorItem = sPerkProgramDataStore->GetVendorItem(itemId);
|
||||||
// if (!vendorItem)
|
if (!vendorItem)
|
||||||
// return;
|
return;
|
||||||
//
|
|
||||||
// RemoveGrantedItem(vendorItem);
|
RemoveGrantedItem(vendorItem);
|
||||||
//
|
|
||||||
// m_currencyAmount += vendorItem->Cost;
|
m_currencyAmount += vendorItem->Cost;
|
||||||
// m_player->ModifyCurrency(PERKS_PROGRAM_CURRENCY, static_cast<int32>(vendorItem->Cost));
|
m_player->ModifyCurrency(PERKS_PROGRAM_CURRENCY, static_cast<int32>(vendorItem->Cost));
|
||||||
//
|
|
||||||
// m_recentPurchases.erase(it);
|
m_recentPurchases.erase(it);
|
||||||
//
|
|
||||||
// SendRefundSuccess(itemId);
|
SendRefundSuccess(itemId);
|
||||||
// SendCurrencyRefresh();
|
SendCurrencyRefresh();
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::SendRefundSuccess(int32 itemId)
|
void PerkProgramManager::SendRefundSuccess(int32 itemId)
|
||||||
//{
|
{
|
||||||
// WorldPackets::PerksProgram::PerksProgramResult perks;
|
WorldPackets::PerksProgram::PerksProgramResult perks;
|
||||||
// perks.Type = PerkPrograms::RESULT_REFUND_SUCCESS;
|
perks.Type = PerkPrograms::RESULT_REFUND_SUCCESS;
|
||||||
// perks.Params.BuyItem.VendorItemID = itemId;
|
perks.Params.BuyItem.VendorItemID = itemId;
|
||||||
// _session->SendPacket(perks.Write());
|
_session->SendPacket(perks.Write());
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::CartCheckout(std::vector<uint32> const& vendorItemIDs)
|
void PerkProgramManager::CartCheckout(std::vector<uint32> const& vendorItemIDs)
|
||||||
//{
|
{
|
||||||
// uint32 totalCost = 0;
|
uint32 totalCost = 0;
|
||||||
//
|
|
||||||
// for (uint32 itemId : vendorItemIDs)
|
for (uint32 itemId : vendorItemIDs)
|
||||||
// {
|
{
|
||||||
// auto const* item = sPerkProgramDataStore->GetVendorItem(itemId);
|
auto const* item = sPerkProgramDataStore->GetVendorItem(itemId);
|
||||||
// if (!item)
|
if (!item)
|
||||||
// {
|
{
|
||||||
// SendPerksProgramError(1);
|
SendPerksProgramError(1);
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
// totalCost += item->Cost;
|
totalCost += item->Cost;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// if (m_currencyAmount < totalCost)
|
if (m_currencyAmount < totalCost)
|
||||||
// {
|
{
|
||||||
// SendPerksProgramError(2);
|
SendPerksProgramError(2);
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// for (uint32 itemId : vendorItemIDs)
|
for (uint32 itemId : vendorItemIDs)
|
||||||
// {
|
{
|
||||||
// auto const* item = sPerkProgramDataStore->GetVendorItem(itemId);
|
auto const* item = sPerkProgramDataStore->GetVendorItem(itemId);
|
||||||
// if (!item)
|
if (!item)
|
||||||
// continue;
|
continue;
|
||||||
//
|
|
||||||
// if (IsItemAlreadyOwned(item))
|
if (IsItemAlreadyOwned(item))
|
||||||
// continue;
|
continue;
|
||||||
//
|
|
||||||
// m_currencyAmount -= item->Cost;
|
m_currencyAmount -= item->Cost;
|
||||||
// m_player->ModifyCurrency(PERKS_PROGRAM_CURRENCY, -static_cast<int32>(item->Cost));
|
m_player->ModifyCurrency(PERKS_PROGRAM_CURRENCY, -static_cast<int32>(item->Cost));
|
||||||
//
|
|
||||||
// GrantItem(item);
|
GrantItem(item);
|
||||||
// RecordPurchase(itemId, GameTime::GetGameTime());
|
RecordPurchase(itemId, GameTime::GetGameTime());
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// SendCartCheckoutSuccess();
|
SendCartCheckoutSuccess();
|
||||||
// SendCurrencyRefresh();
|
SendCurrencyRefresh();
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::SendCartCheckoutSuccess()
|
void PerkProgramManager::SendCartCheckoutSuccess()
|
||||||
//{
|
{
|
||||||
// WorldPackets::PerksProgram::PerksProgramResult perks;
|
WorldPackets::PerksProgram::PerksProgramResult perks;
|
||||||
// perks.Type = PerkPrograms::RESULT_PURCHASE_CART;
|
perks.Type = PerkPrograms::RESULT_PURCHASE_CART;
|
||||||
// _session->SendPacket(perks.Write());
|
_session->SendPacket(perks.Write());
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::SendPerksProgramStatus()
|
void PerkProgramManager::SendPerksProgramStatus()
|
||||||
//{
|
{
|
||||||
// WorldPackets::PerksProgram::PerksProgramResult perks;
|
WorldPackets::PerksProgram::PerksProgramResult perks;
|
||||||
// perks.Type = PerkPrograms::RESULT_CURRENCY_REFRESH;
|
perks.Type = PerkPrograms::RESULT_CURRENCY_REFRESH;
|
||||||
// _session->SendPacket(perks.Write());
|
_session->SendPacket(perks.Write());
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::SendPendingRewards()
|
void PerkProgramManager::SendPendingRewards()
|
||||||
//{
|
{
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::SetFrozenItem(int32 itemId, bool clear)
|
void PerkProgramManager::SetFrozenItem(int32 itemId, bool clear)
|
||||||
//{
|
{
|
||||||
// if (clear)
|
if (clear)
|
||||||
// {
|
{
|
||||||
// m_frozenItems.clear();
|
m_frozenItems.clear();
|
||||||
// }
|
}
|
||||||
// else
|
else
|
||||||
// {
|
{
|
||||||
// auto const* item = sPerkProgramDataStore->GetVendorItem(itemId);
|
auto const* item = sPerkProgramDataStore->GetVendorItem(itemId);
|
||||||
// if (item)
|
if (item)
|
||||||
// {
|
{
|
||||||
// m_frozenItems.clear();
|
m_frozenItems.clear();
|
||||||
// m_frozenItems.push_back(*item);
|
m_frozenItems.push_back(*item);
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// WorldPackets::PerksProgram::PerksProgramResult perks;
|
WorldPackets::PerksProgram::PerksProgramResult perks;
|
||||||
// perks.Type = PerkPrograms::RESULT_FROZEN_ITEM;
|
perks.Type = PerkPrograms::RESULT_FROZEN_ITEM;
|
||||||
// _session->SendPacket(perks.Write());
|
_session->SendPacket(perks.Write());
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::AddTrackedActivity(uint32 activityId)
|
void PerkProgramManager::AddTrackedActivity(uint32 activityId)
|
||||||
//{
|
{
|
||||||
// if (std::find(m_trackedActivities.begin(), m_trackedActivities.end(), activityId) == m_trackedActivities.end())
|
if (std::find(m_trackedActivities.begin(), m_trackedActivities.end(), activityId) == m_trackedActivities.end())
|
||||||
// {
|
{
|
||||||
// m_trackedActivities.push_back(activityId);
|
m_trackedActivities.push_back(activityId);
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::RemoveTrackedActivity(uint32 activityId)
|
void PerkProgramManager::RemoveTrackedActivity(uint32 activityId)
|
||||||
//{
|
{
|
||||||
// auto it = std::find(m_trackedActivities.begin(), m_trackedActivities.end(), activityId);
|
auto it = std::find(m_trackedActivities.begin(), m_trackedActivities.end(), activityId);
|
||||||
// if (it != m_trackedActivities.end())
|
if (it != m_trackedActivities.end())
|
||||||
// {
|
{
|
||||||
// m_trackedActivities.erase(it);
|
m_trackedActivities.erase(it);
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//void PerkProgramManager::SendPerksProgramActivities()
|
void PerkProgramManager::SendPerksProgramActivities()
|
||||||
//{
|
{
|
||||||
// WorldPackets::PerksProgram::PerksProgramActivityUpdate activity;
|
WorldPackets::PerksProgram::PerksProgramActivityUpdate activity;
|
||||||
//
|
|
||||||
// activity.TimeUntilStart = GameTime::GetGameTime();
|
activity.TimeUntilStart = GameTime::GetGameTime();
|
||||||
// // activity.TimeUntilEnd = sWorld->GetNextPerksProgramReset();
|
// activity.TimeUntilEnd = sWorld->GetNextPerksProgramReset();
|
||||||
//
|
|
||||||
// for (auto ac : sPerkProgramDataStore->GetActivities())
|
for (auto ac : sPerkProgramDataStore->GetActivities())
|
||||||
// {
|
{
|
||||||
// activity.ActivityIDs.push_back(ac.ActivityID);
|
activity.ActivityIDs.push_back(ac.ActivityID);
|
||||||
//
|
|
||||||
// }
|
}
|
||||||
// _session->SendPacket(activity.Write());
|
_session->SendPacket(activity.Write());
|
||||||
//
|
|
||||||
//}
|
}
|
||||||
|
|||||||
@@ -1,113 +1,113 @@
|
|||||||
///*
|
/*
|
||||||
// * Copyright (C) WowCommunity Project
|
* Copyright (C) WowCommunity Project
|
||||||
// *
|
*
|
||||||
// * This SourceCode is NOT free a software. Please hold everything Private
|
* This SourceCode is NOT free a software. Please hold everything Private
|
||||||
// * and read our Terms
|
* and read our Terms
|
||||||
// */
|
*/
|
||||||
//
|
|
||||||
//#ifndef __TRINITY_PERKPROGRAMMGR_H
|
#ifndef __TRINITY_PERKPROGRAMMGR_H
|
||||||
//#define __TRINITY_PERKPROGRAMMGR_H
|
#define __TRINITY_PERKPROGRAMMGR_H
|
||||||
//
|
|
||||||
//#include "Common.h"
|
#include "Common.h"
|
||||||
//#include "PerksProgramPacketsCommon.h"
|
#include "PerksProgramPacketsCommon.h"
|
||||||
//#include "PerkProgramData.h"
|
#include "PerkProgramData.h"
|
||||||
//
|
|
||||||
//class WorldSession;
|
class WorldSession;
|
||||||
//class Player;
|
class Player;
|
||||||
//class Creature;
|
class Creature;
|
||||||
//
|
|
||||||
//#define PERKS_PROGRAM_CURRENCY 2032
|
#define PERKS_PROGRAM_CURRENCY 2032
|
||||||
//
|
|
||||||
//namespace PerkPrograms
|
namespace PerkPrograms
|
||||||
//{
|
{
|
||||||
// enum PerksVendorCategoryType : uint32
|
enum PerksVendorCategoryType : uint32
|
||||||
// {
|
{
|
||||||
// PERKS_VENDOR_CATEGORY_NONE = 0,
|
PERKS_VENDOR_CATEGORY_NONE = 0,
|
||||||
// PERKS_VENDOR_CATEGORY_MOUNTS = 1,
|
PERKS_VENDOR_CATEGORY_MOUNTS = 1,
|
||||||
// PERKS_VENDOR_CATEGORY_PETS = 2,
|
PERKS_VENDOR_CATEGORY_PETS = 2,
|
||||||
// PERKS_VENDOR_CATEGORY_TOYS = 3,
|
PERKS_VENDOR_CATEGORY_TOYS = 3,
|
||||||
// PERKS_VENDOR_CATEGORY_TRANSMOG = 4,
|
PERKS_VENDOR_CATEGORY_TRANSMOG = 4,
|
||||||
// PERKS_VENDOR_CATEGORY_TRANSMOG_SETS = 5,
|
PERKS_VENDOR_CATEGORY_TRANSMOG_SETS = 5,
|
||||||
// PERKS_VENDOR_CATEGORY_CONSUMABLES = 6,
|
PERKS_VENDOR_CATEGORY_CONSUMABLES = 6,
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// enum ItemCollectionType : uint32
|
enum ItemCollectionType : uint32
|
||||||
// {
|
{
|
||||||
// ITEM_COLLECTION_NONE = 0,
|
ITEM_COLLECTION_NONE = 0,
|
||||||
// ITEM_COLLECTION_APPEARANCE = 1,
|
ITEM_COLLECTION_APPEARANCE = 1,
|
||||||
// ITEM_COLLECTION_MOUNT = 2,
|
ITEM_COLLECTION_MOUNT = 2,
|
||||||
// ITEM_COLLECTION_TOY = 3,
|
ITEM_COLLECTION_TOY = 3,
|
||||||
// ITEM_COLLECTION_PET = 4,
|
ITEM_COLLECTION_PET = 4,
|
||||||
// ITEM_COLLECTION_HEIRLOOM = 5,
|
ITEM_COLLECTION_HEIRLOOM = 5,
|
||||||
// ITEM_COLLECTION_ILLUSION = 6,
|
ITEM_COLLECTION_ILLUSION = 6,
|
||||||
// ITEM_COLLECTION_ENSEMBLE = 7,
|
ITEM_COLLECTION_ENSEMBLE = 7,
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// enum NpcVendorAndCameras : uint32
|
enum NpcVendorAndCameras : uint32
|
||||||
// {
|
{
|
||||||
// CAMERA_HORDE = 183978,
|
CAMERA_HORDE = 183978,
|
||||||
// CAMERA_ALLIANCE = 1,
|
CAMERA_ALLIANCE = 1,
|
||||||
// VENDOR_HORDE = 185473,
|
VENDOR_HORDE = 185473,
|
||||||
// VENDOR_ALLIANCE = 3,
|
VENDOR_ALLIANCE = 3,
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// enum ResultType : uint32
|
enum ResultType : uint32
|
||||||
// {
|
{
|
||||||
// RESULT_NONE = 0,
|
RESULT_NONE = 0,
|
||||||
// RESULT_BUY_ITEM = 2,
|
RESULT_BUY_ITEM = 2,
|
||||||
// RESULT_AVAILABLE_ITEMS = 5,
|
RESULT_AVAILABLE_ITEMS = 5,
|
||||||
// RESULT_PURCHASE_CART = 6,
|
RESULT_PURCHASE_CART = 6,
|
||||||
// RESULT_REFUND_SUCCESS = 7,
|
RESULT_REFUND_SUCCESS = 7,
|
||||||
// RESULT_ERROR = 10,
|
RESULT_ERROR = 10,
|
||||||
// RESULT_CURRENCY_REFRESH = 11,
|
RESULT_CURRENCY_REFRESH = 11,
|
||||||
// RESULT_FROZEN_ITEM = 12,
|
RESULT_FROZEN_ITEM = 12,
|
||||||
// RESULT_ACTIVITY_UPDATE = 13,
|
RESULT_ACTIVITY_UPDATE = 13,
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
//}
|
}
|
||||||
//
|
|
||||||
//class TC_GAME_API PerkProgramManager
|
class TC_GAME_API PerkProgramManager
|
||||||
//{
|
{
|
||||||
//
|
|
||||||
//public:
|
public:
|
||||||
// explicit PerkProgramManager(WorldSession* session);
|
explicit PerkProgramManager(WorldSession* session);
|
||||||
// ~PerkProgramManager();
|
~PerkProgramManager();
|
||||||
//
|
|
||||||
// void SendVendorItems(Creature* vendor, std::vector<uint32> purchasedItems);
|
void SendVendorItems(Creature* vendor, std::vector<uint32> purchasedItems);
|
||||||
// void BuyItem(uint32 itemId, ObjectGuid vendor);
|
void BuyItem(uint32 itemId, ObjectGuid vendor);
|
||||||
// bool IsAccountWideItem(uint32 item);
|
bool IsAccountWideItem(uint32 item);
|
||||||
//
|
|
||||||
// void SetCurrencyAmount(uint32 amount) { m_currencyAmount = amount; }
|
void SetCurrencyAmount(uint32 amount) { m_currencyAmount = amount; }
|
||||||
// uint32 GetCurrencyAmount() { return m_currencyAmount; }
|
uint32 GetCurrencyAmount() { return m_currencyAmount; }
|
||||||
//
|
|
||||||
// void SendPerksProgramActivities();
|
void SendPerksProgramActivities();
|
||||||
// void SendPerksProgramStatus();
|
void SendPerksProgramStatus();
|
||||||
// void SendPendingRewards();
|
void SendPendingRewards();
|
||||||
// void SetFrozenItem(int32 itemId, bool clear);
|
void SetFrozenItem(int32 itemId, bool clear);
|
||||||
// void RefundItem(int32 itemId);
|
void RefundItem(int32 itemId);
|
||||||
// void CartCheckout(std::vector<uint32> const& itemIds);
|
void CartCheckout(std::vector<uint32> const& itemIds);
|
||||||
// void AddTrackedActivity(uint32 activityId);
|
void AddTrackedActivity(uint32 activityId);
|
||||||
// void RemoveTrackedActivity(uint32 activityId);
|
void RemoveTrackedActivity(uint32 activityId);
|
||||||
//
|
|
||||||
//private:
|
private:
|
||||||
// void GrantItem(PerkProgramData::PerkVendorItem const* vendorItem);
|
void GrantItem(PerkProgramData::PerkVendorItem const* vendorItem);
|
||||||
// void RemoveGrantedItem(PerkProgramData::PerkVendorItem const* vendorItem);
|
void RemoveGrantedItem(PerkProgramData::PerkVendorItem const* vendorItem);
|
||||||
// bool IsItemAlreadyOwned(PerkProgramData::PerkVendorItem const* vendorItem);
|
bool IsItemAlreadyOwned(PerkProgramData::PerkVendorItem const* vendorItem);
|
||||||
// void SendBuyItemResult(int32 itemId);
|
void SendBuyItemResult(int32 itemId);
|
||||||
// void SendRefundSuccess(int32 itemId);
|
void SendRefundSuccess(int32 itemId);
|
||||||
// void SendCartCheckoutSuccess();
|
void SendCartCheckoutSuccess();
|
||||||
// void SendCurrencyRefresh();
|
void SendCurrencyRefresh();
|
||||||
// void SendPerksProgramError(uint32 errorCode);
|
void SendPerksProgramError(uint32 errorCode);
|
||||||
// void RecordPurchase(uint32 itemId, time_t purchaseTime);
|
void RecordPurchase(uint32 itemId, time_t purchaseTime);
|
||||||
//
|
|
||||||
// WorldSession* _session;
|
WorldSession* _session;
|
||||||
// Player* m_player;
|
Player* m_player;
|
||||||
// uint32 m_currencyAmount;
|
uint32 m_currencyAmount;
|
||||||
// std::vector<PerkProgramData::PerkVendorItem> m_frozenItems;
|
std::vector<PerkProgramData::PerkVendorItem> m_frozenItems;
|
||||||
// std::vector<std::pair<uint32, time_t>> m_recentPurchases;
|
std::vector<std::pair<uint32, time_t>> m_recentPurchases;
|
||||||
// std::vector<uint32> m_trackedActivities;
|
std::vector<uint32> m_trackedActivities;
|
||||||
//
|
|
||||||
// static constexpr uint32 REFUND_WINDOW_SECONDS = 2 * 60 * 60;
|
static constexpr uint32 REFUND_WINDOW_SECONDS = 2 * 60 * 60;
|
||||||
//};
|
};
|
||||||
//
|
|
||||||
//#endif
|
#endif
|
||||||
|
|||||||
@@ -58,6 +58,7 @@
|
|||||||
#include "NPCPackets.h"
|
#include "NPCPackets.h"
|
||||||
#include "PacketUtilities.h"
|
#include "PacketUtilities.h"
|
||||||
#include "PartyPackets.h"
|
#include "PartyPackets.h"
|
||||||
|
#include "PerksProgramPackets.h"
|
||||||
#include "PetPackets.h"
|
#include "PetPackets.h"
|
||||||
#include "PetitionPackets.h"
|
#include "PetitionPackets.h"
|
||||||
#include "QueryPackets.h"
|
#include "QueryPackets.h"
|
||||||
|
|||||||
@@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "PerksProgramPackets.h"
|
||||||
|
#include "PacketOperators.h"
|
||||||
|
|
||||||
|
namespace WorldPackets::PerksProgram
|
||||||
|
{
|
||||||
|
void PerksProgramStatusRequest::Read()
|
||||||
|
{
|
||||||
|
_worldPacket >> Vendor;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PerksProgramRequestPurchase::Read()
|
||||||
|
{
|
||||||
|
_worldPacket >> VendorItemID;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PerksProgramSetFrozenVendorItem::Read()
|
||||||
|
{
|
||||||
|
_worldPacket >> VendorItemID;
|
||||||
|
}
|
||||||
|
|
||||||
|
WorldPacket const* PerksProgramVendorUpdate::Write()
|
||||||
|
{
|
||||||
|
_worldPacket << uint32(VendorItems.size());
|
||||||
|
|
||||||
|
for (PerksVendorItem const& item : VendorItems)
|
||||||
|
_worldPacket << item;
|
||||||
|
|
||||||
|
_worldPacket << FrozenItem;
|
||||||
|
_worldPacket.WriteBit(HasFrozenItem);
|
||||||
|
_worldPacket.FlushBits();
|
||||||
|
|
||||||
|
return &_worldPacket;
|
||||||
|
}
|
||||||
|
|
||||||
|
WorldPacket const* PerksProgramResult::Write()
|
||||||
|
{
|
||||||
|
_worldPacket.WriteBits(Type, 4);
|
||||||
|
_worldPacket.WriteBit(UnkLong.has_value());
|
||||||
|
_worldPacket.FlushBits();
|
||||||
|
|
||||||
|
switch (Type)
|
||||||
|
{
|
||||||
|
case 2:// ResultTypes::BoughtItem:
|
||||||
|
_worldPacket << Params.BuyItem.VendorItemID;
|
||||||
|
_worldPacket << uint32(Params.BuyItem.TimePair.size());
|
||||||
|
for (auto const& data : Params.BuyItem.TimePair)
|
||||||
|
{
|
||||||
|
_worldPacket << data.VendorItemID;
|
||||||
|
_worldPacket << data.BuyTime;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4: //ResultTypes::Unk4:
|
||||||
|
_worldPacket << Params.UnkData.UnkInt1;
|
||||||
|
_worldPacket << Params.UnkData.UnkInt2;
|
||||||
|
_worldPacket << Params.UnkData.UnkInt3;
|
||||||
|
_worldPacket << uint32(Params.UnkData.UnkInts.size());
|
||||||
|
for (auto&& unkInt : Params.UnkData.UnkInts)
|
||||||
|
_worldPacket << unkInt;
|
||||||
|
break;
|
||||||
|
case 5: //ResultTypes::AvailableItems:
|
||||||
|
_worldPacket << Params.VendorItem.VendorGuid;
|
||||||
|
_worldPacket << Params.VendorItem.ModelSceneCameraGuid;
|
||||||
|
_worldPacket << uint32(Params.VendorItem.FrozenPerksVendorItems.size());
|
||||||
|
for (auto&& frozenPerksVendorItem : Params.VendorItem.FrozenPerksVendorItems)
|
||||||
|
_worldPacket << frozenPerksVendorItem;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return &_worldPacket;
|
||||||
|
}
|
||||||
|
|
||||||
|
WorldPacket const* PerksProgramActivityUpdate::Write()
|
||||||
|
{
|
||||||
|
_worldPacket << uint32(ActivityIDs.size());
|
||||||
|
_worldPacket << TimeUntilEnd;
|
||||||
|
_worldPacket << TimeUntilStart;
|
||||||
|
|
||||||
|
_worldPacket << unkt;
|
||||||
|
|
||||||
|
for (auto&& item : ActivityIDs)
|
||||||
|
_worldPacket << item;
|
||||||
|
|
||||||
|
return &_worldPacket;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TRINITYCORE_PERKS_PROGRAM_PACKETS_H
|
||||||
|
#define TRINITYCORE_PERKS_PROGRAM_PACKETS_H
|
||||||
|
|
||||||
|
#include "Packet.h"
|
||||||
|
#include "ObjectGuid.h"
|
||||||
|
#include "Optional.h"
|
||||||
|
#include "PerksProgramPacketsCommon.h"
|
||||||
|
|
||||||
|
namespace WorldPackets::PerksProgram
|
||||||
|
{
|
||||||
|
struct JamTimePair
|
||||||
|
{
|
||||||
|
JamTimePair() = default;
|
||||||
|
Timestamp<> BuyTime = 0;
|
||||||
|
uint32 VendorItemID = 0;
|
||||||
|
bool UnkBit = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
class PerksProgramStatusRequest final : public ClientPacket
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit PerksProgramStatusRequest(WorldPacket&& packet) : ClientPacket(CMSG_PERKS_PROGRAM_STATUS_REQUEST, std::move(packet)) { }
|
||||||
|
void Read() override;
|
||||||
|
|
||||||
|
ObjectGuid Vendor;
|
||||||
|
};
|
||||||
|
|
||||||
|
class PerksProgramRequestPurchase final : public ClientPacket
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit PerksProgramRequestPurchase(WorldPacket&& packet) : ClientPacket(CMSG_PERKS_PROGRAM_REQUEST_PURCHASE, std::move(packet)) { }
|
||||||
|
void Read() override;
|
||||||
|
|
||||||
|
int32 VendorItemID = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class PerksProgramSetFrozenVendorItem final : public ClientPacket
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit PerksProgramSetFrozenVendorItem(WorldPacket&& packet) : ClientPacket(CMSG_PERKS_PROGRAM_SET_FROZEN_VENDOR_ITEM, std::move(packet)) { }
|
||||||
|
void Read() override;
|
||||||
|
|
||||||
|
int32 VendorItemID = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class PerksProgramVendorUpdate final : public ServerPacket
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit PerksProgramVendorUpdate() : ServerPacket(SMSG_PERKS_PROGRAM_VENDOR_UPDATE) { }
|
||||||
|
WorldPacket const* Write() override;
|
||||||
|
|
||||||
|
std::vector<PerksVendorItem> VendorItems;
|
||||||
|
PerksVendorItem FrozenItem;
|
||||||
|
bool HasFrozenItem = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
class PerksProgramResult final : public ServerPacket
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PerksProgramResult() : ServerPacket(SMSG_PERKS_PROGRAM_RESULT, 75) {}
|
||||||
|
|
||||||
|
WorldPacket const* Write() override;
|
||||||
|
|
||||||
|
Optional<uint64> UnkLong;
|
||||||
|
uint32/*ResultTypes*/ Type = {};
|
||||||
|
|
||||||
|
struct ResultParams
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
std::vector<uint32> UnkInts;
|
||||||
|
uint32 UnkInt1 = 0;
|
||||||
|
uint32 UnkInt2 = 0;
|
||||||
|
uint32 UnkInt3 = 0;
|
||||||
|
} UnkData;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
std::vector<JamTimePair> TimePair;
|
||||||
|
uint32 VendorItemID = 0;
|
||||||
|
} BuyItem;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
std::vector<PerksProgram::PerksVendorItem> FrozenPerksVendorItems;
|
||||||
|
ObjectGuid VendorGuid;
|
||||||
|
ObjectGuid ModelSceneCameraGuid;
|
||||||
|
} VendorItem;
|
||||||
|
} Params = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
class PerksProgramActivityUpdate final : public ServerPacket
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PerksProgramActivityUpdate() : ServerPacket(SMSG_PERKS_PROGRAM_ACTIVITY_UPDATE) {}
|
||||||
|
|
||||||
|
WorldPacket const* Write() override;
|
||||||
|
|
||||||
|
uint32 unkt = 0;
|
||||||
|
std::vector<uint32> ActivityIDs;
|
||||||
|
Timestamp<> TimeUntilStart = 0;
|
||||||
|
Timestamp<> TimeUntilEnd = 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user