diff options
-rw-r--r-- | conf/atcommand_athena.conf | 3 | ||||
-rw-r--r-- | src/char_sql/int_auction.c | 32 | ||||
-rw-r--r-- | src/char_sql/int_auction.h | 8 | ||||
-rw-r--r-- | src/common/mmo.h | 16 | ||||
-rw-r--r-- | src/map/atcommand.c | 12 | ||||
-rw-r--r-- | src/map/clif.c | 18 | ||||
-rw-r--r-- | src/map/clif.h | 3 |
7 files changed, 92 insertions, 0 deletions
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 <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+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 @@ -8170,6 +8170,17 @@ int atcommand_feelreset(const int fd, struct map_session_data* sd, const char* c } /*========================================== + * 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 *------------------------------------------*/ int atcommand_ksprotection(const int fd, struct map_session_data *sd, const char *command, const char *message) @@ -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 @@ -11753,6 +11753,24 @@ void clif_parse_cashshop_buy(int fd, struct map_session_data *sd) } /*========================================== + * 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 *------------------------------------------*/ void clif_parse_ViewPlayerEquip(int fd, struct map_session_data* sd) 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_ */ |