• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Загрузка гангзон

Doni_Dit

Умник
Всем привет. Столкнулся с проблемой загрузки гангзон. А именно их ID. В таблице ганг зоны идут от 1 до 100.
Когда же происходит загрузка, и в переменную вносятся 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);
}
То есть в итоге TOTALGZ == 100. А GangZone[idx][gzid] не с 1...100, а с 4...103.

Переменные:
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];
 
Сверху Снизу