diff options
author | shennetsind <ind@henn.et> | 2013-10-10 18:59:10 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-10-10 18:59:10 -0300 |
commit | 646f7e2f4ea4bd6b07e66d2949817ebdc18f3484 (patch) | |
tree | b15f69a6934b1148faf398e8b19b710024078b09 /src | |
parent | a2e01e40c9e60b8b2d75e4faf41d80a7041e8f93 (diff) | |
download | hercules-646f7e2f4ea4bd6b07e66d2949817ebdc18f3484.tar.gz hercules-646f7e2f4ea4bd6b07e66d2949817ebdc18f3484.tar.bz2 hercules-646f7e2f4ea4bd6b07e66d2949817ebdc18f3484.tar.xz hercules-646f7e2f4ea4bd6b07e66d2949817ebdc18f3484.zip |
Added code to disable auction for clients it is no longer stable
Regarding http://hercules.ws/board/topic/414-auction-feature-all-screwed-up
Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src')
-rw-r--r-- | src/map/atcommand.c | 8 | ||||
-rw-r--r-- | src/map/battle.c | 10 | ||||
-rw-r--r-- | src/map/battle.h | 1 | ||||
-rw-r--r-- | src/map/clif.c | 16 |
4 files changed, 33 insertions, 2 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 4933256a2..10c96e317 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -7956,10 +7956,14 @@ ACMD(feelreset) /*========================================== * AUCTION SYSTEM *------------------------------------------*/ -ACMD(auction) -{ +ACMD(auction) { nullpo_ret(sd); + if( !battle_config.feature_auction ) { + clif->colormes(sd->fd,COLOR_RED,msg_txt(1484)); + return false; + } + clif->auction_openwindow(sd); return true; diff --git a/src/map/battle.c b/src/map/battle.c index a0e4e7ebc..91cb98d14 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -6475,6 +6475,8 @@ static const struct _battle_data { { "snovice_call_type", &battle_config.snovice_call_type, 0, 0, 1, }, { "guild_notice_changemap", &battle_config.guild_notice_changemap, 2, 0, 2, }, { "feature.banking", &battle_config.feature_banking, 1, 0, 1, }, + { "feature.auction", &battle_config.feature_auction, 0, 0, 2, }, + }; #ifndef STATS_OPT_OUT @@ -6705,6 +6707,14 @@ void battle_adjust_conf(void) { } #endif +#if PACKETVER > 20120000 /* exact date not known */ + if( battle_config.feature_auction == 1 ) { + ShowWarning("conf/battle/feature.conf:feature.auction is enabled but it is not stable on PACKETVER "EXPAND_AND_QUOTE(PACKETVER)", disabling...\n"); + ShowWarning("conf/battle/feature.conf:feature.auction change value to '2' to silence this warning and maintain it enabled\n"); + battle_config.feature_auction = 0; + } +#endif + #ifndef CELL_NOSTACK if (battle_config.cell_stack_limit != 1) diff --git a/src/map/battle.h b/src/map/battle.h index f1fa6ddc1..533fa40b0 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -462,6 +462,7 @@ struct Battle_Config { int guild_notice_changemap; int feature_banking; + int feature_auction; } battle_config; // Dammage delayed info diff --git a/src/map/clif.c b/src/map/clif.c index 0c21c796c..d1f416146 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -14988,6 +14988,9 @@ void clif_Auction_openwindow(struct map_session_data *sd) if( sd->state.storage_flag || sd->state.vending || sd->state.buyingstore || sd->state.trading ) return; + if( !battle_config.feature_auction ) + return; + WFIFOHEAD(fd,packet_len(0x25f)); WFIFOW(fd,0) = 0x25f; WFIFOL(fd,2) = 0; @@ -15077,6 +15080,9 @@ void clif_parse_Auction_setitem(int fd, struct map_session_data *sd) int amount = RFIFOL(fd,4); // Always 1 struct item_data *item; + if( !battle_config.feature_auction ) + return; + if( sd->auction.amount > 0 ) sd->auction.amount = 0; @@ -15152,6 +15158,9 @@ void clif_parse_Auction_register(int fd, struct map_session_data *sd) struct auction_data auction; struct item_data *item; + if( !battle_config.feature_auction ) + return; + auction.price = RFIFOL(fd,2); auction.buynow = RFIFOL(fd,6); auction.hours = RFIFOW(fd,10); @@ -15283,6 +15292,9 @@ void clif_parse_Auction_search(int fd, struct map_session_data* sd) short type = RFIFOW(fd,2), page = RFIFOW(fd,32); int price = RFIFOL(fd,4); // FIXME: bug #5071 + if( !battle_config.feature_auction ) + return; + clif->pAuction_cancelreg(fd, sd); safestrncpy(search_text, (char*)RFIFOP(fd,8), sizeof(search_text)); @@ -15298,6 +15310,10 @@ void clif_parse_Auction_search(int fd, struct map_session_data* sd) void clif_parse_Auction_buysell(int fd, struct map_session_data* sd) { short type = RFIFOW(fd,2) + 6; + + if( !battle_config.feature_auction ) + return; + clif->pAuction_cancelreg(fd, sd); intif->Auction_requestlist(sd->status.char_id, type, 0, "", 1); |