ich hab versucht einen script zu schreiben ,der die cars aus einer .ini läd.
Damit man sie auch ingame bearbeiten und löschen kann.
Doch ich bin kläglich versagt da file's für mich noch neuland sind...
Was hab ich falsch gemacht?
#include <a_samp>
#include <dini>
//#include <dudb>
#define MAX_CAR 5000 // Maximale auto Anzahl
new cache_car;
enum car
{
id,
Float:x,
Float:y,
Float:z,
Float:r,
farbe1,
farbe2
}
new CarDaten[MAX_CAR][car];
forward SaveCache();
forward initSlot();
public OnFilterScriptInit()
{
new line[255],File:carx = fopen("car.ini",io_read),
car_index;
if(carx)
{
while(fread(carx,line))
{
if(line[strlen(line)-2] == '\r')line[strlen(line)-2] = '\0';
if(line[strlen(line)-1] == '\n')line[strlen(line)-1] = '\0';
CarDaten[cache_car][id] = floatstr(strtok(line,car_index,','));
CarDaten[cache_car][x] = floatstr(strtok(line,car_index,','));
CarDaten[cache_car][y] = floatstr(strtok(line,car_index,','));
CarDaten[cache_car][z] = floatstr(strtok(line,car_index,','));
CarDaten[cache_car][r] = floatstr(strtok(line,car_index,','));
CarDaten[cache_car][farbe1] = floatstr(strtok(line,car_index,','));
CarDaten[cache_car][farbe2] = floatstr(strtok(line,car_index,','));
AddStaticVehicle(id,x,y,z,r,farbe1,farbe2);
car_index = 0;
cache_car++;
}
fclose(carx);
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new idx,cmd[128];
cmd = strtok(cmdtext,idx);
if(!strcmp(cmd,"/savecar",true))
{
new slotid = initSlot();
new Float:Px,Float:Py,Float:Pz,Float:Pr;
GetPlayerPos(playerid,Px,Py,Pz);
new carid;
carid = GetPlayerVehicleID(playerid);
GetVehicleZAngle(carid,Pr);
new fullid = (slotid==-1) ? (cache_car) : (slotid);
CarDaten[fullid][id] = carid;
CarDaten[fullid][x] = x;
CarDaten[fullid][y] = y;
CarDaten[fullid][z] = z;
CarDaten[fullid][r] = r;
CarDaten[fullid][farbe1] = farbe1;
CarDaten[fullid][farbe2] = farbe2;
if(slotid==-1)cache_car++;
SaveCache();
return 1;
}
if(!strcmp(cmd,"/delcar",true))
{
return 1;
}
return 0;
}
public SaveCache()
{
new fm[255],File:carx = fopen("car.ini",io_write);
for(new i = 0;i<cache_car;i++)
{
format(fm,sizeof fm,"%s,%s,%s,%s,%s,%s,%s\r\n",
CarDaten[i][id],
CarDaten[i][x],
CarDaten[i][y],
CarDaten[i][z],
CarDaten[i][r],
CarDaten[i][farbe1],
CarDaten[i][farbe2]);
fwrite(carx,fm);
}
fclose(carx);
return 1;
}
public OnFilterScriptExit()
{
SaveCache();
return 1;
}
public initSlot()
{
new foundx = -1;
for(new i = 0;i<cache_car;i++)
{
if(CarDaten[i][id] == '\0'){foundx = i;break;}
}
return foundx;
}
könnt ihr mir helfen ?