Sapphire icon indicating copy to clipboard operation
Sapphire copied to clipboard

Moogle Post/Mail Implementation

Open NotAdam opened this issue 8 years ago • 2 comments

Putting mail implementation details here so it's not lost in conversation

database structure

CREATE TABLE `mooglemail` (
  `letter_id` int(11) NOT NULL DEFAULT '0',
  `mail_body` varchar(200) COLLATE latin1_general_ci NOT NULL,
  `mail_author` varchar(30) COLLATE latin1_general_ci NOT NULL,
  `gil` int(11) NULL DEFAULT '0',
  `attachment_0` int(11) NULL DEFAULT '0',
  `attachment_1` int(11) NULL DEFAULT '0',
  `attachment_2` int(11) NULL DEFAULT '0',
  `attachment_3` int(11) NULL DEFAULT '0',
  `attachment_4` int(11) NULL DEFAULT '0',
  `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`letter_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

CREATE TABLE `mooglemailattachment` (
  `attachment_id` int(11) NOT NULL AUTO_INCREMENT,
  `item_id` int(11) NOT NULL,
  `quantity` int(11) NOT NULL,
  `catalog_id` int(11) NOT NULL,
  `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`attachment_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

opcodes

CD = MailDeleteRequest
CE = SendMoogleMailLetter
DE = ReqMoogleMailList
DF = ReqMoogleMailLetter
D1 = MailRequestRewardDelivery
E0 = MailDeliveredNotification

Structures

MailDeleteRequest

todo

SendMoogleMailLetter

struct _mail {
    uint unknown_00[10];

    struct _item {
        uint itemId;
        uint quantity;
        uint catalogId;
    } item[5];
    
    uint unknown_64;

    uint gil;
    uint unknown_6C;
    char message[200];
} mail;

ReqMoogleMailList

todo

ReqMoogleMailLetter

todo

MailRequestRewardDelivery

todo

MailDeliveredNotification

struct _mail_notification {
    byte unknown_00[36];
    short unreadCount;
    short flags; // I think...
} notification;

NotAdam avatar Nov 22 '17 14:11 NotAdam

Just wanted to point out that opcodes listed here no longer apply.

SapphireMordred avatar Jul 03 '18 12:07 SapphireMordred

Some updated opcodes for this seem to be

F9 = MailDeleteRequest
FA = ReqMoogleMailList
FB = ReqMoogleMailLetter

BiscuitUmU avatar Jul 08 '18 21:07 BiscuitUmU