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