30.12.2016, 10:32
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
Can someone help me ?
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; }