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;
}


