ソースを参照

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 9 年 前
コミット
2170cfc01b
1 ファイル変更6 行追加1 行削除
  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 ){