从PAWN中的文件中读取

时间:2018-05-28 15:53:14

标签: file pawn

我遇到了一个关于在我的游戏模式中为一台San Andreas多人游戏服务器读取PAWN文件的问题,问题如下:

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;
}

上面有一个函数,用于读取我为7个保险库创建的vaults.cfg,并打印每个元素的值以验证它们是否被正确读取,不幸的是,我的函数读错了它们,你可以看到这张图片: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, 7,508.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 个答案:

没有答案