PDA

Просмотр полной версии : [Вопрос] Неправильная загрузка АТМ



Vasya_Pupkin
11.01.2017, 15:41
Всем привет.
Проблема с загрузкой банкоматов они загружаются но их id путается и где должен быть 3 банкомат там 25
и когда я редактирую 25 то редактируется 3й банкомат

Загрузка банкоматов

publics:LoadATM()
{
new
r ,
f ,
idx ,
time = GetTickCount()
;
cache_get_data(r, f);
for(idx = 1; idx <= r; idx++)
{
ATMInfo[idx][aid] = cache_get_row_int(idx-1,0, database);
ATMInfo[idx][aX] = cache_get_row_float(idx-1,1, database);
ATMInfo[idx][aY] = cache_get_row_float(idx-1,2, database);
ATMInfo[idx][aZ] = cache_get_row_float(idx-1,3, database);
ATMInfo[idx][arZ] = cache_get_row_float(idx-1,4, database);
ATM[idx] = CreateObject(2754, ATMInfo[idx][aX], ATMInfo[idx][aY], ATMInfo[idx][aZ], 0.0, 0.0, ATMInfo[idx][arZ]);
format(string,55,"Банкомат: %i\nНажмите: 'ENTER'",idx);
LABELATM[idx] = CreateDynamic3DTextLabel(string,0xFFFFFFAA, ATMInfo[idx][aX],ATMInfo[idx][aY],ATMInfo[idx][aZ] + 1.3, 10.0, INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0, 0, 0);
TOTALATM++;
}
printf("[Загружено]: <%i>. За: <%i мс>.",TOTALATM,GetTickCount()-time);
return true;
}

qwezert
11.01.2017, 16:22
Когда ты пытаешься редактировать обьект - ты берешь свой массив ATM[idx] где idx - у тебя id из цикла (3) а само значение - id обьекта в моде - тоесть к примеру 25. Поэтому у тебя так и получается.

- - - Добавлено - - -

Так как ассоциативных массивов в pawn нет - придумывай костыли как что бы у тебя id в массиве совпадал с id обьекта в моде

Vasya_Pupkin
11.01.2017, 16:25
Все решил в коде все норм в бд были не по порядку исправил все работает
Можно закрывать

qwezert
11.01.2017, 16:30
Все решил в коде все норм в бд были не по порядку исправил все работает
Можно закрывать

Это ты думаешь что исправил) Следующий сохраненный банкомат будет иметь не порядковый номер и ты опять столкнешься с такой проблемой.