ArcEmu: Sendmailboxwindow()? - ArcEmu

Jump to content

Toggle shoutbox Lastest Announcements

dfighter  : (07 December 2014 - 12:06 PM) Arcemu is in hibernation mode, please read http://arcemu.org/fo...showtopic=26903
dfighter  : (01 January 2013 - 05:56 PM) Arcemu wishes you all a happy new year!
Hasbro  : (12 September 2012 - 10:01 AM) Please excuse our outage from the web! Our web host had a major malfunction!
dfighter  : (01 September 2012 - 04:05 PM) Since the spam bots just don't want to stop, I've enabled admin verification when registering.
dfighter  : (23 January 2012 - 09:56 PM) Please note that from now on you will need to confirm your email on the wiki in order to edit it!
Hasbro  : (31 December 2011 - 12:50 PM) Happy New Years all!
Navid  : (26 December 2011 - 04:09 AM) Merry Christmas !!!!!! Happy holidays all :)
WAmadeus  : (24 December 2011 - 03:54 PM) Merry Christmas to all!
dfighter  : (24 December 2011 - 11:05 AM) The Arcemu team wishes y'all a Merry Christmukkah!
Hasbro  : (05 October 2011 - 12:53 PM) Looking for web designers for upcoming web related project. If you're interested in designing user interfaces contact me
dfighter  : (02 September 2011 - 03:47 PM) So who here wants vehicles in Arcemu? :P http://arcemu.org/fo...showtopic=25440
Hasbro  : (14 August 2011 - 03:25 PM) Join us on irc, grab an irc client and connect to irc.freenode.net join channel #arcemu /server irc.freenode.net:6667 /join #arcemu
jackpoz  : (03 August 2011 - 05:33 AM) to all Lua Engine (old one) users: please check http://arcemu.org/fo...showtopic=25274
Hasbro  : (20 May 2011 - 05:27 PM) Looking for people experienced with CMake configuration and setup! Contact me asap
Hasbro  : (15 May 2011 - 05:03 PM) ArcEmu is recruiting C++ programmers, contact Hasbro if interested.
paroxysm  : (03 May 2011 - 06:26 PM) Updated luabridge gossip example to describe the whole gossip creation process rather than just how to create menu. Gossip tutorial
paroxysm  : (23 April 2011 - 11:35 AM) Lua writers can refer to the Luabridge Tutorials section in the Wiki to learn how to write gossip code correctly.
Hasbro  : (20 April 2011 - 05:22 PM) Thank you for your continuous contribution of bug reports, we are working on them.
Hasbro  : (17 April 2011 - 03:20 AM) Please consider donating to support our bills. Donations can be sent using PayPal to donations@arcemu.org - Thank you for your support.
paroxysm  : (10 April 2011 - 12:43 AM) Refer to the Luabridge Tutorials section in the Wiki to learn the new syntax of luabridge.
Resize Shouts Area

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Sendmailboxwindow()?

#1 User is offline   Wolferine 

  • Member
  • Pip
  • Group: Members
  • Posts: 19
  • Joined: 27-November 09

Posted 29 July 2011 - 08:41 AM

WorldPacket * Mailbox::BuildMailboxListingPacket()
{
	WorldPacket * data = new WorldPacket(SMSG_MAIL_LIST_RESULT, 500);
	MessageMap::iterator itr;
	uint32 realcount = 0;
	uint32 count = 0;
	uint32 t = (uint32)UNIXTIME;
	*data << uint32(0);	 // realcount - this can be used to tell the client we have more mail than that fits into this packet
	*data << uint8(0);	 // size placeholder

	for(itr = Messages.begin(); itr != Messages.end(); ++itr)
	{
		if(itr->second.expire_time && t > itr->second.expire_time)
			continue;	   // expired mail -> skip it

		if((uint32)UNIXTIME < itr->second.delivery_time)
			continue;		// undelivered

		if(count >= 50) //VLack: We could calculate message sizes instead of this, but the original code did a break at 50, so I won't fix this up if no one felt the need to do so before ;-)
		{
			++realcount;
			continue;
		}

		if(itr->second.AddMessageDataToPacket(*data))
		{
			++count;
			++realcount;
		}
	}

	data->put<uint32>(0, realcount); 
	data->put<uint8>(4, static_cast< uint8 >( count )); 

	// do cleanup on request mail
	CleanupExpiredMessages();
	return data;
}


I was wondering if it's possible for you guys to add SendMailWindow() to the Lua Engine, copy pasted the definition in C++ so you guys dont have to search for that anymore.

I'm sorry if I'm causing any trouble...
Thanks in advance once again!
0

#2 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 29 July 2011 - 10:15 PM

Well I've tried but the result is the same as with your other request

Index: src/arcemu-world/MailSystem.cpp
===================================================================
--- src/arcemu-world/MailSystem.cpp	(revision 4409)
+++ src/arcemu-world/MailSystem.cpp	(working copy)
@@ -816,9 +816,7 @@
 {
 	CHECK_INWORLD_RETURN
 
-	WorldPacket * data = _player->m_mailBox.BuildMailboxListingPacket();
-	SendPacket(data);
-	delete data;
+	_player->SendMailList();
 }
 
 void MailSystem::RemoveMessageIfDeleted(uint32 message_id, Player * plr)
Index: src/arcemu-world/Player.h
===================================================================
--- src/arcemu-world/Player.h	(revision 4409)
+++ src/arcemu-world/Player.h	(working copy)
@@ -1016,6 +1016,7 @@
 	void SendEquipmentSetList();
 	void SendEquipmentSetSaved( uint32 setID, uint32 setGUID );
 	void SendEquipmentSetUseResult( uint8 result );
+	void SendMailList();
 
 	void OutPacket( uint16 opcode, uint16 len, const void *data );
 	void SendPacket( WorldPacket *packet );
Index: src/arcemu-world/PlayerPacketWrapper.cpp
===================================================================
--- src/arcemu-world/PlayerPacketWrapper.cpp	(revision 4409)
+++ src/arcemu-world/PlayerPacketWrapper.cpp	(working copy)
@@ -818,4 +818,10 @@
 	m_session->SendPacket( &data );
 
 	LOG_DEBUG("SMSG_EQUIPMENT_SET_USE_RESULT sent.");
-}
\ No newline at end of file
+}
+
+void Player::SendMailList(){
+	WorldPacket *data = m_mailBox.BuildMailboxListingPacket();
+	m_session->SendPacket( data );
+	delete data;
+}
Index: src/scripts/src/LuaEngine/FunctionTables.h
===================================================================
--- src/scripts/src/LuaEngine/FunctionTables.h	(revision 4409)
+++ src/scripts/src/LuaEngine/FunctionTables.h	(working copy)
@@ -531,6 +531,7 @@
 	{ "CastSpellAoE", &luaUnit::CastSpellAoF },
 	{ "SetFlag", &luaUnit::SetFlag },
 	{ "SetSelectedGO", &luaUnit::SetSelectedGO },
+	{ "SendMailList", &luaUnit::SendMailList },
 	{ NULL, NULL },
 };
 
Index: src/scripts/src/LuaEngine/UnitFunctions.h
===================================================================
--- src/scripts/src/LuaEngine/UnitFunctions.h	(revision 4409)
+++ src/scripts/src/LuaEngine/UnitFunctions.h	(working copy)
@@ -5890,5 +5890,14 @@
 			lua_pushnil(L);
 		return 1;
 	}
+
+	int SendMailList( lua_State *L, Unit *ptr ){
+		TEST_PLAYER();
+
+		Player *p = TO< Player* >( ptr );
+		p->SendMailList();
+
+		return 0;
+	}
 }
 #endif 


Again I used my guard gossip as a vessel

function SWGuard_OnTalk( unit, event, player )
		unit:GossipCreateMenu( 1, player, 0 );
		unit:GossipMenuAddItem( 0, "text1", 1, 0 );
		unit:GossipMenuAddItem( 0, "text2", 2, 0 );
		unit:GossipSendMenu( player );

end


function SWGuard_OnSelect( unit, event, player, id, selection, code )
		if( selection == 1 )
		then
				unit:SendChatMessage( 12, 0, "whoe!" );
				player:SendMailList();

		elseif( selection == 2 )
		then
				unit:SendChatMessage( 12, 0, "yay!" );
		end

		player:GossipComplete();
end

RegisterUnitGossipEvent( 68, 1, "SWGuard_OnTalk" );
RegisterUnitGossipEvent( 68, 2, "SWGuard_OnSelect" );


....and again it doesn't work because the client didn't ask for it so it ignores it!
"The demand for free goods is infinite."
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users