Чтение из файла в PAWN

Я столкнулся с проблемой чтения файла из PAWN в моем игровом режиме для сервера San Andreas Multi Player, проблема выглядит следующим образом:

enum vInfo
{
    vID,
    vFaction,
    Float: vPosX,
    Float: vPosY,
    Float: vPosZ,
    vCash,
    vDrugs,
    vVW
}
new VaultInfo[7][vInfo];

Выше есть некоторые данные для системы хранилищ на моем сервере.

forward LoadVaults();
public LoadVaults()
{
    new
        arrCoords[9][64],
        strFromFile2[256],
    File: file = fopen("vaults.cfg", io_read);

    if (file)
    {
        new idx;
        while (idx < sizeof(VaultInfo))
        {
            fread(file, strFromFile2);
            split(strFromFile2, arrCoords, ',');
            VaultInfo[idx][vID] = strval(arrCoords[0]);
            VaultInfo[idx][vFaction] = strval(arrCoords[1]);
            VaultInfo[idx][vPosX] = floatstr(arrCoords[2]);
            VaultInfo[idx][vPosY] = floatstr(arrCoords[3]);
            VaultInfo[idx][vPosZ] = floatstr(arrCoords[4]);
            VaultInfo[idx][vCash] = strval(arrCoords[5]);
            VaultInfo[idx][vDrugs] = strval(arrCoords[6]);
            VaultInfo[idx][vVW] = strval(arrCoords[7]);
            printf("VaultID %d FactionNUM %d, PosX %f, PosY %f, PosZ %f, Cash %d, Drugs %d, VW %d", VaultInfo[idx][vID], VaultInfo[idx][vFaction],VaultInfo[idx] [vPosX], VaultInfo[idx][vPosY], VaultInfo[idx][vPosZ], VaultInfo[idx][vCash], VaultInfo[idx][vDrugs], VaultInfo[idx][vVW]);
            idx++;
        }
        fclose(file);
    }
    return 1;
}

Выше есть функция для чтения vaults.cfg, который я создал для своих 7 хранилищ, а также печати значений для каждого элемента, чтобы проверить, правильно ли они прочитаны, к сожалению, моя функция прочитала их неправильно, как вы можете видеть на этом рисунке: https://imgur.com/4vpJU60. Вот что я написал в vaults.cfg:

0,4,2492.2615, -1702.3912,1018.3438,0,0,21,5,2332,6660, -1142,7737,1054.2969,0,0,32,6, 508,3405, -81,3647,998,9609,0,0,13,7508,3405, - 81.3647,998.9609,0,0,44,8, -223.3711,1411.0023,27.7734,0,0,15,9, -223.3711,1411.0023,27.7734,0,0,26,10,508.3405, -81.3647,998.9609,0,0, 3

После многих часов поиска решения моей проблемы, я подумал о том, чтобы ввести другие данные в свой vaults.cfg, и это сработало, моя функция читала каждый элемент правильно, как вы можете видеть на этом изображении: https://imgur.com/a/zFJv4mP Вот что я написал в vaults.cfg:

0,1,231.1267,79.3089,1005.0391,0,0, -11,2,233,6864,111.3057,1003,2257,0,0, -12,3,1714.7601, -1670,1362,20,2247,0,0, -13,4,2546,9341, -1281,5876, 1060,9844,0,0,14, 5,2546,9341, -1281,5876,1060,9844,0,0,25,12,2546.9341, -1281,5876,1060,9844,0,0,36,13,2546,9341, -1281,5876,1060,9844,0, 0,4

С этими данными все правильно, так что не так с моими начальными элементами? Почему моя функция неправильно читает элементы? Я был бы очень признателен за небольшую помощь от кого-то, кто знает больше меня.

0 ответов

Другие вопросы по тегам