In Game Message System
The idea for this is to make a system almost like in-game email. It should be pretty simple and work similar to petitions. Basically, a player would run a command and include a character name to send the message to. Then, the message would be stored in a table. And, when the other character that the message was sent to logs in, they would get a chat line saying that they have unread messages.
The only possible downside to this is that they would have to be aware that their messages could potentially be read by the server admin(s). Unless they were able to be encrypted in some way. An example of this might be: Playera sends a message: #message playerb Hey man, we are raiding tonight, so let me know when you get on. Playerb logs in and sees: You have 1 unread message. They then type: #listmessages (or maybe #lm for an alias) Which then lists: Message 1 from Playera Message 2 from Playerc Then, they type: #viewmessage 1 (or #vm 1 for alias) And it displays the message from Playera: Playera wrote, "Hey man, we are raiding tonight, so let me know when you get on." And last, they type: #delmessage 1 (or #dm 1 for alias) Another option for deleting messages could be "#delmessage all" to delete all messages. I imagine that is something any admin would require lol. I don't think this would be too hard to work out the code for. I will try to work on it some if I get time. I am pretty sure people would like it. Any thoughts? |
Why not just implement mail? I'm sure Derision could be convinced to find the opcodes if asked nicely.
|
Quote:
Code:
Please wait until we reconnect you with the Universal Chat service. Your request has not been sent. So it would probably take quite a while to figure out how to get it to work. I'm insanely busy at work for the next few weeks, but I'll take a look at it if I get some free time. |
I wasn't suggesting you write the whole system, just grab the opcodes for it ;)
Though, we do have a mail server option in our config file. I wonder if somebody already thought ahead and partially implemented that. |
This is what happens with OP_EnterWorld:
world/client.cpp Code:
EQApplicationPacket *outapp2 = new EQApplicationPacket(OP_SetChatServer); common/EQEmuConfig.h Code:
// Mail Googling around, I found this old thread: Quote:
Quote:
Quote:
Code:
#mail opcodes |
The client tries to initiate a new connection to the UCS that we never complete too *I think*. When I was fiddling with packet viewing I noticed that after the UCS packets were sent to the client the client kept sending a connect request to the server every couple seconds that was never responded to.
|
Not sure what client this is for, but here's some old, commented out code referring to the chat system:
Code:
// @bp This is the chat server Code:
C:\>nslookup 64.37.148.34 common/EQStream.cpp Code:
void EQStream::SetStreamType(EQStreamType type) Code:
#define MT_Chat1Echo 315 |
Sounds like we would need to have a completely separate application built and running to handle mail. I never played when they had mail on Live, so I don't know anything about it. Either way, I can probably get the message system I described running pretty quickly and easily. It would probably work well enough until the real mail system can be done. Unless someone thinks that it won't be long to get the mail system working.
|
I'm betting this system could also be used to create /tell queing like on Live for when a person was zoning. Sounds like what you're proposng Trev and what Derision and KLS are saying is happening with the code is similar to what happened on Live when you sent someone a tell while they were zoning. The system would just save the messages up and then they'd be displayed to you when you finished zoning.
|
After spending a couple of days looking at this and almost giving it up as 'too hard', I finally made a bit of progress:
http://www.rama.demon.co.uk/eqemumail.jpg All I have right now is a little 'mailserver' app which listens on the mailserver port specified in eqemu_config.xml and sends hardcoded responses to the client requests as a 'proof of concept', so plenty of work left to do to turn it into a working mail system. |
Mail is in Rev247 for those that can compile.
I've started work on chat channels, as it uses the same opcodes as mail. I have the basics working (create, join, leave, and of course talk in a channel). Still need to implement the moderator stuff. |
Thanks for the effort Derision!
|
This is awesome!!! :) Hey Derision, previously we have relied on Doodman to for connectivity between EQEMU and IRC . Do you have any ideas so that we can work around this?
|
Currently using 245, downloaded mail.sql and sourced into db.
Included following rules into peq/tables/rules_values 1 Mail:EnableMailSystem 1 1 Mail:ExpireTrash 0 1 Mail:ExpireRead 31536000 1 Mail:ExpireUnread 31536000 # [Debug] [RULES__CHANGE] Set rule World:ExemptAccountLimitStatus to value -1 [Debug] [RULES__ERROR] Unable to find rule 'Mail:EnableMailSystem' [Debug] [RULES__ERROR] Unable to interpret rule record for Mail:EnableMailSystem [Debug] [RULES__ERROR] Unable to find rule 'Mail:ExpireTrash' [Debug] [RULES__ERROR] Unable to interpret rule record for Mail:ExpireTrash [Debug] [RULES__ERROR] Unable to find rule 'Mail:ExpireRead' [Debug] [RULES__ERROR] Unable to interpret rule record for Mail:ExpireRead [Debug] [RULES__ERROR] Unable to find rule 'Mail:ExpireUnread' [Debug] [RULES__ERROR] Unable to interpret rule record for Mail:ExpireUnread [Debug] [WORLD__INIT] Loaded default rule set 'default' # Everything else loads without errors, any ideas? |
Mail was implemented in Revision 247, for which there are no Windows executables available for download yet.
And Richardo, I'll look into an IRC interface to chatserver. I don't know a lot about IRC, but I'll have a look at the RFCs and setup a private IRC server to play with. One thing I am unsure about is authentication, i.e. you don't want a random person logging into a server chat channel from IRC and being able to spam it. |
All times are GMT -4. The time now is 06:32 AM. |
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.