Hallo ,
ich habe mal eine Frage
ich bin grade dabei ein Carsystem zu erstellen was mit Datein arbeitet
es soll so gehen /carpark (den Befehl habe ich schon) dann wird in einer Datei
die Coords vom Auto gespeichert und dann beim nächsten gmx der Server start soll dann
die Datei ausgelesen werden hier mal mein Carpark Command dcmd_carpark(playerid,params[])
{
#pragma unused params
if(!IsPlayerInAnyVehicle(playerid))
{
return SendClientMessage(playerid,COLOR_ROT,"Du musst in einem Auto sein um /carpark zu machen");
}
new str[128],File:hFile,Float:X,Float:Y,Float:Z,Float:ZA;
hFile=fopen("carparks.ini",io_append);
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid, ZA);
format(str,128,"%f,%f,%f,%f",X,Y,Z,ZA);
fwrite(hFile,str);
fclose(hFile);
return 1;
}
fopen = auslesen
- Micktor
- Geschlossen
- Erledigt
-
-
Nun auch ned die besten Varianten, aber aller Anfang ist scheiße
//Dieses stock sehr notwendig für beide Versionen
stock split(const strsrc[], strdest[][], delimiter)
{
new i, li,aNum,len;
while(i <= strlen(strsrc))
{
if(strsrc[i]==delimiter || i==strlen(strsrc))
{
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}//Diese Version geht nur für ein Fahrzeug (dcmd Befehl muss nicht verändert werden)
public OnGameModeInit()
{
new File:auto=fopen("carparks.ini",io_readwrite), str[128], cache[4][64];
if(auto)
{
fread(auto, str);
fclose(auto);
split(str, cache, ',');
//Wie kannst du nur vergessen die Modelid nicht zu speichern, also echt xD
//Nehme mal den Sultan
CreateVehicle(560, floatstr(cache[0]), floatstr(cache[1]), floatstr(cache[2]), floatstr(cache[3]), 1, 1, -1); //Von den Farben nicht zu reden..
}
return 1;
}//Dynamischere Version (Natürlich mit ModelID (ohne CarFarben FIX)
//jedoch auch nicht die beste Version ^^
//Mehrere Fahrzeuge verwaltwar, bzw abspeicherbardcmd_carpark(playerid,params[])
{
#pragma unused params
if(!IsPlayerInAnyVehicle(playerid))
{
return SendClientMessage(playerid,COLOR_ROT,"Du musst in einem Auto sein um /carpark zu machen");
}
new str[128],File:auto=fopen("carparks.ini",io_append),Float:Spawn[4];
GetVehiclePos(playerid,Spawn[0], Spawn[1], Spawn[2]); GetVehicleZAngle(playerid, Spawn[4]);
format(str,128,"%d,%f,%f,%f,%f;\n\r",GetVehicleModel(GetPlayerVehicleID(playerid)),Spawn[0],Spawn[1],Spawn[2],Spawn[3]);
fwrite(hFile,str);
fclose(hFile);
return 1;
}public OnGameModeInit()
{
#define MAX_FAHRZEUGE_IN_DATEI (500) //Anzahl an maximalen Fahrzeugen in einer Datei
new File:auto=fopen("carparks.ini",io_readwrite), str[512], cache[MAX_FAHRZEUGE_IN_DATEI][128], cache2[5][64], fahrzeug = 0;
if(auto)
{
fread(auto, str);
fclose(auto);
for(; fahrzeug < (MAX_FAHRZEUGE_IN_DATEI-1); fahrzeug++)
{
split(str, cache[fahrzeug], ';');
split(cache[fahrzeug], cache2, ',');
CreateVehicle(strval(cache2[0]), floatstr(cache2[1]), floatstr(cache2[2]), floatstr(cache2[3]), floatstr(cache2[4]), 1, 1, -1); //Von den Farben nicht zu reden..
}
}
return 1;
}Sollte also funktionieren
-
Sowas suche ich auch nur das man es mit fraktions cars macht xD
-
Hallo
Bin auch grad an sowas dran, speichere doch die Fraktions-ID in der File mit und prüfst beim Einsteigen oder Carparken ab, ob er die gleiche Fraktions-Zahl hat wie der Fraktions-Wert aus der Carfile.
dUDA
-
Das System von Templer ist gut wenn man es versteht
doch ich habe das gefühl dieses Split mag mich nicht error 048: array dimensions do not match split(string,carcache[car],';'); -
*hust*
split(string,carcache,';');
-
*hust**hust* Danke
//edit :
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
#define MAX_CAR_IN_DATEI (500)
new File:pFile=fopen("pCarPark.txt",io_read),string[512],carcache[MAX_CAR_IN_DATEI][128],cache[5][64],car=0;
if(pFile)
{
fread(pFile,string);
fclose(pFile);
for(; car<(MAX_CAR_IN_DATEI-1);car++)
{
split(string,carcache,';');
split(carcache[car],cache,',');
CreateVehicle(strval(cache[0]),floatstr(cache[1]),floatstr(cache[2]),floatstr(cache[3]),floatstr(cache[4]),1,1,-1);
}
}
return 1;
}
das habe ich bei mir drine aber der Filterscript lädt einfach die Autos nicht .
Pixel -
ich sehe dein Fehler ! aber ich zeige dir nur eine Möglichkeit die Lösung anzuschauen / selber zu lesen !
[ SCRIPTING ] Standard Dateisystem
Tipp !
fread(pFile,string); musst du in eine while haben. -
breadfish.de
Hat das Thema geschlossen.