首页 > 解决方案 > 从 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. 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.90 ,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,-13,4,2546.87648 ,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,-10281.5876,40.80 0,4

使用该数据可以正确读取所有内容,那么我的初始元素有什么问题?为什么我的函数读取元素错误?我非常感谢比我了解更多的人的帮助。

标签: filepawn

解决方案


推荐阅读