Procházet zdrojové kódy

Fixed a cashshop crash after reloaditemdb

Fixes #1234, thanks to @julia40124009.

Please note that it is currently not supported to resend the cashshop data to the players. It is only transmitted once during login as per request from the client.
Lemongrass3110 před 9 roky
rodič
revize
2170cfc01b
1 změnil soubory, kde provedl 6 přidání a 1 odebrání
  1. 6 1
      src/map/cashshop.c

+ 6 - 1
src/map/cashshop.c

@@ -188,9 +188,14 @@ bool cashshop_buylist( struct map_session_data* sd, uint32 kafrapoints, int n, u
 
 		ARR_FIND( 0, cash_shop_items[tab].count, j, nameid == cash_shop_items[tab].item[j]->nameid || nameid == itemdb_viewid(cash_shop_items[tab].item[j]->nameid) );
 
+		if( j == cash_shop_items[tab].count ){
+			clif_cashshop_result( sd, nameid, CASHSHOP_RESULT_ERROR_UNKONWN_ITEM );
+			return false;
+		}
+
 		nameid = *( item_list + i * 5 ) = cash_shop_items[tab].item[j]->nameid; //item_avail replacement
 
-		if( j == cash_shop_items[tab].count || !itemdb_exists( nameid ) ){
+		if( !itemdb_exists( nameid ) ){
 			clif_cashshop_result( sd, nameid, CASHSHOP_RESULT_ERROR_UNKONWN_ITEM );
 			return false;
 		}else if( !itemdb_isstackable( nameid ) && quantity > 1 ){