forward LoadServerVehicles();
public LoadServerVehicles()
{
if(cache_get_row_count() < 1) return 1;
new rows = cache_get_row_count(), row = 0;
while(row < rows)
{
new vid = cache_get_field_content_int(row, "ID");
ServerVeh[vid][svModel] = cache_get_field_content_int(row, "Model");
ServerVeh[vid][svX] = cache_get_field_content_float(row, "X");
ServerVeh[vid][svY] = cache_get_field_content_float(row, "Y");
ServerVeh[vid][svZ] = cache_get_field_content_float(row, "Z");
ServerVeh[vid][svA] = cache_get_field_content_float(row, "A");
ServerVeh[vid][svC1] = cache_get_field_content_int(row, "C1");
ServerVeh[vid][svC2] = cache_get_field_content_int(row, "C2");
CreateVehicle(ServerVeh[vid][svModel], ServerVeh[vid][svX], ServerVeh[vid][svY], ServerVeh[vid][svZ], ServerVeh[vid][svA], ServerVeh[vid][svC1], ServerVeh[vid][svC2], -1);
row++;
}
return 1;
}
mysql_tquery(mysql, "SELECT * FROM `ServerVehs`", "LoadServerVehicles");
forward LoadServerVehicles();
public LoadServerVehicles()
{
new rowCount = cache_get_row_count();
new debugMessage[20];
format(debugMessage, sizeof(debugMessage), "Row count is: %d", rowCount);
SendClientMessageToAll(-1, debugMessage);
for(new row = 0; row < rowCount; row++)
{
new vid = cache_get_field_content_int(row, "ID");
ServerVeh[vid][svModel] = cache_get_field_content_int(row, "Model");
ServerVeh[vid][svX] = cache_get_field_content_float(row, "X");
ServerVeh[vid][svY] = cache_get_field_content_float(row, "Y");
ServerVeh[vid][svZ] = cache_get_field_content_float(row, "Z");
ServerVeh[vid][svA] = cache_get_field_content_float(row, "A");
ServerVeh[vid][svC1] = cache_get_field_content_int(row, "C1");
ServerVeh[vid][svC2] = cache_get_field_content_int(row, "C2");
CreateVehicle(ServerVeh[vid][svModel], ServerVeh[vid][svX], ServerVeh[vid][svY], ServerVeh[vid][svZ], ServerVeh[vid][svA], ServerVeh[vid][svC1], ServerVeh[vid][svC2], -1);
}
return 1;
}
//Make sure you're connecting while this runs.
forward LoadServerVehicles();
public LoadServerVehicles()
{
//if(cache_get_row_count() < 1) return 1;
//new rows = cache_get_row_count(), row = 0; //Why use the function twice?
new
rows = cache_get_row_count(),
row = 0,
debug_String[64]
;
if(rows < 1)
return 1;
while(row < rows)
{
new vid = cache_get_field_content_int(row, "ID");
format(debug_String, sizeof(debug_String), "row : %d | vid : %d | rows : %d", row, vid, rows);
SendClientMessageToAll(-1, debug_String);
print(debug_String); //You can get it from server_log.txt if you're not connected.
ServerVeh[vid][svModel] = cache_get_field_content_int(row, "Model");
ServerVeh[vid][svX] = cache_get_field_content_float(row, "X");
ServerVeh[vid][svY] = cache_get_field_content_float(row, "Y");
ServerVeh[vid][svZ] = cache_get_field_content_float(row, "Z");
ServerVeh[vid][svA] = cache_get_field_content_float(row, "A");
ServerVeh[vid][svC1] = cache_get_field_content_int(row, "C1");
ServerVeh[vid][svC2] = cache_get_field_content_int(row, "C2");
CreateVehicle(ServerVeh[vid][svModel], ServerVeh[vid][svX], ServerVeh[vid][svY], ServerVeh[vid][svZ], ServerVeh[vid][svA], ServerVeh[vid][svC1], ServerVeh[vid][svC2], -1);
row++;
}
return 1;
}
You're retrieving ID from your tables and using it as an index of your array. If the retrieved ID is not within the array bounds, it could be why your operation breaks there. Use this code and debug to confirm:
pawn Code:
|