stock LoadObjectsFromFile(const filename[])
{
new File:file_ptr;
new line[256];
new var_from_line[64];
new Object;
new Float:SpawnX;
new Float:SpawnY;
new Float:SpawnZ;
new Float:SpawnRX;
new Float:SpawnRY;
new Float:SpawnRZ;
new Float:draw;
new index;
new Objects_loaded;
file_ptr = fopen(filename,filemode:io_read);
if(!file_ptr) return 0;
Objects_loaded = 0;
while(fread(file_ptr,line,256) > 0)
{
index = 0;
// Read type
index = token_by_delim(line,var_from_line,',',index);
print("1");
if(index == (-1)) continue;
Object = strval(var_from_line);
// Read X, Y, Z, Rotation
index = token_by_delim(line,var_from_line,',',index+1);
print("2");
if(index == (-1)) continue;
SpawnX = floatstr(var_from_line);
index = token_by_delim(line,var_from_line,',',index+1);
print("3");
if(index == (-1)) continue;
SpawnY = floatstr(var_from_line);
index = token_by_delim(line,var_from_line,',',index+1);
print("4");
if(index == (-1)) continue;
SpawnZ = floatstr(var_from_line);
index = token_by_delim(line,var_from_line,',',index+1);
print("5");
if(index == (-1)) continue;
SpawnRX = floatstr(var_from_line);
index = token_by_delim(line,var_from_line,',',index+1);
print("6");
if(index == (-1)) continue;
SpawnRY = floatstr(var_from_line);
index = token_by_delim(line,var_from_line,',',index+1);
print("7");
if(index == (-1)) continue;
SpawnRZ = floatstr(var_from_line);
index = token_by_delim(line,var_from_line,',',index+1);
print("8");
if(index == (-1)) continue;
draw = floatstr(var_from_line);
CreateObject(Object, SpawnX, SpawnY, SpawnZ, SpawnRX, SpawnRY, SpawnRZ, draw);
Objects_loaded++;
}
fclose(file_ptr);
printf("Loaded %d objects from: %s",Objects_loaded,filename);
return Objects_loaded;
}
stock token_by_delim(const string[], return_str[], delim, start_index)
{
new x=0;
while(string[start_index] != EOS && string[start_index] != delim) {
return_str[x] = string[start_index];
x++;
start_index++;
}
return_str[x] = EOS;
if(string[start_index] == EOS) start_index = (-1);
return start_index;
}
Can you crash in to the objects? If so it's just a loading problem, often occurring when in vehicles.
As for converting to y_ini, that file isn't in ini format so you would have to change everything to use that, and there's really no point. |
stock LoadObjectsFromFile(const filename[])
{
new File:file_ptr;
new line[256];
new var_from_line[64];
new Object;
new Float:SpawnX;
new Float:SpawnY;
new Float:SpawnZ;
new Float:SpawnRX;
new Float:SpawnRY;
new Float:SpawnRZ;
new Float:draw;
new index;
new Objects_loaded;
file_ptr = fopen(filename,filemode:io_read);
if(!file_ptr) return 0;
Objects_loaded = 0;
while(fread(file_ptr,line,256))
{
sscanf(line,"p<,>iffffffi",SpawnX, SpawnY, SpawnZ, SpawnRX, SpawnRY, SpawnRZ, draw);
CreateObject(Object, SpawnX, SpawnY, SpawnZ, SpawnRX, SpawnRY, SpawnRZ, draw);
Objects_loaded++;
}
fclose(file_ptr);
printf("Loaded %d objects from: %s",Objects_loaded,filename);
return Objects_loaded;
}
pawn Код:
|