diff options
author | zephyrus <zephyrus@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2008-03-05 17:09:47 +0000 |
---|---|---|
committer | zephyrus <zephyrus@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2008-03-05 17:09:47 +0000 |
commit | b81ff1c3772fddc5885042a29d8b8ece39a4629a (patch) | |
tree | 055aa194633551bb98dbfc83352079a3f4512816 /src/map/intif.c | |
parent | 0a21b3250da89a79769f40ad8244de7898e549fe (diff) | |
download | hercules-b81ff1c3772fddc5885042a29d8b8ece39a4629a.tar.gz hercules-b81ff1c3772fddc5885042a29d8b8ece39a4629a.tar.bz2 hercules-b81ff1c3772fddc5885042a29d8b8ece39a4629a.tar.xz hercules-b81ff1c3772fddc5885042a29d8b8ece39a4629a.zip |
- Merged Auction Search and Register. It seen to work fine, so you can test those.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12301 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/intif.c')
-rw-r--r-- | src/map/intif.c | 56 |
1 files changed, 54 insertions, 2 deletions
diff --git a/src/map/intif.c b/src/map/intif.c index b15987018..fe73d46bb 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -1671,6 +1671,57 @@ static void intif_parse_Mail_new(int fd) clif_Mail_new(sd->fd, mail_id, sender_name, title); } +/*========================================== + * AUCTION SYSTEM + * By Zephyrus + *==========================================*/ +int intif_Auction_requestlist(int account_id, short type, int price, const char* searchtext) +{ + int len = NAME_LENGTH + 14; + + if( CheckForCharServer() ) + return 0; + + WFIFOHEAD(inter_fd,len); + WFIFOW(inter_fd,0) = 0x3050; + WFIFOW(inter_fd,2) = len; + WFIFOL(inter_fd,4) = account_id; + WFIFOW(inter_fd,8) = type; + WFIFOL(inter_fd,10) = price; + memcpy(WFIFOP(inter_fd,14), searchtext, NAME_LENGTH); + WFIFOSET(inter_fd,len); + + return 0; +} + +static void intif_parse_Auction_results(int fd) +{ + struct map_session_data *sd = map_id2sd(RFIFOL(fd,4)); + short count = (RFIFOW(fd,2) - 8) / sizeof(struct auction_data); + + if( sd == NULL ) + return; + + clif_Auction_results(sd, count, (char *)RFIFOP(fd,8)); +} + +int intif_Auction_register(int account_id, struct auction_data *auction) +{ + int len = sizeof(struct auction_data) + 8; + + if( CheckForCharServer() ) + return 0; + + WFIFOHEAD(inter_fd,len); + WFIFOW(inter_fd,0) = 0x3051; + WFIFOW(inter_fd,2) = len; + WFIFOL(inter_fd,4) = account_id; + memcpy(WFIFOP(inter_fd,8), auction, sizeof(struct auction_data)); + WFIFOSET(inter_fd,len); + + return 0; +} + #endif //----------------------------------------------------------------- @@ -1741,16 +1792,17 @@ int intif_parse(int fd) case 0x3841: intif_parse_GuildCastleDataSave(fd); break; case 0x3842: intif_parse_GuildCastleAllDataLoad(fd); break; case 0x3843: intif_parse_GuildMasterChanged(fd); break; -// Mail System #ifndef TXT_ONLY +// Mail System case 0x3848: intif_parse_Mail_inboxreceived(fd); break; case 0x3849: intif_parse_Mail_new(fd); break; case 0x384a: intif_parse_Mail_getattach(fd); break; case 0x384b: intif_parse_Mail_delete(fd); break; case 0x384c: intif_parse_Mail_return(fd); break; case 0x384d: intif_parse_Mail_send(fd); break; +// Auction System + case 0x3850: intif_parse_Auction_results(fd); break; #endif -// End of Mail System case 0x3880: intif_parse_CreatePet(fd); break; case 0x3881: intif_parse_RecvPetData(fd); break; case 0x3882: intif_parse_SavePetOk(fd); break; |