mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 14:41:28 +00:00
[Feature] Add Parcel notification for online players when using the Quest API (#4418)
* Add parcel notification for online players when using the quest api for send_parcel * Compile fix fix for compile issues
This commit is contained in:
parent
5ef4612249
commit
a23ac4628f
@ -34,11 +34,14 @@
|
|||||||
#include "questmgr.h"
|
#include "questmgr.h"
|
||||||
#include "zone.h"
|
#include "zone.h"
|
||||||
#include "data_bucket.h"
|
#include "data_bucket.h"
|
||||||
|
#include "../common/events/player_event_logs.h"
|
||||||
|
#include "worldserver.h"
|
||||||
|
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
|
|
||||||
extern Zone *zone;
|
extern Zone *zone;
|
||||||
extern QueryServ *QServ;
|
extern QueryServ *QServ;
|
||||||
|
extern WorldServer worldserver;
|
||||||
|
|
||||||
#ifdef EMBPERL_XS_CLASSES
|
#ifdef EMBPERL_XS_CLASSES
|
||||||
|
|
||||||
@ -5946,7 +5949,22 @@ bool Perl__send_parcel(perl::reference table_ref)
|
|||||||
e.note = note;
|
e.note = note;
|
||||||
e.sent_date = std::time(nullptr);
|
e.sent_date = std::time(nullptr);
|
||||||
|
|
||||||
return CharacterParcelsRepository::InsertOne(database, e).id;
|
auto out = CharacterParcelsRepository::InsertOne(database, e).id;
|
||||||
|
if (out) {
|
||||||
|
Parcel_Struct ps{};
|
||||||
|
ps.item_slot = e.slot_id;
|
||||||
|
strn0cpy(ps.send_to, name.c_str(), sizeof(ps.send_to));
|
||||||
|
|
||||||
|
std::unique_ptr<ServerPacket> server_packet(new ServerPacket(ServerOP_ParcelDelivery, sizeof(Parcel_Struct)));
|
||||||
|
auto data = (Parcel_Struct *) server_packet->pBuffer;
|
||||||
|
|
||||||
|
data->item_slot = ps.item_slot;
|
||||||
|
strn0cpy(data->send_to, ps.send_to, sizeof(data->send_to));
|
||||||
|
|
||||||
|
worldserver.SendPacket(server_packet.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
void perl_register_quest()
|
void perl_register_quest()
|
||||||
|
|||||||
@ -26,6 +26,8 @@
|
|||||||
#include "data_bucket.h"
|
#include "data_bucket.h"
|
||||||
#include "expedition.h"
|
#include "expedition.h"
|
||||||
#include "dialogue_window.h"
|
#include "dialogue_window.h"
|
||||||
|
#include "../common/events/player_event_logs.h"
|
||||||
|
#include "worldserver.h"
|
||||||
|
|
||||||
struct Events { };
|
struct Events { };
|
||||||
struct Factions { };
|
struct Factions { };
|
||||||
@ -57,6 +59,8 @@ extern std::map<std::string, Encounter *> lua_encounters;
|
|||||||
extern void MapOpcodes();
|
extern void MapOpcodes();
|
||||||
extern void ClearMappedOpcode(EmuOpcode op);
|
extern void ClearMappedOpcode(EmuOpcode op);
|
||||||
|
|
||||||
|
extern WorldServer worldserver;
|
||||||
|
|
||||||
void unregister_event(std::string package_name, std::string name, int evt);
|
void unregister_event(std::string package_name, std::string name, int evt);
|
||||||
|
|
||||||
void load_encounter(std::string name) {
|
void load_encounter(std::string name) {
|
||||||
@ -5577,7 +5581,22 @@ bool lua_send_parcel(luabind::object lua_table)
|
|||||||
e.note = note;
|
e.note = note;
|
||||||
e.sent_date = std::time(nullptr);
|
e.sent_date = std::time(nullptr);
|
||||||
|
|
||||||
return CharacterParcelsRepository::InsertOne(database, e).id;
|
auto out = CharacterParcelsRepository::InsertOne(database, e).id;
|
||||||
|
if (out) {
|
||||||
|
Parcel_Struct ps{};
|
||||||
|
ps.item_slot = e.slot_id;
|
||||||
|
strn0cpy(ps.send_to, name.c_str(), sizeof(ps.send_to));
|
||||||
|
|
||||||
|
std::unique_ptr<ServerPacket> server_packet(new ServerPacket(ServerOP_ParcelDelivery, sizeof(Parcel_Struct)));
|
||||||
|
auto data = (Parcel_Struct *) server_packet->pBuffer;
|
||||||
|
|
||||||
|
data->item_slot = ps.item_slot;
|
||||||
|
strn0cpy(data->send_to, ps.send_to, sizeof(data->send_to));
|
||||||
|
|
||||||
|
worldserver.SendPacket(server_packet.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 lua_get_zone_uptime()
|
uint32 lua_get_zone_uptime()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user