Run time error 4: "Array index out of bounds"
#1

Hello. I need some help with the House System.

Errors in the console:

[debug] Run time error 4: "Array index out of bounds"
[debug] Accessing element at index 15 past array upper bound 7
[debug] AMX backtrace:
[debug] #0 0003c160 in public LoadHouses () from IS.amx

Код:
forward LoadHouses( );
public LoadHouses( )
{
	new rows = cache_num_rows( );
 	if( rows )
  	{
   		new id, loaded, for_sale, label[ 5000 ];
		while( loaded < rows )
		{
  			id = cache_get_field_content_int( loaded, "ID" );
  			
	    	cache_get_field_content( loaded, "HouseName", HouseData[ id ][ Name ], .max_len = MAX_HOUSE_NAME );
		    cache_get_field_content( loaded, "HouseOwner", HouseData[ id ][ Owner ], .max_len = MAX_PLAYER_NAME );
		    cache_get_field_content( loaded, "HousePassword", HouseData[ id ][ Password ], .max_len = MAX_HOUSE_PASSWORD );
		    
		    HouseData[ id ][ houseX ] = cache_get_field_content_float( loaded, "HouseX" );
		    HouseData[ id ][ houseY ] = cache_get_field_content_float( loaded, "HouseY" );
		    HouseData[ id ][ houseZ ] = cache_get_field_content_float( loaded, "HouseZ" );
		    HouseData[ id ][ Price ] = cache_get_field_content_int( loaded, "HousePrice" );
		    HouseData[ id ][ SalePrice ] = cache_get_field_content_int( loaded, "HouseSalePrice" );
		    HouseData[ id ][ Interior ] = cache_get_field_content_int( loaded, "HouseInterior" );
		    HouseData[ id ][ LockMode ] = cache_get_field_content_int( loaded, "HouseLock" );
		    HouseData[ id ][ SafeMoney ] = cache_get_field_content_int( loaded, "HouseMoney" );
		    HouseData[ id ][ LastEntered ] = cache_get_field_content_int( loaded, "LastEntered" );

			format( HouseData[ id ][ Address ], MAX_HOUSE_ADDRESS, "%d, %s, %s", id, GetZoneName( HouseData[ id ][ houseX ], HouseData[ id ][ houseY ], HouseData[ id ][ houseZ ] ), GetCityName( HouseData[ id ][ houseX ], HouseData[ id ][ houseY ], HouseData[ id ][ houseZ ] ) );
	        if( strcmp( HouseData[ id ][ Owner ], "-"))
			{
	            if( HouseData[ id ][ SalePrice ] > 0 )
				{
	                for_sale = 1;
				    format( label, sizeof( label ), "{00CC00}House For Sale {FFFFFF}(ID: {C0C0C0}%d{FFFFFF})\n{FFFFFF}%s\n{FFFFFF}%s\n{FFFFFF}Price: {00CC00}${C0C0C0}%s", id, HouseData[ id ][ Name ], HouseInteriors[ HouseData[ id ][ Interior ] ][ IntName ], convertNumber( HouseData[ id ][ SalePrice ] ) );
				}
				else
				{
				    for_sale = 0;
					format( label, sizeof( label ), "{C0C0C0}%s's House {FFFFFF}(ID: {C0C0C0}%d{FFFFFF})\n{FFFFFF}%s\n{FFFFFF}%s\n%s\n{C0C0C0}%s", HouseData[ id ][ Owner ], id, HouseData[ id ][ Name ], HouseInteriors[ HouseData[ id ][ Interior ] ][ IntName ], LockNames[ HouseData[ id ][ LockMode ] ], HouseData[ id ][ Address ] );
				}
			}
			else
			{
			    for_sale = 1;
         		format( label, sizeof( label ), "{00CC00}House For Sale {FFFFFF}(ID: {C0C0C0}%d{FFFFFF})\n{FFFFFF}%s\n{FFFFFF}Price: {00CC00}${C0C0C0}%s", id, HouseInteriors[ HouseData[ id ][ Interior ] ][ IntName ], convertNumber(HouseData[ id ][ Price ] ) );
	        }
			HouseData[ id ][ HousePickup ] = CreateDynamicPickup((!for_sale) ? 19522 : 1273, 1, HouseData[ id ][ houseX ], HouseData[ id ][ houseY ], HouseData[ id ][ houseZ ] );
			HouseData[ id ][ HouseIcon ] = CreateDynamicMapIcon( HouseData[ id ][ houseX ], HouseData[ id ][ houseY ], HouseData[ id ][ houseZ ], (!for_sale) ? 32 : 31, 0 );
			HouseData[ id ][ HouseLabel ] = CreateDynamic3DTextLabel( label, ~1, HouseData[ id ][ houseX ], HouseData[ id ][ houseY ], HouseData[ id ][ houseZ ] + 0.35, 15.0, .testlos = 1 );
			Iter_Add(Houses, id);
		    loaded++;
	    }
	    printf( "Loaded %d Houses.", loaded );
	}
	return 1;
}
Can someone help me ?
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)