mirror of
https://github.com/EQEmu/Server.git
synced 2026-08-30 17:58:16 +00:00
[Feature] Add Parcel Feature for RoF2 Clients (#4198)
* Add Parcel Feature Add the parcel system for RoF2 client * Fixed a duplicate define * Reformat reformating and review changes * Further Formatting * Memory Mgmt Updates Refactored to using unique_ptr/make_unique/etc to avoid manual memory mgmt. Other format changes * Refactor db structure Refactor for db structure of parcels to character_parcels Removal of parcel_merchants Addition of npc_types.is_parcel_merchant Cleanup as a result * Refactor to use item id 99990 for money transfers. Removed the money string function as a result, though simplified the messaging related to money. Other updates based on feedback. * Move prune routine out of scheduler and into a world process. Removed RuleI from #define * Update * Update database.cpp * Update database_update_manifest.cpp * Update main.cpp * Update client_process.cpp * Update parcels.cpp * Remove parcel merchant content to optional sql instead of manifest. --------- Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
+39
-1
@@ -68,6 +68,7 @@ namespace EQ
|
||||
#include "cheat_manager.h"
|
||||
#include "../common/events/player_events.h"
|
||||
#include "../common/data_verification.h"
|
||||
#include "../common/repositories/character_parcels_repository.h"
|
||||
|
||||
#ifdef _WINDOWS
|
||||
// since windows defines these within windef.h (which windows.h include)
|
||||
@@ -323,8 +324,36 @@ public:
|
||||
void ReturnTraderReq(const EQApplicationPacket* app,int16 traderitemcharges, uint32 itemid = 0);
|
||||
void TradeRequestFailed(const EQApplicationPacket* app);
|
||||
void BuyTraderItem(TraderBuy_Struct* tbs,Client* trader,const EQApplicationPacket* app);
|
||||
void FinishTrade(Mob* with, bool finalizer = false, void* event_entry = nullptr, std::list<void*>* event_details = nullptr);
|
||||
void FinishTrade(
|
||||
Mob *with,
|
||||
bool finalizer = false,
|
||||
void *event_entry = nullptr,
|
||||
std::list<void *> *event_details = nullptr
|
||||
);
|
||||
void SendZonePoints();
|
||||
void SendBulkParcels();
|
||||
void DoParcelCancel();
|
||||
void DoParcelSend(const Parcel_Struct *parcel_in);
|
||||
void DoParcelRetrieve(const ParcelRetrieve_Struct &parcel_in);
|
||||
void SendParcel(const Parcel_Struct &parcel);
|
||||
void SendParcelStatus();
|
||||
void SendParcelAck();
|
||||
void SendParcelRetrieveAck();
|
||||
void SendParcelDelete(const ParcelRetrieve_Struct &parcel_in);
|
||||
void SendParcelDeliveryToWorld(const Parcel_Struct &parcel);
|
||||
void SetParcelEnabled(bool status) { m_parcel_enabled = status; }
|
||||
bool GetParcelEnabled() { return m_parcel_enabled; }
|
||||
void SetParcelCount(uint32 count) { m_parcel_count = count; }
|
||||
int32 GetParcelCount() { return m_parcel_count; }
|
||||
bool GetEngagedWithParcelMerchant() { return m_parcel_merchant_engaged; }
|
||||
void SetEngagedWithParcelMerchant(bool status) { m_parcel_merchant_engaged = status; }
|
||||
Timer *GetParcelTimer() { return &parcel_timer; }
|
||||
bool DeleteParcel(uint32 parcel_id);
|
||||
void AddParcel(CharacterParcelsRepository::CharacterParcels &parcel);
|
||||
void LoadParcels();
|
||||
std::map<uint32, CharacterParcelsRepository::CharacterParcels> GetParcels() { return m_parcels; }
|
||||
int32 FindNextFreeParcelSlot(uint32 char_id);
|
||||
void SendParcelIconStatus();
|
||||
|
||||
void SendBuyerResults(char *SearchQuery, uint32 SearchID);
|
||||
void ShowBuyLines(const EQApplicationPacket *app);
|
||||
@@ -1857,6 +1886,14 @@ private:
|
||||
bool Trader;
|
||||
bool Buyer;
|
||||
std::string BuyerWelcomeMessage;
|
||||
int32 m_parcel_platinum;
|
||||
int32 m_parcel_gold;
|
||||
int32 m_parcel_silver;
|
||||
int32 m_parcel_copper;
|
||||
int32 m_parcel_count;
|
||||
bool m_parcel_enabled;
|
||||
bool m_parcel_merchant_engaged;
|
||||
std::map<uint32, CharacterParcelsRepository::CharacterParcels> m_parcels{};
|
||||
int Haste; //precalced value
|
||||
uint32 tmSitting; // time stamp started sitting, used for HP regen bonus added on MAY 5, 2004
|
||||
|
||||
@@ -1955,6 +1992,7 @@ private:
|
||||
Timer dynamiczone_removal_timer;
|
||||
Timer task_request_timer;
|
||||
Timer pick_lock_timer;
|
||||
Timer parcel_timer; //Used to limit the number of parcels to one every 30 seconds (default). Changable via rule.
|
||||
|
||||
glm::vec3 m_Proximity;
|
||||
glm::vec4 last_position_before_bulk_update;
|
||||
|
||||
Reference in New Issue
Block a user