Loading...   

  • Created By Uleat On: 11:44 AM September 08, 2014
  • Link

 common/emu_oplist.h    |  2 ++
 zone/client.cpp        | 36 ++++++++++++++++++++++++++++++++----
 zone/client_packet.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++
 zone/client_packet.h   |  6 ++++++
 4 files changed, 83 insertions(+), 4 deletions(-)

diff --git a/common/emu_oplist.h b/common/emu_oplist.h
index c1ceb3c..6b5c6fc 100644
--- a/common/emu_oplist.h
+++ b/common/emu_oplist.h
@@ -481,6 +481,8 @@ N(OP_DzAddPlayer),
 N(OP_DzRemovePlayer),
 N(OP_DzSwapPlayer),
 N(OP_DzMakeLeader),
+N(OP_DzInviteRaid),
+N(OP_DzInviteTask),
 N(OP_DzJoinExpeditionConfirm),
 N(OP_DzJoinExpeditionReply),
 N(OP_DzExpeditionInfo),
diff --git a/zone/client.cpp b/zone/client.cpp
index 8340dde..e6cb126 100644
--- a/zone/client.cpp
+++ b/zone/client.cpp
@@ -6117,9 +6117,37 @@ void Client::CheckEmoteHail(Mob *target, const char* message)
 
 void Client::MarkSingleCompassLoc(float in_x, float in_y, float in_z, uint8 count)
 {
+	/*
+		NOTES:
+
+		Not sure why outapp2 requires the size of EI_S..sending outapp1 will pop up dz window and assign EI_S info to fields
+
+		Use:
+		- ensure keyring contains ID# 41000 - Brotherhood key
+		- #zone to everfrost
+		- with #gm on, /tar Qileour and #summon (only quest to call this function - Qileour_Bahiael.pl)
+		- say 'interested'
+		- window pops up - nothing is coded to process server-side
+
+		All of the DZWindow buttons have handlers (currently, 'Leader Options' is red and shows no options)
+
+		I added serverops 'OP_DzInviteRaid' and 'OP_InviteTask' because of the buttons on the DZWindow
+
+		They may not be identified or exist in the client. It could be the 2 new fields in later EI_S structs
+	*/
+	
+	EQApplicationPacket* outapp1 = new EQApplicationPacket(OP_DzExpeditionInfo, sizeof(ExpeditionInfo_Struct));
+	ExpeditionInfo_Struct *eis = (ExpeditionInfo_Struct*)outapp1->pBuffer;
+
+	strcpy(eis->expedition_name, "Expedition Info Test Entry");
+	strcpy(eis->leader_name, this->GetName());
+	eis->max_players = 54;
 
-	EQApplicationPacket* outapp = new EQApplicationPacket(OP_DzCompass, sizeof(ExpeditionInfo_Struct) + sizeof(ExpeditionCompassEntry_Struct) * count);
-	ExpeditionCompass_Struct *ecs = (ExpeditionCompass_Struct*)outapp->pBuffer;
+	FastQueuePacket(&outapp1);
+	safe_delete(outapp1);
+
+	EQApplicationPacket* outapp2 = new EQApplicationPacket(OP_DzCompass, sizeof(ExpeditionInfo_Struct) + sizeof(ExpeditionCompassEntry_Struct) * count);
+	ExpeditionCompass_Struct *ecs = (ExpeditionCompass_Struct*)outapp2->pBuffer;
 	//ecs->clientid = GetID();
 	ecs->count = count;
 
@@ -6129,8 +6157,8 @@ void Client::MarkSingleCompassLoc(float in_x, float in_y, float in_z, uint8 coun
 		ecs->entries[0].z = in_z;
 	}
 
-	FastQueuePacket(&outapp);
-	safe_delete(outapp);
+	FastQueuePacket(&outapp2);
+	safe_delete(outapp2);
 }
 
 void Client::SendZonePoints()
diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp
index 9d7c9e0..608d687 100644
--- a/zone/client_packet.cpp
+++ b/zone/client_packet.cpp
@@ -390,6 +390,12 @@ void MapOpcodes() {
 	ConnectedOpcodes[OP_OpenInventory] = &Client::Handle_OP_OpenInventory;
 	ConnectedOpcodes[OP_OpenContainer] = &Client::Handle_OP_OpenContainer;
 	ConnectedOpcodes[OP_ClientTimeStamp] = &Client::Handle_OP_ClientTimeStamp;
+	ConnectedOpcodes[OP_DzQuit] = &Client::Handle_OP_DzQuit;
+	ConnectedOpcodes[OP_DzAddPlayer] = &Client::Handle_OP_DzAddPlayer;
+	ConnectedOpcodes[OP_DzRemovePlayer] = &Client::Handle_OP_DzRemovePlayer;
+	ConnectedOpcodes[OP_DzMakeLeader] = &Client::Handle_OP_DzMakeLeader;
+	ConnectedOpcodes[OP_DzInviteRaid] = &Client::Handle_OP_DzInviteRaid;
+	ConnectedOpcodes[OP_DzInviteTask] = &Client::Handle_OP_DzInviteTask;
 }
 
 void ClearMappedOpcode(EmuOpcode op) {
@@ -14063,3 +14069,40 @@ void Client::Handle_OP_OpenContainer(const EQApplicationPacket *app) {
 void Client::Handle_OP_ClientTimeStamp(const EQApplicationPacket *app) {
 	// handle as needed or ignore like we have been doing...
 }
+
+void Client::Handle_OP_DzQuit(const EQApplicationPacket *app) {
+	// packet size: 8
+	// needs a return to quit
+
+	this->Message(15, "Client::Handle_OP_DzQuit() - Client version: %i, packet size: %i", this->ClientVersion, app->size);
+}
+
+void Client::Handle_OP_DzAddPlayer(const EQApplicationPacket *app) {
+	// packet size: 72
+	
+	this->Message(15, "Client::Handle_OP_DzAddPlayer() - Client version: %i, packet size: %i", this->ClientVersion, app->size);
+}
+
+void Client::Handle_OP_DzRemovePlayer(const EQApplicationPacket *app) {
+	// packet size: ? - grayed out
+
+	this->Message(15, "Client::Handle_OP_DzRemovePlayer() - Client version: %i, packet size: %i", this->ClientVersion, app->size);
+}
+
+void Client::Handle_OP_DzMakeLeader(const EQApplicationPacket *app) {
+	// packet size: ? - grayed out
+
+	this->Message(15, "Client::Handle_OP_DzMakeLeader() - Client version: %i, packet size: %i", this->ClientVersion, app->size);
+}
+
+void Client::Handle_OP_DzInviteRaid(const EQApplicationPacket *app) {
+	// packet size: ? - untested
+
+	this->Message(15, "Client::Handle_OP_DzInviteRaid() - Client version: %i, packet size: %i", this->ClientVersion, app->size);
+}
+
+void Client::Handle_OP_DzInviteTask(const EQApplicationPacket *app) {
+	// packet size: ? - untested
+
+	this->Message(15, "Client::Handle_OP_DzInviteTask() - Client version: %i, packet size: %i", this->ClientVersion, app->size);
+}
diff --git a/zone/client_packet.h b/zone/client_packet.h
index 424a8f7..3cca2a6 100644
--- a/zone/client_packet.h
+++ b/zone/client_packet.h
@@ -290,3 +290,9 @@
 	void Handle_OP_OpenInventory(const EQApplicationPacket *app);
 	void Handle_OP_OpenContainer(const EQApplicationPacket *app);
 	void Handle_OP_ClientTimeStamp(const EQApplicationPacket *app);
+	void Handle_OP_DzQuit(const EQApplicationPacket *app);
+	void Handle_OP_DzAddPlayer(const EQApplicationPacket *app);
+	void Handle_OP_DzRemovePlayer(const EQApplicationPacket *app);
+	void Handle_OP_DzMakeLeader(const EQApplicationPacket *app);
+	void Handle_OP_DzInviteRaid(const EQApplicationPacket *app);
+	void Handle_OP_DzInviteTask(const EQApplicationPacket *app);

Raw Paste Data