From c14faa2c92a458259abfa14a71e7c05bbdc08027 Mon Sep 17 00:00:00 2001 From: zephyrus Date: Fri, 29 Feb 2008 23:10:29 +0000 Subject: - Starting preparatives for Auctions System. - Added the @auction command to open the auctions. Just to start working on it and if someone wants to help. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12270 54d463be-8e91-2dee-dedb-b68131a5f0ec --- conf/atcommand_athena.conf | 3 +++ src/char_sql/int_auction.c | 32 ++++++++++++++++++++++++++++++++ src/char_sql/int_auction.h | 8 ++++++++ src/common/mmo.h | 16 ++++++++++++++++ src/map/atcommand.c | 12 ++++++++++++ src/map/clif.c | 18 ++++++++++++++++++ src/map/clif.h | 3 +++ 7 files changed, 92 insertions(+) create mode 100644 src/char_sql/int_auction.c create mode 100644 src/char_sql/int_auction.h diff --git a/conf/atcommand_athena.conf b/conf/atcommand_athena.conf index 933ac35bd..17b58159b 100644 --- a/conf/atcommand_athena.conf +++ b/conf/atcommand_athena.conf @@ -104,6 +104,9 @@ storage: 1 // Opens your mailbox. mail: 1 +// Opens auctions window. +auctions: 1 + // Locate someone on a map, returns your coordinates if the person isn't on. where: 1 diff --git a/src/char_sql/int_auction.c b/src/char_sql/int_auction.c new file mode 100644 index 000000000..a3213d647 --- /dev/null +++ b/src/char_sql/int_auction.c @@ -0,0 +1,32 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#include "../common/mmo.h" +#include "../common/malloc.h" +#include "../common/db.h" +#include "../common/showmsg.h" +#include "../common/socket.h" +#include "../common/strlib.h" +#include "../common/sql.h" +#include "char.h" +#include "inter.h" + +#include +#include +#include + +static DBMap* auction_db = NULL; // int auction_id -> struct auction* + +int inter_auction_sql_init(void) +{ + auction_db = idb_alloc(DB_OPT_RELEASE_DATA); + + return 0; +} + +void inter_auction_sql_final(void) +{ + auction_db->destroy(auction_db,NULL); + + return; +} diff --git a/src/char_sql/int_auction.h b/src/char_sql/int_auction.h new file mode 100644 index 000000000..061f0855d --- /dev/null +++ b/src/char_sql/int_auction.h @@ -0,0 +1,8 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#ifndef _INT_AUCTION_SQL_H_ +#define _INT_AUCTION_SQL_H_ + + +#endif /* _INT_AUCTION_SQL_H_ */ diff --git a/src/common/mmo.h b/src/common/mmo.h index ead8c8379..dc5931166 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -272,6 +272,22 @@ struct mail_data { struct mail_message msg[MAIL_MAX_INBOX]; }; +struct auction_data { + unsigned int auction_id; + int seller_id; + char seller_name[NAME_LENGTH]; + int buyer_id; + char buyer_name[NAME_LENGTH]; + + struct item item; + + unsigned short hours; + unsigned int price, buynow; + unsigned int timestamp; + + bool changed; // To know if data have been changed for save +}; + struct registry { int global_num; struct global_reg global[GLOBAL_REG_NUM]; diff --git a/src/map/atcommand.c b/src/map/atcommand.c index f2947372b..e32f288ce 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -8169,6 +8169,17 @@ int atcommand_feelreset(const int fd, struct map_session_data* sd, const char* c return 0; } +/*========================================== + * AUCTION SYSTEM + *------------------------------------------*/ +int atcommand_auction(const int fd, struct map_session_data *sd, const char *command, const char *message) +{ + nullpo_retr(0,sd); + + clif_Auction_openwindow(sd); + return 0; +} + /*========================================== * Kill Steal Protection *------------------------------------------*/ @@ -8509,6 +8520,7 @@ AtCommandInfo atcommand_info[] = { { "homshuffle", 60, atcommand_homshuffle }, { "showmobs", 10, atcommand_showmobs }, { "feelreset", 10, atcommand_feelreset }, + { "auction", 60, atcommand_auction }, { "mail", 1, atcommand_mail }, { "noks", 0, atcommand_ksprotection }, { "allowks", 6, atcommand_allowks }, diff --git a/src/map/clif.c b/src/map/clif.c index 4ce9ff3c4..3378d785c 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -11752,6 +11752,24 @@ void clif_parse_cashshop_buy(int fd, struct map_session_data *sd) WFIFOSET(fd,12); } +/*========================================== + * AUCTIONS SYSTEM + *==========================================*/ +void clif_Auction_openwindow(struct map_session_data *sd) +{ + int fd = sd->fd; + + WFIFOHEAD(fd,12); + WFIFOW(fd,0) = 0x25f; + WFIFOL(fd,2) = 0; + WFIFOB(fd,6) = 0xb6; + WFIFOB(fd,7) = 0x00; + WFIFOB(fd,8) = 0xa6; + WFIFOB(fd,9) = 0xde; + WFIFOW(fd,10) = 0; + WFIFOSET(fd,12); +} + /*========================================== * Requesting equip of a player *------------------------------------------*/ diff --git a/src/map/clif.h b/src/map/clif.h index 1aa5edcf6..51dc0c417 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -413,4 +413,7 @@ void clif_Mail_getattachment(int fd, uint8 flag); void clif_cashshop_show(struct map_session_data *sd, struct npc_data *nd); +// AUCTION SYSTEM +void clif_Auction_openwindow(struct map_session_data *sd); + #endif /* _CLIF_H_ */ -- cgit v1.2.3-70-g09d2