trading post

This commit is contained in:
luis
2026-03-15 19:57:25 -03:00
parent 02ac83d4af
commit 9bbebb333b
5 changed files with 94 additions and 2 deletions
@@ -0,0 +1,55 @@
/*
* Copyright 2023 Algeth
*
* 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.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Bag.h"
#include "PerkProgramData.h"
#include "PerkProgramMgr.h"
#include "PerksProgramPacketsCommon.h"
#include "Config.h"
#include "DatabaseEnv.h"
#include "ObjectMgr.h"
#include "ScriptMgr.h"
#include "Random.h"
#include <sstream>
void WorldSession::HandleGetPerkProgramRequest(WorldPackets::PerksProgram::PerksProgramStatusRequest& /*packet*/)
{
if (!_player)
return;
GetPerkProgramMgr()->SendPerksProgramActivities();
}
void WorldSession::HandlePerkProgramRequestPurchase(WorldPackets::PerksProgram::PerksProgramRequestPurchase& packet)
{
if (!_player)
return;
//GetPerkProgramMgr()->BuyItem(packet.PerksVendorItemID, packet.vendorGuid);
}
void WorldSession::HandlePerkProgamSetForzenVendorItem(WorldPackets::PerksProgram::PerksProgramSetFrozenVendorItem& packet)
{
if (!_player)
return;
}
void WorldSession::HandlePerkProgramPendingReward(WorldPackets::PerksProgram::PerksProgramPendingReward& packet)
{
if (!_player)
return;
}
@@ -110,6 +110,14 @@ public:
Timestamp<> TimeUntilStart = 0;
Timestamp<> TimeUntilEnd = 0;
};
class PerksProgramPendingReward final : public ClientPacket
{
public:
PerksProgramPendingReward(WorldPacket&& packet) : ClientPacket(CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS, std::move(packet)) {}
void Read() override {}
};
}
#endif
+2 -2
View File
@@ -879,8 +879,8 @@ void OpcodeTable::InitializeClientOpcodes()
DEFINE_HANDLER(CMSG_PERKS_PROGRAM_GET_RECENT_PURCHASES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_PERKS_PROGRAM_ITEMS_REFRESHED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_CART_CHECKOUT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_PURCHASE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandlePerkProgramPendingReward);
DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_PURCHASE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandlePerkProgramRequestPurchase);
DEFINE_HANDLER(CMSG_PERKS_PROGRAM_REQUEST_REFUND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_PERKS_PROGRAM_SET_FROZEN_VENDOR_ITEM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_PERKS_PROGRAM_STATUS_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
+28
View File
@@ -37,6 +37,9 @@
#include <map>
#include <memory>
#include <unordered_map>
//WowCommunity
#include "PerkProgramMgr.h"
//WowCommunity
class BlackMarketEntry;
class CollectionMgr;
@@ -50,6 +53,7 @@ class Unit;
class WorldPacket;
class WorldSession;
class PerkProgramManager;
namespace Playerbot {
class BotSession;
}
@@ -743,7 +747,17 @@ namespace WorldPackets
class GetCharacterCurrencyTransferLog;
//WowCommunity
}
//WowCommunity
namespace PerksProgram
{
class PerksProgramStatusRequest;
class PerksProgramRequestPurchase;
class PerksProgramSetFrozenVendorItem;
class PerksProgramPendingReward;
}
//WowCommunity
namespace Movement
{
class ClientPlayerMovement;
@@ -1535,6 +1549,13 @@ class TC_GAME_API WorldSession
void HandleMoveAddImpulseAck(WorldPackets::Movement::MoveAddImpulseAck& moveAddImpulseAck);
void HandleMoveSetCanDriveAck(WorldPackets::Movement::MoveSetCanDriveAck& moveSetCanDriveAck);
void HandleMoveStartDriveForward(WorldPackets::Movement::MoveStartDriveForward& moveStartDriveForward);
//PERKS
void HandleGetPerkProgramRequest(WorldPackets::PerksProgram::PerksProgramStatusRequest& packet);
void HandlePerkProgramRequestPurchase(WorldPackets::PerksProgram::PerksProgramRequestPurchase& packet);
void HandlePerkProgamSetForzenVendorItem(WorldPackets::PerksProgram::PerksProgramSetFrozenVendorItem& packet);
void HandlePerkProgramPendingReward(WorldPackets::PerksProgram::PerksProgramPendingReward& packet);
//wowcommunity
void HandleRepopRequest(WorldPackets::Misc::RepopRequest& packet);
@@ -2510,6 +2531,13 @@ class TC_GAME_API WorldSession
bool _isBot;
#endif
//WowCommunity
private:
std::shared_ptr<PerkProgramManager> _perkProgramMgr;
public:
PerkProgramManager* GetPerkProgramMgr() const { return _perkProgramMgr.get(); }
//WowCommunity
WorldSession(WorldSession const& right) = delete;
WorldSession& operator=(WorldSession const& right) = delete;
};
+1
View File
@@ -116,6 +116,7 @@
#include "NeighborhoodMgr.h"
#include "PetBattleMgr.h"
#include "InitiativeManager.h"
#include "PerkProgramData.h"
#ifdef BUILD_PLAYERBOT
#include "Lifecycle/BotSpawner.h"