PDA

Просмотр полной версии : [Вопрос] Система личного авто.



Shubert
29.07.2015, 14:30
Делаю систему личного авто. Никак не могу добиться результата совпадения ID машины в игре и в enum'e.
Ведь в енуме с 0 начинается отсчёт, а в игре машины с 1. Получается, что когда нужно провести какую-либо операцию с авто нужно делать так:
cInfo[GetPlayerVehicleID(playerid)-1][cFuel] = 20. Всё время отнимать единицу, путаница.
Есть выход из данной ситуации?

L0ndl3m
29.07.2015, 14:47
new
vehicleid = GetPlayerVehicleID(playerid) - 1;

cInfo[vehicleid][cFuel] = 20;

Daniel_Cortez
29.07.2015, 14:55
Тут либо везде отнимать единицу, либо делать массив на одну ячейку больше и не использовать нигде нулевую ячейку.
Что интересно, второй вариант в Pawn будет оптимальнее: на 4 байта больше в секции данных, но зато на 4 x <кол-во обращений к массиву с отниманием единицы> байт меньше в секции кода.

Shubert
29.07.2015, 15:13
Хорошо, допустим я пойду по второму пути. Не использовать 0 ячейку...
Вот загрузка авто циклом.
new i;
while(i != db_num_rows(qresult))
{
}
По умолчанию переменная имеет значение 0. Значит считать будет с 0, пока не загрузит всё. Мне нужно присвоить ей значение 1? Или как делать? Я не пойму уже...:dash2:

Daniel_Cortez
29.07.2015, 15:36
Хорошо, допустим я пойду по второму пути. Не использовать 0 ячейку...
Вот загрузка авто циклом.
new i;
while(i != db_num_rows(qresult))
{
}
По умолчанию переменная имеет значение 0. Значит считать будет с 0, пока не загрузит всё. Мне нужно присвоить ей значение 1? Или как делать? Я не пойму уже...:dash2:
А зачем использовать значение по умолчанию, когда можно самому указать нужное?

new i = 1;
Если не понимаете таких основ - лучше не беритесь за скриптинг, почитайте сначала какую-нибудь литературу по программированию.
Почти в любом книжном магазине можно найти что-нибудь по языку C - этот язык во многом схож с Pawn.

$continue$
29.07.2015, 18:38
А зачем использовать значение по умолчанию, когда можно самому указать нужное?

new i = 1;
Если не понимаете таких основ - лучше не беритесь за скриптинг, почитайте сначала какую-нибудь литературу по программированию.
Почти в любом книжном магазине можно найти что-нибудь по языку C - этот язык во многом схож с Pawn.
Ну объявление точно, никак в pawn, не?
new - выделение динамической памяти (Ну из плюсов, из сей не знаю)