Jump to content


Please be aware that the Forum Rules also apply to the Bug Tracker. "Bump" replies will be removed and the offending users will be given Warning Points.
We know it can be frustrating when something doesn't work properly, but please allow our devs to work on fixes without being harassed.

Issue information

  • #001651

Issue Confirmations

  • Yes (0)No (0)
Issue Locked 

Mail System Mms-bug

Posted by eAthena Bug Archive on 09 June 2008 - 12:17 PM


Mail system works perfectly with MMS(multi-map-server) setup except one thing: when you send mail from one map-server to another, you

1) do not receive a notification
2) gotta relogin to receive a new mail

Why the problem occurs:

1. In the map-server, the new mail retrieval (from SQL) occurs ONLY if "sd->mail.inbox.changed == true"

2. The only place where we make it "true" is here:
static void intif_parse_Mail_new(int fd)
sd->mail.inbox.changed = true;

3. It is the function that parses a "new mail" notification from the char-server. So, our second problem is caused by the first one: once we receive notification, eA will know that we want to load a new mail from sql, not from internal map-server db.

1. Make char-server(not the map-server) send notifications:

Char server already sends notifications in all cases but the ordinary mail sending. So...

Find and ADD (char-server)
static void mapif_parse_Mail_send(int fd)
mapif_Mail_send(fd, &msg); // we send the "mail sent" notification to the sender
+ mapif_Mail_new(&msg); // we send the "new mail" notification to the receiver

2. Remove the notification sending from the map-server
Find and REMOVE (map-server)
static void intif_parse_Mail_send(int fd)

- if( (sd = map_charid2sd(msg.dest_id)) )
- {
- sd->mail.inbox.changed = true;
- clif_Mail_new(sd->fd, msg.id, msg.send_name, msg.title);
- }

Now char-server sends mail notifications, and everything works fine.

Hope to see it fixed, thx.

This post has been edited by Meyraw: Jun 9 2008, 10:18 AM

0 user(s) are reading this issue

0 members, 0 guests, 0 anonymous users