Doni_Dit
Умник
Всем привет. Столкнулся с проблемой загрузки гангзон. А именно их ID. В таблице ганг зоны идут от 1 до 100.
Когда же происходит загрузка, и в переменную вносятся ID загруженной зоны, почему то прибавляется из воздуха 3 штуки.
К примеру: Цикл загружает зоны из базы под номером 1, а в переменную присваивается номер 4.
Код:
То есть в итоге TOTALGZ == 100. А GangZone[idx][gzid] не с 1...100, а с 4...103.
Переменные:
Когда же происходит загрузка, и в переменную вносятся ID загруженной зоны, почему то прибавляется из воздуха 3 штуки.
К примеру: Цикл загружает зоны из базы под номером 1, а в переменную присваивается номер 4.
Код:
C++:
@LoadGZ();
@LoadGZ()
{
new time = GetTickCount(),rows = cache_num_rows();
if(rows)
{
for(new idx; idx < rows; idx++)
{
cache_get_value_index_int(idx, 0, GangZone[idx][gzid]); // gId
cache_get_value_index_float(idx, 1, GangZone[idx][gMinX]); // gMinX
cache_get_value_index_float(idx, 2, GangZone[idx][gMinY]); // gMinY
cache_get_value_index_float(idx, 3, GangZone[idx][gMaxX]); // gMaxX
cache_get_value_index_float(idx, 4, GangZone[idx][gMaxY]); // gMaxY
cache_get_value_index_int(idx, 5, GangZone[idx][gowner]); // gowner
GangZone[idx][gzid] = GangZoneCreate(GangZone[idx][gMinX],GangZone[idx][gMinY],GangZone[idx][gMaxX],GangZone[idx][gMaxY]);
printf("%d", GangZone[idx][gzid]);
TOTALGZ++;
if(GangZone[idx][gowner] == TEAM_OPGBUS) GangZoneCount[TEAM_OPGBUS] ++;
else if(GangZone[idx][gowner] == TEAM_OPGBAT) GangZoneCount[TEAM_OPGBAT] ++;
else if(GangZone[idx][gowner] == TEAM_OPGYJN) GangZoneCount[TEAM_OPGYJN] ++;
}
}
return printf("[Загружено гангзон]: <%i>. Потрачено: <%i ms>.", TOTALGZ, GetTickCount() - time);
}
Переменные:
C++:
#define MAX_GZ 100
enum gzinfo
{
Float:gMinX,
Float:gMinY,
Float:gMaxX,
Float:gMaxY,
gowner,
gzid
};
new GangZone[MAX_GZ][gzinfo];
new TOTALGZ, GangZoneCount[MAX_FRACTIONS];
